你将如何编写一个程序来生成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,那么你必须知道音节结束的地方。
如果你曾经这样做,我会感到惊讶。