“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作

“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作一、垃圾文字生成器介绍最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。他的文风可能是这样的:你发现,…

大家好,又见面了,我是你们的朋友全栈君。

一、垃圾文字生成器介绍

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

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

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

他的文风可能是这样的:

“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作

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

还有这样的:

“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作

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

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

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

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

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

“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作

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

“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作

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

“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作

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

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

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

“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作

js版本生成算法:

function 生成文章(){
    主题 = $('input').value
    let 文章 = []
    for(let 空 in 主题){
        let 章节 = "";
        let 章节长度 = 0;
        while( 章节长度 < 6000 ){
            let 随机数 = 随便取一个数();
            if(随机数 < 5 && 章节.length > 200){
                章节 = 增加段落(章节);
                文章.push(章节); 
                章节 = "";
            }else if(随机数 < 20){
                let 句子 = 来点名人名言();
                章节长度 = 章节长度 + 句子.length;
                章节 = 章节 + 句子;
            }else{
                let 句子 = 来点论述();
                章节长度 = 章节长度 + 句子.length;
                章节 = 章节 + 句子;
            }
        }
        章节 = 增加段落(章节);
        文章.push(章节);
    }
    let 排版 = "<div>" + 文章.join("</div><div>") + "</div>";
    $("#论文").innerHTML = 排版;
}

py版本:

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)

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

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

这个文字细细读起来,还是挺有哲理的。

额,其实就是一本正经地说废话的那种感觉。你懂的。。。

四、最后,放上链接

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

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


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

“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/143187.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • idea打包web项目 部署到tomcat_web项目打包成jar包

    idea打包web项目 部署到tomcat_web项目打包成jar包背景:因为普通的web项目无法用maven命令进行打包,所以怎样打成war包发布呢?1.进入项目的结构配置在【ProjectStructure】中选择左侧的【Artifacts】页签,点击中间上面的,选择【WebApplication:Archive】->【Empty】2.添加war包的配置点击+号,选择【DirectoryContent】将项目的classes的文件配…

    2022年10月3日
    2
  • java找不着符号_找不到符号:Java

    java找不着符号_找不到符号:Java如果这是一个怪异的问题,我感到很抱歉,但是我刚刚开始OOP,并遇到了一个我应该制作的简单菜单驱动数学程序。我清除了编译器给我的所有错误,但是现在它给了我大约14个新错误,其中大多数被描述为“找不到符号”。这是我的代码:importjava.util.Scanner;publicclassMathMenu{//MENUMETHODprivatestaticvoidmenu(String…

    2022年7月7日
    29
  • Robots.txt – 禁止爬虫

    Robots.txt – 禁止爬虫

    2021年10月9日
    330
  • fstream中文路径

    fstream中文路径在C++的标准库中,std::fstream是个挺好用的文件读写流,操作文件很方便,因为是C++标准库,所以没有其它的环境依赖。在使用fstream过程中,有个打开中文路径文件会失败的问题,自己的代码中一直没处理好,这几天终于有点闲心,把这里改透。涉及很多知识点,也是个遗留已久的问题,特此做个记录。在最后用了个一劳永逸的解决此问题方法:将fstream、FILE再包装下。中文路径使用fstream调试程序过程中,发现打开含中文路径的文件时,会打开失败。查了一些资料,说在VS2008、vs200..

    2025年7月11日
    1
  • Python 二次开发 AutoCAD 简介「建议收藏」

    Python 二次开发 AutoCAD 简介「建议收藏」一、前沿cad是python是ActiveX是pyautocad模块由俄罗斯工程师开发,因参考实例较少,工程需要,现将模块中一些基本的用法,做出简要说明,叙述力求简洁明了,因个人水平有限,文中难免有所疏漏,还请各位大神不吝批评指正。…

    2022年6月5日
    38
  • cv2.fitline_pr自动抽帧

    cv2.fitline_pr自动抽帧cv::fitLine用法定义代码示例y=x+1直线y=-x+1直线定义在opencv官方文档定义如下:voidcv::fitLine(InputArraypoints,OutputArrayline,intdistType,doubleparam,doublereps,doubleaeps)#include<opencv2/imgproc.hpp>Fitsalinetoa2Dor3Dpointset.Paramet

    2025年6月5日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号