“狗屁不通文章生成器”登頂GitHub熱榜,分分鐘寫出萬字形式大作

一、垃圾文字生成器介紹

最近在瀏覽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 排版 = "

" + 文章.join("

") + "

";

$("#論文").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


分享到:


相關文章: