前几天,GitHub 有个开源项目特别火,只要输入标题就可以生成一篇长长的文章。
星级10.9k
项目星级:10.9k
项目中文名:狗屁不通文章生成器
项目英文名:BullshitGenerator
image.png
这洋洋洒洒的万字大作,引经据典,贯穿中外。
由于最近也在看自然语言nlp的相关内容,正要沐浴戒斋好好欣赏,你竟然告诉我这是狗屁不通文章生成器,我就纳闷了,哪不通了,多么完美。
直到我输入了这个标题:
我是你爸爸
飞起就是一jio
查看源码,令人吃惊不已,这中文变量,厉害了!
简单翻了一下源码,真的是特别简单,一点简单的废话语料库,一点字符串拼接语句就生成了华丽丽的几千字,我们来欣赏一下源码:
data = readJSON.读JSON文件("data.json")
名人名言 = data["famous"] # a 代表前面垫话,b代表后面垫话
前面垫话 = data["before"] # 在名人名言前面弄点废话
后面垫话 = data['after'] # 在名人名言后面弄点废话
废话 = data['bosh'] # 代表文章主要废话来源
xx = "学生会退会"
重复度 = 2
def 洗牌遍历(列表):
global 重复度
池 = list(列表) * 重复度
while True:
random.shuffle(池)
for 元素 in 池:
yield 元素
下一句废话 = 洗牌遍历(废话)
下一句名人名言 = 洗牌遍历(名人名言)
def 来点名人名言():
global 下一句名人名言
xx = next(下一句名人名言)
xx = xx.replace( "a",random.choice(前面垫话) )
xx = xx.replace( "b",random.choice(后面垫话) )
return xx
def 另起一段():
xx = ". "
xx += "\r\n"
xx += " "
return xx
if __name__ == "__main__":
xx = input("请输入文章主题:")
for x in xx:
tmp = str()
while ( len(tmp) < 6000 ) :
分支 = random.randint(0,100)
if 分支 < 5:
tmp += 另起一段()
elif 分支 < 20 :
tmp += 来点名人名言()
else:
tmp += next(下一句废话)
tmp = tmp.replace("x",xx)
print(tmp)
名人名言废话语料库,167行代码,这个只要添加更多的废话,就能生成更丰富的内容:
根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。,平时撸码是不写中文变量名的, 中文变量名只是最开始瞎写的时候边写语料边写代码时懒得切英文输入法了。
但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。
也有一些同学,则致力于把这个项目推向国际。于是,英文版和日本版就诞生了。
image
还有些同学,开发出了手写体版本:
image
作者的下步计划:
防止文章过于内容重复
加入更多啰嗦话.
加入马三立<开会迷>里的内容
加入手写体直接渲染出图片的功能(仅仅用于测试本人的打印机是否工作正常, 请勿做它用).
狗屁不通文章生成器:
https://github.com/menzi11/BullshitGenerator
网页版:
https://suulnnka.github.io/BullshitGenerator/index.html