狗屁不通文章生成器

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/m0_37609579/article/details/103054993
         <!--一个博主专栏付费入口结束-->
        <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-d284373521.css">
                                    <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-d284373521.css">
            <div class="htmledit_views" id="content_views">
                                        <h1><a name="t0"></a>一、垃圾文字生成器介绍</h1>

最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。

  • 项目中文名:狗屁不通文章生成器
  • 项目英文名:BullshitGenerator

根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。

他的文风可能是这样的:

你发现,引经据典,头头是道,说好的狗屁不通在哪里呢?

还有这样的:

而且,同一个主题,每次点击生成,都会出现完全不同的文字。

二、垃圾文字生成器的来历

垃圾文字生成器的来历也很有意思,据作者说,最开始源于他在逛知乎的时候,发现有网友在退出学生会的时候,需要写6000字的退会申请。因为作者以前挺擅长写这类“狗屁不通”的文章。结果写了几句,突然想到还是写个程序生成吧。于是,狗屁不通文字生成器就诞生了。

目前,由于项目过于火爆,有一位同学,把生成器移植到了telegram上,获得了一只充满哲思的机器人。

当被问及“今天中午吃什么”这样一个世纪难题的时候,机器人回复了整整两屏幕信息:

也有一些同学,则致力于把这个项目推向国际。于是,英文版和日本版就诞生了。

还有些同学,开发出了手写体版本:

三、狗屁不通文章生成器是怎么实现的?

简单翻了一下源码,真的是特别简单,一点简单的废话语料库,一点字符串拼接语句就生成了华丽丽的几千字,我们来欣赏一下源码:

名人名言废话语料库,167行代码,这个只要添加更多的废话,就能生成更丰富的内容:

js版本生成算法:


 
 
  1. function 生成文章(){
  2. 主题 = $( 'input').value
  3. let 文章 = []
  4. for( letin 主题){
  5. let 章节 = "";
  6. let 章节长度 = 0;
  7. while( 章节长度 < 6000 ){
  8. let 随机数 = 随便取一个数();
  9. if(随机数 < 5 && 章节.length > 200){
  10. 章节 = 增加段落(章节);
  11. 文章.push(章节);
  12. 章节 = "";
  13. } else if(随机数 < 20){
  14. let 句子 = 来点名人名言();
  15. 章节长度 = 章节长度 + 句子.length;
  16. 章节 = 章节 + 句子;
  17. } else{
  18. let 句子 = 来点论述();
  19. 章节长度 = 章节长度 + 句子.length;
  20. 章节 = 章节 + 句子;
  21. }
  22. }
  23. 章节 = 增加段落(章节);
  24. 文章.push(章节);
  25. }
  26. let 排版 = "<div>" + 文章.join( "</div><div>") + "</div>";
  27. $( "#论文").innerHTML = 排版;
  28. }

py版本:


 
 
  1. if __name__ == "__main__":
  2. xx = input( "请输入文章主题:")
  3. for x in xx:
  4. tmp = str()
  5. while ( len(tmp) < 6000 ) :
  6. 分支 = random.randint( 0, 100)
  7. if 分支 < 5:
  8. tmp += 另起一段()
  9. elif 分支 < 20 :
  10. tmp += 来点名人名言()
  11. else:
  12. tmp += next(下一句废话)
  13. tmp = tmp.replace( "x",xx)
  14. print(tmp)

可以看出,没有用任何高级技师,不取巧,作者声明如下:

鄙人才疏学浅并不会任何自然语言处理相关算法. 而且目前比较偏爱简单有效的方式达到目的方式. 除非撞到了天花板, 否则暂时不会引入任何神经网络等算法. 不过欢迎任何人另开分支实现更复杂, 效果更好的算法. 不过除非效果拔群, 否则鄙人暂时不会融合.

最后,放上链接

狗屁不通文章生成器:
https://github.com/menzi11/BullshitGenerator

网页版:
https://suulnnka.github.io/BullshitGenerator/index.html


我的微信公众号:架构真经(id:gentoo666),分享Java干货,高并发编程,热门技术教程,微服务及分布式技术,架构设计,区块链技术,人工智能,大数据,Java面试题,以及前沿热门资讯等。每日更新哦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值