C#仿““狗屁不通文章生成器””功能

  前幾天在CSDN中看到兩篇文章《so easy! 10行代碼寫個"狗屁不通"文章生成器》和《“狗屁不通文章生成器”登頂GitHub熱榜,分分鐘寫出萬字形式主義大作》,介紹如何根據輸入的題目生成隨機的文章,用的Python語言,代碼比較簡單。於是用C#也實現類似的功能。

程序原理

  “狗屁不通文章生成器”最重要的東西是文章素材,原程序中將文章素材分爲兩大類:名人名言“famous”和空話“bosh”,並將文章素材放在了data.json文件中。爲了讓名人名言的形式多一些,又把名人名言抽出了兩部分內容,即名人名言的形式類似於:”亞伯拉罕·林肯a, 我這個人走得很慢,但是我從不後退。b“,a和b分別對應着一組常用詞條。爲了讓空話與題目貼合,在空話中加入變量x,生成文章過程中用文章標題替換x。
  文章生成過程很簡單,生成個隨機數N,N<10添加新段,N≥10 && N<20在當前段添加名人名言,其它情況添加空話。

關鍵代碼

  代碼實現比較簡單,最麻煩的是在C#中解析data.json文件,從其中讀取文章素材。百度了幾篇文章,用的最多的是Newtonsoft.Json程序集。Newtonsoft.Json程序集屬於開源代碼,用於生成及解析json文件。Newtonsoft.Json程序集中有多種方式可以解析Json文件,感興趣的朋友可以看參考文獻1。這裏使用的方式是根據data.json文件中的內容格式定義了一個類,然後使用Newtonsoft.Json中的JsonConvert.DeserializeObject方法自動解析爲指定的類對象。

public class JsonDatas
  {
       public string Title;
       public List<string> Famous;
       public List<string> Bosh;
       public List<string> After;
       public List<string> Before;
   }
程序效果

  程序的實現代碼沒有多少,就幾十行的樣子。主要是參考前面兩篇文章,用戶輸入標題和文章長度,然後自動生成文件內容,效果如下圖所示。代碼放在了GitHub上:CSharpVersionBullshitGenerator
在這裏插入圖片描述

程序的不足之處
  • 可能連續生成空段;
  • 段落最後可能是個斷句。

參考文獻:
[1]https://www.newtonsoft.com/json
[2]https://www.cnblogs.com/masonlu/p/11225893.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章