首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

So easy!10 行代码写个“让你惊叹”的文章生成器

作者 |liu志军

责编 | 屠敏

出品 | CSDN 博客

前几天,GitHub 有个开源项目特别火,只要输入标题就可以生成一篇长长的文章。

背后实现代码一定很复杂吧,里面一定有很多高深莫测的机器学习等复杂算法。

不过,当我看了源代码之后:

这程序不到 50 行:

尽管我有多年的 Python 经验,但我竟然一时也没有看懂:

这代码放到编辑器里还特么真能执行:

当然啦,原作者也说了,这个代码也是在无聊中诞生的,平时撸码是不写中文变量名的,中文变量名只是最开始瞎写的时候边写语料边写代码时懒得切英文输入法了。

中文变量名也就忍了,但代码逻辑不好懂,最后我还是忍着剧烈的头痛把它的原理读懂了。

这究竟咋实现的呢?

我肯定是不服的,这代码要是被 Python 之父看见了,他一定后悔发明这门语言。

其实,生成的文章内容都来自于素材文件 data.json, 这个文件的结构是个字典结构:

famous 里面收集了很多名人语录,里面的关键字”a”和”b” 将分别被 before 和 after列表中的内容替换,这样处理后句子看起来具有逻辑性。

bosh里面是各种各样的的废话,里面关键字”x”最后会用标题替换,这样会让人感觉,这篇文章还是和标题有那么一丢丢联系的。

一篇完整的文章就是靠不断随机从famous、bosh列表获取元素,之后拼接成一篇文章。

搞懂了原理,如果我们自己来写的话,除去代码注释,就10来行代码:

来测试一下

输出

你还自定义内容长度

输出:

是不是很简单。

当然,你也可以引入更多NLP等技术进来,不过这对我来说:

原项目地址:https://github.com/menzi11/BullshitGenerator

重构后的代码地址:https://github.com/lzjun567/BullshitGenerator

版权声明:本文为CSDN博主「liu志军」的原创文章版权归作者所有。

技术的道路一个人走着极为艰难?

一身的本领得不施展?

优质的文章得不到曝光?

别担心,

即刻起,CSDN 将为你带来创新创造创变展现的大舞台,

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20191127A0D1HM00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券