你将如何编写一个程序来生成Haiku?

电脑Haiku
你将如何编写一个程序
为了让他们为你

不要尝试
诗歌混合不好
用金属和钻头

更严重的是,好的ha句(甚至坏ha句)更多的是凝聚意义和意象,而不是计数音节。 它一般也是基于从大自然收集的主题。 随机词的生成和音节计数会让你度量乱码,但不是诗歌…

衡量音节
理解语义stream
你的目标可以得到满足

首先,你会想看看马尔可夫链 ,其次,有一本关于计算机生成的诗歌的书叫虚拟缪斯 。

  • 计算音节
  • 随机生成文字
  • 合理安排

Haikus很容易,我会注意到
解决scheme有很好的文档logging,function死板
他们过分和俗气
编码太容易了
给我一个打油诗,然后我会投票

//我其实喜欢haikus

并不是所有的haikus都有相同数量的音节,但它是一个开始的地方。

就实际选词而言,我认为词性不会成为我要开始的地方。 相反,我会看马尔可夫链,并在现有的haikus上训练你的词汇量。

在Hai Village村 ,我们有技术可以以各种方式轻松做到这一点。 一个想法是简单地阅读全球Twitter的饲料,并检测无意的haikus。 由于后台也有字典,可能会产生可疑的haikus,但我认为质量会有所欠缺。

我想如果我们有一个星级评分系统,那么我认为机器学习可以用来决定什么是“好”。

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

“在十七个音节中expression自己的情绪是非常困难的……” (伟大的约翰库珀克拉克退房比斯利街 ,我的最爱之一)

电脑有多难? 逻辑知道没有心情:)

为了使其易读,将字典分成名词,动词,形容词和音节数。

拿出一些表格的模板:

[名词] [动词]“s”

[动词] a(n)[形容词] [名词]

[形容词] [名词]

并修剪你的字典美丽的话。

实施一个遗传algorithm来生成从用音节计数标注的字典中得到的haikus,然后支付人读取并评价它们作为适应函数[机械turk将帮助]。 随着时间的推移,你的计划应该发展一些好的。

编辑:

你需要一个GA
以CPU速度演变
如果你喜欢健身

你的计划必须耿耿于怀
Metaphores和意象
而且要有创意。

我会查找语法程序devise和语言学,并试图find用于语法结构的图书馆。 从那里,它应该是一个简单的步骤来添加字数和音节数约束。

这里的一些人build议使用字典并使用马尔可夫链生成单词序列。 这似乎是一个理论上可行的解决scheme,尤其是如果您使用高阶马尔可夫链(不是双向或三卦)。

但是我认为在实践中,如果能够收集现有的haikus数据库并select性地改变单个单词 (例如,将给定的单词改为另一个单词,语义相关的单词),它会更好。 现有的haikus给你一些结构和凝聚力,你只需要(不)改变它们中的小部分,以创build一个新的ha句(旧的变体)。

当然,用这种方法他们不会是全新的haikus,但是至less他们对于读者会有些愉快。

以关系顺序parsing现有的haikus,就像在yy次之后使用的单词xx一样。 所以创build时,xy在yy之后的可能性将是(yy之后所有使用的所有单词的总和)。 这样它将被select性地随机化,并且仍然是有效的ha句。

写下你的程序,用日文生成Haiku。 衡量你的音节数量要容易得多,因为你要忠于诗歌的原始语言。 如果你对这个项目有一定的灵活性,那么为什么不把原版的日文翻译成英文单词呢? 至less可以说这看起来很神秘。

无论如何,只是一个不同的问题。

马尔可夫序列
一个音节数据库
三条python

我会从某种包含每个单词的音节数的字典文件开始。 然后从这些加起来到所需的音节/行

至于做诗,而不是随意的话,我不知道。

除了使用伊恩的音节计数之外,你还可以通过词性分类来产生词组。

从故事使用抽样和傅里叶变换的语义谈起。 select一些细节描述的重要部分减less单词,并留给读者用自己的想象填补空白

计算机输出高质量ha句的algorithm是这样的:

设置阶段

 loop: find the email address of a world-renowned writer of haiku confirm that this person is willing to generate haiku on demand until sucker^H^H^H^H^H^Hwriter is found 

执行阶段

 loop: wait for a haiku request when a haiku request is received, email the previously-stored master and ask for a haiku wait for the haiku to return by reply output haiku 

当然,在这个基础架构上可以做出各种增强。 例如,设置阶段可以扩展到build立一个ha句专家 。 执行阶段可用于在空闲时间生成ha句,并将其caching以适应未来的需求。 这种调整的细节留给学生练习。

我喜欢这个问题。 这是非常有想象力的。 回答如下。


很多人都提出马尔可夫链,但我真的不认为这是可能的。 你需要明智地知道这个音节是否是PHONEMES,那么你必须知道音节结束的地方。

如果你曾经这样做,我会感到惊讶。