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


    一、垃圾文字生成器介绍

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

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

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

    他的文风可能是这样的:

    img点击并拖拽以移动

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

    还有这样的:

    img点击并拖拽以移动

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

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

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

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

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

    img点击并拖拽以移动

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

    img点击并拖拽以移动

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

    img点击并拖拽以移动

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

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

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

    img点击并拖拽以移动

    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面试题,以及前沿热门资讯等。每日更新哦!

    img点击并拖拽以移动

  • 相关阅读:
    入门命令13-字符串查找增强:findstr
    NAMESPACE_ERR: An attempt is made to create or change an object in a way which is incorrect with regard to namespaces.
    docker: "build" requires 1 argument. See 'docker build --help'.
    Mac 下 docker安装
    eclipse导入maven web 项目 但是不显示成web 项目
    @QueryParam和@PathParam比较
    JVM--详解类加载机制
    JVM--Class类文件结构
    mysql left join中where和on条件的区别
    JAVA线程锁---Synchronized
  • 原文地址:https://www.cnblogs.com/anymk/p/11991803.html
Copyright © 2020-2023  润新知