前几天,GitHub 有个开源项目特别火,只要输入标题就可以生成一篇长长的文章。
背后实现代码一定很复杂吧,里面一定有很多高深莫测的机器学习等复杂算法
不过,当我看了源代码之后
这程序不到50行
尽管我有多年的Python经验,但我竟然一时也没有看懂
这代码放到编辑器里还特么真能执行
当然啦,原作者也说了,这个代码也是在无聊中诞生的,平时撸码是不写中文变量名的, 中文变量名只是最开始瞎写的时候边写语料边写代码时懒得切英文输入法了。
中文变量名也就忍了,但代码逻辑不好懂,最后我还是忍着剧烈的头痛把它的原理读懂了。
这究竟咋实现的呢?
我肯定是不服的,这代码要是被Python之父看见了,他一定后悔发明这门语言。
其实,生成的文章内容都来自于素材文件 data.json, 这个文件的结构是个字典结构
{ "famous":[ "爱迪生a,天才是百分之一的勤奋加百分之九十九的汗水。b", "查尔斯·史a,一个人几乎可以在任何他怀有无限热忱的事情上成功。b", .... ], "bosh":[ "现在, 解决x的问题, 是非常非常重要的. 所以, ", "我们不得不面对一个非常尴尬的事实, 那就是, ", .... ], "after":[ "这不禁令我深思. ", "带着这句话, 我们还要更加慎重的审视这个问题: ", .... ], "before":[ "曾经说过", "在不经意间这样说过", .... ] }
famous
里面收集了很多名人语录, 里面的关键字”a”和”b” 将分别被 before
和 after
列表中的内容替换,这样处理后句子看起来具有逻辑性
bosh
里面是各种各样的的废话, 里面关键字”x”最后会用标题替换,这样会让人感觉,这篇文章还是和标题有那么一丢丢联系的。
一篇完整的文章就是靠不断随机从famous、bosh列表获取元素,之后拼接成一篇文章。
搞懂了原理,如果我们自己来写的话,除去代码注释,就10来行代码
import random import json data = json.load(open("data.json", encoding="utf-8")) def generator(title, length=800): """ :param title: 文章标题 :param length: 生成正文的长度 :return: 返回正文内容 """ body = "" while len(body) < length: num = random.randint(0, 100) if num < 10: body += "\r\n" elif num < 20: body += random.choice(data["famous"]) .replace('a', random.choice(data["before"])) .replace('b', random.choice(data['after'])) else: body += random.choice(data["bosh"]) body = body.replace("x", title) return body
来测试一下
from bullshit import generator content = generator("我爱Python") print(content)
输出
一般来说, 问题的关键究竟为何"htmlcode">
content = generator("我爱Python", length=1000) print(content)输出
要想清楚, 我爱Python, 到底是一种怎么样的存在. 我们都知道, 只要有意义, 那么就必须慎重考虑.了解清楚我爱Python到底是一种怎么样的存在, 是解决一切问题的关键.
从这个角度来看, 一般来说, 带着这些问题, 我们来审视一下我爱Python. 我们不得不面对一个非常尴尬的事实, 那就是, 吉姆·罗恩在不经意间这样说过, 要么你主宰生活,要么你被生活主宰。这句话把我们带到了一个新的维度去思考这个问题: 我爱Python, 到底应该如何实现. 每个人都不得不面对这些问题. 在面对这种问题时, 问题的关键究竟为何"text-align: center">当然,你也可以引入更多NLP等技术进来,不过这对我来说
原项目地址:https://github.com/menzi11/BullshitGenerator
重构后的代码地址:
https://github.com/lzjun567/BullshitGenerator
总结
以上所述是小编给大家介绍的so easy!10行代码写个"狗屁不通"文章生成器功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]