-
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
2019-11-13 18:40:00一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文...一、垃圾文字生成器介绍
最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。
- 项目中文名:狗屁不通文章生成器
- 项目英文名:BullshitGenerator
根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。
他的文风可能是这样的:
你发现,引经据典,头头是道,说好的狗屁不通在哪里呢?
还有这样的:
而且,同一个主题,每次点击生成,都会出现完全不同的文字。
二、垃圾文字生成器的来历
垃圾文字生成器的来历也很有意思,据作者说,最开始源于他在逛知乎的时候,发现有网友在退出学生会的时候,需要写6000字的退会申请。因为作者以前挺擅长写这类“狗屁不通”的文章。结果写了几句,突然想到还是写个程序生成吧。于是,狗屁不通文字生成器就诞生了。
目前,由于项目过于火爆,有一位同学,把生成器移植到了telegram上,获得了一只充满哲思的机器人。
当被问及“今天中午吃什么”这样一个世纪难题的时候,机器人回复了整整两屏幕信息:
也有一些同学,则致力于把这个项目推向国际。于是,英文版和日本版就诞生了。
还有些同学,开发出了手写体版本:
三、狗屁不通文章生成器是怎么实现的?
简单翻了一下源码,真的是特别简单,一点简单的废话语料库,一点字符串拼接语句就生成了华丽丽的几千字,我们来欣赏一下源码:
名人名言废话语料库,167行代码,这个只要添加更多的废话,就能生成更丰富的内容:
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面试题,以及前沿热门资讯等。每日更新哦!
-
Python random生成小数
2018-10-21 11:04:32import random 1.ret = random.random()-->生成一个[0,1)之间的小数 2.我们想生成一个任意范围的小数怎么办呢? ret = random.uniform(a,b)-->生成一个[a,b)之间的小数import random
1.ret = random.random()-->生成一个[0,1)之间的小数
2.我们想生成一个任意范围的小数怎么办呢?
ret = random.uniform(a,b)-->生成一个[a,b)之间的小数
-
IDEA怎么生成UML类图
2018-06-20 09:39:09最近在开发的过程当中,对于已有的代码,想将相关类绘制成UML类图,虽然现在有很多UML类图的优秀软件,比如ProcessOn(可视化编辑)、draw.io(可视化编辑)、PlantUML(代码生成),其实看到这里我就想IDEA中有没有像...最近在开发的过程当中,对于已有的代码,想将相关类绘制成UML类图,虽然现在有很多UML类图的优秀软件,比如ProcessOn(可视化编辑)、draw.io(可视化编辑)、PlantUML(代码生成),其实看到这里我就想IDEA中有没有像PlantUML一样的自动生成的插件,本着怀疑的态度百度了一下,果然IDEA还是很强大的,这个插件都是自带的,接下稍微讲述如何利用IDEA生成UML类图的教程。
说之前先说一下Diagram这个单词,意思是图表; 示意图; 图解; [数] 线图的意思。
- 打开设置
File->Setting
或windows下按Ctrl+Alt+S
在搜索框中输入
如下图:Diagram,
如上所示,我们主要关心的只有Java Class Diagrams下面的几个单选框,分别对应红字部分,一般的UML类图只需要知道成员变量、构造器和方法(前面三个),其他的随意,设置好了之后我们就来演示一下,
- 选择需要的类文件,在编辑器中打开它
- 按
Ctrl + Shift + Alt + U
或Ctrl + Alt + U或右键选择,
生成类Uml关联图,如下图:
上面的是类的UML图,下面的support包的UML图:
局限性:虽然这个很是方便,但是也有他自己的局限性,首先这个功能只能是根据类来自动生成的,所以对于设计类的时候就不行了,还是需要正规的UML图软件,还有就是对于专业的UML软件来说,这种自动生成的东西可能表达并不是非常的准确直观,特别是对于UML图有严格要求的人来说,显得格外重要。
- 打开设置
-
python生成二维矩阵的方法
2018-07-24 16:46:321、直接用列表生成m行n列的矩阵 m,n = map(int,input().split()) matrix = [[0]*(m)]*(n) 输出为: 这种方式生成的矩阵存在一定的问题,比如,无法给特定位置的元素赋值,例如: matrix[1][1] = 9 输出为:...欢迎关注公众号——《数据三分钟》
一线大厂的师兄师姐结合自己的工作实践,将数据知识浅显道来,每天三分钟,助你成为数据达人。还有面试指导和内推机会。
1、直接用列表生成m行n列的矩阵
m,n = map(int,input().split()) matrix = [[0]*(m)]*(n)
输出为:
这种方式生成的矩阵存在一定的问题,比如,无法给特定位置的元素赋值,例如:
matrix[1][1] = 9
输出为:
可见,第二列的元素全部被赋值为9了
2、采用numpy生成想要维度的矩阵
import numpy as np x,y = map(int,input().split()) a = np.ones((x+1,y+1))
输出为:
上面的输出特别漂亮,一个完美的矩阵形式输出,下面我们试一下修改特定位置的元素值。
import numpy as np x,y = map(int,input().split()) a = np.ones((x+1,y+1)) a[1][1] = 9 print(a)
输出为:
可见,我们成功修改了第二行第二列的元素值,因此通过numpy生成的矩阵更具有可操作性。比如下面的操作:
import numpy as np x,y = map(int,input().split()) a = np.ones((x+1,y+1)) for i in range(1,x+1): for j in range(1,y+1): a[i][j] = a[i-1][j] + a[i][j-1] print(a)
输出为:
-
Java实现二维码生成 Google-Zxing
2019-01-08 00:12:40本篇文章将介绍java中如何生成二维码,二维码的展示主要包括两各方面:1.直接生成图片(直接生成图片不需要web程序,maven工程即可) 2.将二维码转为字节数组,然后在web页面显示。web项目的目录结构以前面的一篇... -
JS生成uuid的四种方法
2018-08-27 16:30:44在开发过程中,有时候需要js生成全局唯一标识符,在java中可以使用uuid,但是JS中没有现成的函数。 总结了一下,JS生成唯一标识符的几种方法。 第一种: function uuid() { var s = []; var hexDigits = &... -
MSTP多区域生成树协议
2018-05-22 13:20:44802.1s中定义的生成树协议,通过生成多个生成树,来解决以太网环路问题。 目的: 在以太网中部署MSTP协议后可实现如下功能: 形成多棵无环路的树,解决广播风暴并实现冗余备份。 多棵生成树在VLAN间实现负载... -
C# 利用QRCode生成二维码图片
2014-01-18 10:04:30网上生成二维码的组件是真多,可是真正好用的,并且生成速度很快的没几个,QRCode就是我在众多中找到的,它的生成速度快。但是网上关于它的使用说明,真的太少了,大都是千篇一律的复制粘贴。这是本要用它做了一个... -
java-URL短连接的生成(保证生成的唯一性)
2020-08-19 09:35:19业务场景: 短信平台发送带有跳转链接的短信时,会存在一个问题,...最简单的办法就是通过MD5方式来加密,也是目前网上最多的一种实现方式,我也是借鉴了其方法,不过亲测高并发下无法支持其生成的唯一性,可能引起短连接地址 -
对抗生成网络(Generative Adversarial Net)
2016-11-13 19:59:45现在,生成模型还没有体会到深度学习的利好,在Discriminative模型上,成果如雨后春笋,但在生成模型上,却并非如此。原因如下: - 在最大似然估计及相关策略上,很多概率计算的模拟非常难 - 将piecewise linear ... -
推荐几个代码自动生成器,神器!!!
2019-06-23 22:15:4620个代码生成框架 老的代码生成器的地址:https://www.cnblogs.com/skyme/archive/2011/12/22/2297592.html 以下是大家推荐的最近很火爆的代码生成器神器。如果有更好的希望大家多多留言,我会及时补充上去。 ---... -
Linux如何快速生成大文件
2018-11-06 19:13:54此命令可以生成一个实际的20G的文件,文件会写入硬盘,文件产生的速度和硬盘读写速度有关系,读写速度越快,产生文件越快。 如果只想产生一个大文件的数据,但是并不需要占用磁盘空间,则可... -
参考文献格式生成器
2017-11-26 13:16:14参考文献格式生成器 1. 参考文献格式生成器 http://wenxian.aazz.cn/ 2. 添加新文献 3. 生成参考文献 References https://libguides.cu-portland.edu/APA_style/references -
5.7字符串生成器
2020-02-02 14:16:53字符串生成器 若字符串大量增加例如 循环10000次 A+=“666”;则花费计算机资源极大,需要字符串生成器进行优化 步骤 创建字符串生成器 StringBuilder str= new StringBuilder(字符串); append( content ) 该方法... -
懒人必备,IntelliJ IDEA中代码一键生成
2020-02-14 11:10:30其实旧版微人事当时没有使用逆向...今年发出来的新版微人事,我使用了逆向工程自动生成实体类和 dao 层的代码。MyBatis 的逆向工程要么需要添加依赖,要么需要自己去网上下载 jar,用起来还是有点麻烦,所以,今天... -
狗屁不通文章生成器
2019-11-05 21:38:57【回复“1024”,送你一个特别推送】今天在 GitHub 上有一个开源项目火了,这个开源项目名称就是:狗屁不通文章生成器。什么意思呢?就是你随便输入一个主题,然后这个生... -
数据库分库分表(sharding)系列(二) 全局主键生成策略
2012-07-03 09:40:05本文将主要介绍一些常见的全局主键生成策略,然后重点介绍flickr使用的一种非常优秀的全局主键生成方案。关于分库分表(sharding)的拆分策略和实施细则,请参考该系列的前一篇文章:数据库分库分表(sharding)系列(一)... -
idea生成类注释和方法注释的正确方法
2017-11-01 01:42:41生成类注释 生成类注解模板 生成方法注释 生成方法注解模板 最近从eclipse转idea了,第一步当然是配置快捷键,模板等。但是!发生了一件贼蛋疼的事情,竟然一直找不到正确添加方法注释的方法! 最后自己摸索到了,... -
深度优先生成树和广度优先生成树
2020-03-19 08:56:02本章的第一节中,介绍了有关生成树和生成森林的有关知识,本节来解决对于给定的无向图,如何构建它们相对应的生成树或者生成森林。 其实在对无向图进行遍历的时候,遍历过程中所经历过的图中的顶点和边的组合,就是... -
JavaDoc文档生成
2019-02-28 12:14:13JavaDoc文档生成 JavaDoc是一种将注释生成HTML文档的技术。 1、使用javadoc命令生成文档 首先了解javadoc指令 使用指令生成文档,这里的java文件的编码是utf-8,所以要带上编码选项 -encoding utf-8 ... -
用python生成随机数的几种方法
2018-07-13 20:32:27今天学习了用python生成仿真数据的一些基本方法和技巧,写成博客和大家分享一下。 本篇博客主要讲解如何从给定参数的的正态分布/均匀分布中生成随机数以及如何以给定概率从数字列表抽取某数字或从区间列表的某一区间... -
生成树和生成森林
2017-10-20 13:44:49对非连通无向图,深度优先搜索遍历或广度优先搜索遍历,每个连通分量中的顶点集合遍历时走过的边一起构成若干颗生成树,这些连通分量的生成树组成非连通图的生成森林(深度优先生成森林、广度优先生成森林)。... -
Java生成验证码并进行验证
2016-04-06 22:11:42使用BufferedImage用于在内存中存储生成的验证码图片 使用Graphics来进行验证码图片的绘制,并将绘制在图片上的验证码存放到session中用于后续验证 最后通过ImageIO将生成的图片进行输出 通过页面提交的验证码和存放... -
批量生成银行卡号
2019-02-06 08:57:52给大家推荐一款 在线批量生成银行卡号的小工具 主要是方便测试人员在测试的过程中 做绑卡 https://www.jlshare.top/bankCard https://www.jlshare.top 一款常用软件共享平台 ps:有问题可以随时联系我 微信号: ... -
MyBatis快速入门第八讲——MyBatis逆向工程自动生成代码
2017-05-13 22:42:56MyBatis框架的学习(七)——MyBatis逆向工程自动生成代码什么是逆向工程MyBatis的一个主要的特点就是需要程序员自己编写sql,那么如果表太多的话,难免会很麻烦,所以mybatis官方提供了一个逆向工程,可以针对单表... -
不重复订单号生成的方法
2017-03-09 17:46:06第一种 GUID 由算法自动生成下 理论上能产生全球唯一的值 不过对于用户记订单号不方便 Console.WriteLine(System.Guid.NewGuid()); Console.ReadKey(); //生成结果:5322d297-51b4-419... -
java代码自动生成
2018-10-15 17:46:41Java代码自动生成(优化封装版) 一、前言 最近自己做了个项目,为了提升开发效率,节约不必要的开发时间,特意花时间优化了下代码自动生成工具。成果不错,效率提高了不少,空闲时间特意写下这篇文章,希望对... -
SpringBoot JPA 自动生成代码 (一) 生成实体类
2019-09-28 10:15:31之前做SSM项目时,一直使用的是Mybatis的Generator自动生成代码工具,也是蛮好使的。现在换了SpringBoot,自动生成代码使用的是人人开源项目修改来的,可以直接生成简单的CRUD代码和HTML页面。 一次偶然的机会,帮群... -
生成树
2019-06-13 18:05:07G的一颗生成树T是包含G的所有顶点的树,树中各边的权之和W(T)称为树的权,具有最小权的生成树称为G的最小生成树 实例 G=(V,E,W) ,V={1,2,3,4,5,6} E={{1,2},{1,3},{1,4},{2,3},{2,5},{3,... -
java工具类(三)之生成若干位随机数
2015-08-05 20:37:05java生成若干位随机数的问题 在一次编程的过程中偶然碰到一个小问题,就是需要生成一个4位数的随机数,如果是一个不到4位大的数字,前面可以加0来显示。因为要求最后是一个4位的整数,不带小数点。当时就想到了几个...
-
计算机操作系统PV操作
-
aix5.3上安装jdk1.6
-
上传jar包到本地maven仓库(以人大金仓kingbase的jdbc驱动为例)
-
jQuery中国地图选中城市高亮显示代码.zip
-
Cocos Creator游戏开发-连连看 (接入腾讯优量汇广告)
-
最新人教版五年级下册语文第七单元基础过关知识整理.doc
-
【数据分析-随到随学】数据分析基础及方法论
-
C/C++编程全家桶(Daozy极限编程)
-
thinkphp5.1博客后台实战视频
-
(新)备战2021软考系统集成学习套餐
-
Express全系列教程之(二):Express的路由以及动态路由
-
HZ视频配音配字幕工具v1.0版本一键配音配字幕.zip
-
(新)备战2021软考网络工程师历年真题培训套餐
-
(新)备战2021软考系统集成基础知识套餐
-
hadoop自动化运维工具Ambari应用实践
-
国家注册信息安全工程师体系课程(CISP-PTE)
-
(新)备战2021软考网络工程师培训学习套餐
-
最新人教版语文五年级上册第六单元测试卷.doc
-
23种JAVA设计模式
-
【数据分析-随到随学】Hadoop数据分析