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

发布了157 篇原创文章 · 获赞 102 · 访问量 45万+

猜你喜欢

转载自blog.csdn.net/gc_2299/article/details/103436223