本文共1502字
预计阅读时间:3分钟
据说 AI 已经可以自动写文章
类似的报道屡见不鲜
但是 AI 写出来的文章到底是什么样的?
我想没几个人见识过
无意中看到了 Gayhub 上的这个项目
全称就是:狗屁不通文章生成器
英文名字是:BullshitGenerator
它可以做什么呢?
简单来说,就是输入标题
生成文章
效果怎么样?
我们简单试一下
看上去果然狗屁不通
我们再去看看源码
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import os, re
import random,readJSON
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)
只有简简单单五十几行代码
其实主要就是从数据文件中取数据
进行一些简单拼接
我们再来看一下数据
{
"title":"学生会退会",
"famous":[
"爱迪生a,天才是百分之一的勤奋加百分之九十九的汗水。b",
"培根说过,深窥自己的心,而后发觉一切的奇迹在你自己。b",
"歌德曾经a,流水在碰到底处时才会释放活力。b",
"莎士比亚a,那脑袋里的智慧,就像打火石里的火花一样,不去打它是不肯出来的。b",
...(省略部分)
],
"bosh":[
"现在, 解决x的问题, 是非常非常重要的. 所以, ",
"我们不得不面对一个非常尴尬的事实, 那就是, ",
"x的发生, 到底需要如何做到, 不x的发生, 又会如何产生. ",
...(省略部分)
],
"after":[
"这不禁令我深思. ",
"带着这句话, 我们还要更加慎重的审视这个问题: ",
"这启发了我. ",
...(省略部分)
],
"before":[
"曾经说过",
"在不经意间这样说过",
"说过一句著名的话",
...(省略部分)
]
}
这离人工智能简直差了 10W 个不正经程序员!
不过项目主也很骄傲
没有引进高端算法的打算