如何编写一个生成俳句的程序?

78

计算机俳句
你要如何编程
为你制作


7
雇佣无限数量的猴子。除了莎士比亚的全部作品,你还将得到无限数量的俳句。 - Jon B
2
@Jon B:但那将需要无限长的时间。 - Bill the Lizard
1
@Bill,如果你有无限的时间,那么你只需要雇用一只非常健康的猴子就足够了。如果你雇用无限数量的猴子,你的文学作品创作速度只会受到一个特别聪明的猴子输入速度的限制。 - joeforker
算了吧,它不叫超级计数,但类似。 - Darknight
1
@Darknight,因为俳句的定义是由17个音节组成,而音节(或拍子)的数量是有限的。因此,组合的数量,这个数量可能比实际俳句的数量还要少,即为音节数的17次方。这仅涉及俳句的书面表达方式,而不涉及其含义。(即使对于更少的俳句数量,其含义的数量可能实际上是无限的,但并未要求编写一个解释俳句的程序,而仅仅是编写它) - Unreason
显示剩余9条评论
22个回答

36

测量音节
理解语义流
您的目标可以实现


20

不要试图混合诗歌和金属及其零部件

更加严肃的是,好的俳句(即使是坏的俳句)更多地关注于压缩意义和形象,而不是计算音节数。通常它也基于从自然中收集的主题。随机生成单词和音节计数会得到有规律的胡言乱语,但并非诗歌...


7
我不知道。在随机事件中寻找意义似乎是人类的本质。如果一首诗没有注入任何意义,而只有读者从中获取了意义,那它算是怎样的诗歌呢?这是否是世俗人文主义的范本? - joeforker
1
“...音节计数会让你得到一堆无意义的词语,但并不能读出诗歌的韵律。” 我认为区分它们正是“阅读诗歌”的全部意义所在。 - Mizipzor

13

10
  • 计算音节数
  • 随机生成单词
  • 合理排列

如果没有你的评论,这会好得多。这有点像提醒观众,“最后一句话,你知道的,那就是笑点。你懂了吗?” - Mizipzor
好的,没问题,如果你删除你的评论,我也会删除我的。 - Jason S
(FWIW 我的回答是第一个聪明的答案,所以我很担心被踩) - Jason S

9

写俳句简单易懂,我这里要提醒
解决方案文档详细,函数常规可靠性高
它们已经陈旧且老套
编程实在太容易了
给我写一个打油诗,然后我会投票

//其实我还是喜欢俳句


1
世界上最好的诗歌加1。 - Fenton
找到与“note”和“vote”押韵的单词花了多少小时? - new123456
@new123456 外套?护城河?引用?船?山羊?手提包?浮动?克罗地亚人?(好吧,最后一个有点牵强) - PaulMcG
@PaulMcGuire 好的,但是代码不会漂浮,对吧?我指的是在上下文中押韵的东西 ;)。 - new123456
有些代码绝对是GOAT(最伟大的)。 - BenjaminRH

5

从俳句和其他诗歌中提取两个或更多单词的马尔可夫链,我认为会非常不错! - nlucaroni
实际上,俳句有相同数量的音节,这是它们的定义:http://en.wikipedia.org/wiki/Haiku - Mnementh
嗯,也看看这个:http://en.wikipedia.org/wiki/Haiku#Contemporary_English-language_haiku “使用三行(或更少)每行17个或更少的音节”。 - Jonik
3
咕!现代英语俳句?真是废话。 - Kevin

5
Haiku Village,我们拥有技术以多种方式轻松实现这一点。一个想法是简单地阅读全球Twitter动态,并检测无意识的俳句。由于后端还有一个词典,因此可以生成可疑的俳句,但我认为质量会欠缺。
我认为如果我们有一个星级评分系统,那么机器学习可能会用于决定什么是“好”的。

3
for (i is 0
and i is less than thirteen)
print s i plus plus

我认为你的程序有一个无限循环。 - Niklas B.
@bobobobo - 加入以解决无限循环问题! - Fenton

2
实现一个遗传算法,从一个带有音节计数注释的字典中生成俳句,然后支付人们阅读和评价它们作为适应度函数(机械土耳其将有所帮助)。随着时间的推移,您的程序应该会演化出一些好的俳句。
编辑:
需要一个遗传算法 在 CPU 速度下进化 如果你关注适应度

我很想看到这个的实现。遗传算法让我非常着迷... - Erik Forbes

2
"

在十七个音节中表达自己的心情非常困难......"(伟大的约翰·库珀·克拉克,看看我的最爱之一比斯利街

对于计算机来说更加困难了。逻辑没有情绪 :)

"

那样会更容易 - 如果没有情绪变量的话。你只需要每次传达冷漠即可。 - Fenton

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接