python代码解读器_python文章生成器(附源码+讲解)
移动端建议收藏后在pc端查看
最近在看到网上的【营销号生成器】和【狗屁不通生成器】。前者确实是营销号的口吻,但是竟然连模板都是写死的;后者也如其名,的确“狗屁不通”。于是结合当前对python的学习,打算自己写一个更有灵魂的。代码难度不高,适合学习交流。废话不多说,上效果:控制台输出内容
emm...图片可能太小影响观看,简单介绍一下吧。生成文章之前,首先输入动词和名词,这里动词输入的是“刷”,名词输入的是“b站”,控制台会打印文章内容,也可以选择把文章输出为word文档或者txt文本。贴下原文看看生成了什么吧:题目:我与我刷过的b站
要想清楚,刷b站,到底是一种怎么样的存在。我爷爷曾说,他刷过的b站比我吃过的饭还多,我是不信的,因为我也经常刷b站。达尔文曾经说过,敢于浪费哪怕一个钟头时间不刷b站的人,说明他还不懂得珍惜生命的全部价值。要弄明白,没有人能像博贝刷那b站时感觉到那么富有。鲁迅曾经说过:“我家门前有两棵树,一棵是枣树,另一棵也是枣树”。我的爱好有两个,一个是刷b站,另一个也是刷b站。
从某个角度看来,刷b站创始人应该是个很传统的老派人,可偏偏是却掀起了一种新潮流,将刷b站推向了知识产权保护下的新时代。鄙人才疏学浅,对刷b站一知半解。一个著名的英国政治家说过,没有永远的朋友,只有永远的利益。只要刷足够的b站,那就是朋友。
刷b站是怎么回事呢?b站相信大家都很熟悉,但是刷b站是怎么回事呢。那么对于刷b站来说呢?过去一切时代的精华尽在b站中。这是有因果关系的。对一个人来说,所期望的不是别的,而仅仅是他能全力以赴和献身于一种美好事业。共同的事业,共同的斗争,可以使人们产生忍受一切的力量,刷b站就是如此。刷b站就像国际形势一样风云变幻难以把握,本·帕克说过:能力越大,责任越大,我觉得,也应当更多地刷b站。
卡尔维诺的《看不见的城市》是这么个故事:马可.波罗站在蒙古大汗面前,讲述他东来旅途中所见到的城市,每一座城市都是种象征,而且全都清晰可见。看完那本书我刷了一夜的b站,只见一座座城市就如奇形怪状的孔明灯浮在一片虚空之中。最灵繁的人也看不见自己的背脊。鲁迅曾经说过:世上本无路,走的人多了,也就成了路。也许,b站也不曾存在,只是刷的人多了罢。
最近,我一直在思考刷b站这件事。比起真b站来更可爱,感激每一个新的挑战,因为它会锻炼过去一切,时代的精华尽在b站中。我一直相信着,我们一般认为,抓住了问题的关键,其他一切则会迎刃而解。唐朝著名诗人韩愈曾说过:书山有路勤为径,学海无涯苦作舟,我想刷b站亦是如此。我们知道,了解清楚刷b站到底是一种怎么样的存在,是解决一切问题的关键。马丁·路德金说:历史将记取的社会转变的最大悲剧,不是坏人刷的b站,而是好人刷的b站。
从前有个好孩子,名叫雅各布·布利文斯。他对父母总是惟命是听,不管他们的话多么荒唐,多么不合情理;他总是努力刷b站,刷b站从不迟到。在戛纳车站,客车里已经满是人了,因为彼此全是互相认识的,大家都谈起刷b站来。文森特·皮尔说过一句著名的话,改变你的想法,你就改变了自己的世界。我们有多少人,应当改变对刷b站的偏见!
我们无论遇到什么困难,都不要放弃刷b站。刷b站得到极大的好评,孔子曰:学而时习之,不亦说乎。刷b站也需要适当的温习。“b站”是我的好友,现在是,未来也将一直是。
文章要有感情,除了丰富的语料库,还应有更合理的文字布局。在这个项目中,除了标题外我共设置了6个txt文档,用于存放开头、结尾、过渡等各种语句,当然大段落的文字也是必须的,他能以最小的成本让文章变得通顺。
下面是使用说明以及代码讲解,先贴上下载地址:
链接:https://pan.baidu.com/s/1Z4XgFzluZNBdVeyUIcurDg
提取码:NBYA
全文件一共32K,放心下载。
使用说明:
一、结构介绍:文件一共包含三部分,【out】文件夹存放的是输出的word和txt文件,不能删除,删除了输出文件找不到地址会报错。【txt】存放的是语料库,内含6个文档,后期可自行修改。【pageWord.py】则是我们的脚本主体,使用pyCharm打开它。文件夹中的内容
二、导包:使用之前记得在先cmd中导包(链接使用的清华源):
三、参数介绍:
运行之前可以手动修改某些参数,在第17行可以看到它们。例如将【ifOut】的值改为1,就会输出txt文档到【out】文件夹中;修改Mnum的值,将改变段落数量;修改testMode的值为2,可以在运行时输入更多参数。
注意:由于没有做校验,数字类型的参数值应当设置成合理范围内的数字。
四、运行:Ctrl + shift + F10 运行项目,在未修改参数的情况下,控制台会要求输入【动词】和【名词】,回车确认。例如动词输入“干”,名词输入“饭”。当然重口味的同学也可以输入动词“吃”,名词“粑粑”。
输入完脚本运行,控制台就能看到输出的文本了,想要输出word或者txt文本的话,看一下前面【参数介绍】里的内容。
代码讲解:
代码从第28行开始运行,不修改参数的情况下,testMode的值是1,会让用户input输入“动词”和“名词”,赋值给do和thing。
中间部分都是自定义的函数,直到第173行,可以看到定义了path、data、line三个字典,分别装的是文档路径,语料数据,以及未使用的语料编号。使用for循环,对其赋值。path是直接存入字符串类型。而data则是通过函数getData,入参path获取的。line则是靠getLine函数,入参data,通过data的长度获取一个列表。
getData函数定义在第44行,使用open()方法打开txt文件,使用readlines()按行读取txt中的内容,赋值给data。细心的小伙伴可能看到,语料文件中含有大量的“XXXOOO”,其实下一步就是通过changWord函数将输入的do和thing的值分别替换XXX和OOO。
使用.replace(,)的方法替换动名词,第85行用空字符替换掉了文中的换行符“\n”。替换后的语料被返回到data中,供后续调用。
回到第181行,print在控制台输出标题,【,end="”】起到不换行的作用。len()函数获取列表长度long,使用random.randint(0, long - 1)随机获取0到long-1的一个值,通过这个值作为索引,输出data[0]中的第R号内容,作为我们的标题。标题是在【0.txt】文档中获取的,修改里面的内容,就可以使用自己想设定的标题了。
188行和193行有两个 if 语句,可以看到条件是参数中设置好的 ifOut和 ifOut2。通过注解我们可以知道这两个参数分别是控制word与txt文档的输出的,当 ifOut或 ifOut2的值不为0时,将执行里面的输出语句,后续就不再介绍了。
第198-第200行,调用了三个函数,三个函数作用分别是文章第一段、文章中间段、文章结尾段的生成。下面以middleP函数为例。
文章主体部分分成两种格式,一种是小段落拼凑,一种是大段落拼凑,交替使用。在第147行,使用global声明调用了函数外部的全局变量flag2,用于判断是否使用了“大段落”类型的格式。data[5]存放的就是大段落内容,line[5] = getText(data[5], line[5])则是调用输出data[5]中的内容,我们具体看一下 getText()函数中的内容:
getText函数在第61行,入参是data和line。首先获取line的长度,if条件中的语句是重置line用的,因为每使用一条语料,就会在line中删除这条语料的编号,这样就可以避免重复使用,然而如果line中一个编号也没有了,那就无法输出数据了,因此当剩余的编号数量达到预设的阈值时,line列表将会重置。
在未使用的line编号中随机获取一个赋值给r,输出data的第line[r]个元素。要注意,这里的data是入参的data,不是函数外的data,函数外的data存放的是一个字典,函数内的data存放的则只是data字典中的一个列表。
后面的两个输出判断不再赘述,del line[r]则用于删除本次使用的语料编号,避免重复使用,返回值是line,说明data的值没有改变,改变的只是line中存放的编号,因此line重置后还能照常读取data中的数据。
getText函数只是用于根据指定的语料编号进行输出,如何灵活地使用不同的语料库,还要靠firstP()、middleP()、endP()、smallT()这几个函数的逻辑,有兴趣的小伙伴可以在源码中看一下,这里就不多介绍了。
代码只能是实现功能,肯定还有很多提升空间,欢迎大佬指点
python代码解读器_python文章生成器(附源码+讲解)相关推荐
- 100个必会的python脚本-100行Python代码实现自动抢火车票(附源码)
前言 又要过年了,今年你不妨自己写一段代码来抢回家的火车票,是不是很Cool.下面话不多说了,来一起看看详细的介绍吧. 先准备好: 12306网站用户名和密码 chrome浏览器及下载chromedr ...
- python必背100源代码-100行Python代码实现自动抢火车票(附源码)
前言 又要过年了,今年你不妨自己写一段代码来抢回家的火车票,是不是很Cool.下面话不多说了,来一起看看详细的介绍吧. 先准备好: 12306网站用户名和密码 chrome浏览器及下载chromedr ...
- python火车票购买程序代码_100行Python代码实现自动抢火车票(附源码)
前言 又要过年了,今年你不妨自己写一段代码来抢回家的火车票,是不是很Cool.下面话不多说了,来一起看看详细的介绍吧. 先准备好: 12306网站用户名和密码 chrome浏览器及下载chromedr ...
- python抢购火车票源代码_100行Python代码实现自动抢火车票(附源码)
前言 又要过年了,今年你不妨自己写一段代码来抢回家的火车票,是不是很Cool.下面话不多说了,来一起看看详细的介绍吧. 先准备好: 12306网站用户名和密码 chrome浏览器及下载chromedr ...
- 20220517 Python 制作一个儿童学习软件 (附源码和软件下载) 包含语音合成 视频播放 pyqt pptsx3 Qmovie request pygame 音频播放
20220517 Python 制作一个儿童学习软件 (附源码和软件下载) 包含语音合成 视频播放 pyqt pptsx3 Qmovie request pygame 音频播放 文章目录 202205 ...
- C#使用Xamarin开发可移植移动应用进阶篇(7.使用布局渲染器,修改默认布局),附源码...
原文:C#使用Xamarin开发可移植移动应用进阶篇(7.使用布局渲染器,修改默认布局),附源码 前言 系列目录 C#使用Xamarin开发可移植移动应用目录 源码地址:https://github. ...
- IT技术文章示例(附源码)
IT技术文章示例(附源码) 重点推荐 1.jquery+swfupload+servlet 多文件上传:http://www.ityangba.com/thread-49-1-1.html 2.jav ...
- Vue 彩色头像|一个有趣的头像生成器 附源码
前言 这是一款矢量风格的头像生成器,您可以搭配不同的素材组件,生成属于您自己的个性化头像. 介绍 您可能感兴趣的功能: 可视化组件配置栏 随机生成头像 重做/撤消 国际化 批量生成多个头像 在线体验 ...
- AI自动写文章生成器系统源码 一键生成高质量原创文案
分享一个AI自动写文章生成器系统源码,程序包含电脑端+手机端+详细的搭建教程,源码开源可二开. 功能介绍: 是一款人工智能对话系统,它可以聊天,写文章,写论文,写代码,写小说,创意策划,做Excel表 ...
最新文章
- name 'false' is not defined
- day09 python之函数进阶
- VISSIM二次开发(Python)大作业总结1
- linux64位wps下载授权码,ubuntu15.04安装wps-office的64位版
- Word 转PDF图片不清晰解决方法
- Vue Elements 可用的省市县数据
- java lucene 站内搜索_完整的站内搜索Demo(Lucene.Net+盘古分词)
- c语言编程中每个指令含义,C语言编程中我们会遇见一些指令,在这里列了一些出来...
- 学习笔记—bootstrap(2)
- 让Meebo自动变换背景的客户端脚本
- 004.python基础知识之基本数据类型及基本运算符
- 忆夕阳下的光辉,给我的父亲
- 土豆视频显示服务器走丢了怎么办,江湖风云录玩家常见问题解答 玩家常遇到的四十个问题_3DM手游...
- Day431.本地事务分布式事务CAP理论 -谷粒商城
- Root你的设备(二)
- 麒麟 统信系统商店下载的安装包位置
- 软件开发度量及考核办法
- 【论文阅读】(2020)Knapsack polytopes: a survey(上)
- HTML5的读书笔记2000字,高中平凡的世界读后感2000字
- STM32输出5V电平
热门文章
- Python中使用tarfile压缩、解压tar归档文件
- Atom 编辑器安装 linter-eslint 插件,并配置使其支持 vue 文件中的 js 格式校验
- 【分段哈希】H. Paint the Wall
- play 1.2.4的action执行前后的加载逻辑
- 几年的写论文和审稿心得
- 【转】socket提交http表单 [C++]
- HTML元素(标签)大全及使用说明 (整)
- Spark机器学习之协同过滤算法
- WebStorm设置字体和颜色
- [转载]如何破解Excel VBA密码