您将如何编写程序以生成Haiku?[关闭]


78

计算机Haiku
您将如何编写程序
来为您制作程序


7
雇用无数的猴子。除了莎士比亚的全集之外,您还将获得无数的Haikus。
乔恩B

1
@Jon B:但这将花费无限长的时间。
比尔蜥蜴,

+1的问题,到目前为止的评论。
Michael Haren

1
@Bill,如果您有无限的时间,则只需要雇用一只非常健康的猴子即可。如果您雇用了无数的猴子,那么您的文学作品的出版速度将仅受一只特别大胆的猴子打字速度的限制。
joeforker

1
@Darknight,好吧,因为Haikus从定义上说是由17个莫拉组成的,并且莫拉(或ons)的数量是有限的。因此,可以说比实际的Hai句数少的组合数为number_of_moras ^ 17。这仅是关于the句的书面表示,而不是其含义。(即使对于较少数目的hai句,含义的数量实际上也可能是无限的,但是并没有要求编写解释句的程序,而只是编写它)
Unreason 2010年

Answers:


19

不要尝试将
诗歌
与金属和碎片混合得不好

更严重的是,好的good句(甚至是坏的hai句)比起对音节的计数,更多的是浓缩意义和意象。它通常也基于从自然界中收集的主题。随机的单词生成和音节计数可以使您测得乱码,但不能测出诗歌...


6
我不知道。寻找随机性的含义似乎是很人性化的。什么是一首无意义的诗,只有读者从中汲取的含义?这是世俗人文主义的典范吗?
joeforker

“……音节数可以使你得到些许胡言乱语,但不是诗歌。” ...我以为告诉差异是“读书诗”的全部含义。
Mizipzor 2010年



10
  • 数音节
  • 随机产生单词
  • 明智地安排

如果没有您的评论,那就更好了。那有点像提醒听众“最后一句话,是重点。你明白了吗?”
Mizipzor 2010年

好的,好的,如果您删除评论,我会删除
Jason S 2010年

(FWIW矿山是第一个明智的选择,所以我很警惕投票否定)
Jason S 2010年

9

Haikus很简单,我会注意到
解决方案有据可查,并且功能死记硬背
它们过于冗长而俗气
编码太简单

//我实际上喜欢haikus


1
+1代表世界上最好的诗歌。
Fenton 2010年

它没有多少小时找一些与韵notevote
new123456 2011年

@ new123456外套吗?护城河?引用?船?山羊?手提袋?浮动?克罗地亚人?(好的,最后一个很
麻烦

@PaulMcGuire好的,但是代码没有浮动,是吗?我的意思是在上下文中押韵;)。
new123456 2013年

好一些代码肯定是山羊的;)
BenjaminRH

5

并非所有句都具有相同的音节数量,但这是一个起点。

在实际选择单词方面,我认为演讲的内容不会是我开始的地方。相反,我将研究马尔可夫链,并在现有的句上训练您的词汇量。


马可夫链上成对的或更多来自句和其他诗歌的单词,我认为这太好了!
nlucaroni

实际上,hai句的音节数是相同的,这就是它们的定义:en.wikipedia.org/wiki/Haiku
Mnementh'Feb

嗯,也请阅读以下内容:en.wikipedia.org/wiki/Haiku#Contemporary_English-language_haiku “使用三行(或更少)行,每行17个或更少的音节”
Jonik,2009年

3
呸!当代英语句?什么废话
凯文,

5

Haiku Village上,我们拥有可以以多种方式轻松实现此目的的技术。一种想法是简单地阅读全局twitter提要,并检测意外的句。由于后端也有字典,因此有可能产生可疑的hai句,但我认为质量会欠缺。

我认为,如果我们拥有星级评定系统,那么我认为可以使用机器学习来确定什么是“好”。



2

“用十七个音节来表达自己的心情是非常困难的……” (伟大的约翰·库珀·克拉克退房比斯利街,我的最爱之一)

一台计算机的难度更大?逻辑没有心情:)


那就容易多了-因为如果没有心情,变量就会更少。您只需要每次都传达冷漠。
Fenton

2

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

提出以下形式的模板:

[名词] [动词]“ s”

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

[形容词] [名词]

并用美丽的文字修饰字典。


2

实施一种遗传算法,以从带有音节计数注释的字典中生成句,然后向人们收费以对其进行阅读和评分,以作为适应度函数(机械土耳其人会有所帮助)。随着时间的流逝,您的程序应该会发展一些好的程序。

编辑:

您需要 注意的是,您需要的GA
以CPU速度发展


我很乐意看到这一实现。遗传算法极大地吸引了我……
Erik Forbes


1

我将查找语法编程和语言学,并尝试查找语法结构的库。从那里应该是一个简单的步骤,以添加字数和音节数约束。


1

这里有人建议使用字典,并使用马尔可夫链生成单词序列。从理论上讲,这似乎是可行的解决方案,尤其是如果您使用高阶马尔可夫链(而不是二字组或三字组)。

但是我认为在实践中,如果您可以收集现有句的数据库并有选择地更改其中的单个单词(例如,将给定单词更改为另一个与语义相关的单词),效果会更好。现有的句为您提供某种结构和凝聚力,您只需要(交换)其中的小部分即可创建一个新的句(是对旧ku句的一种变体)。

当然,使用这种方法,它们不会是全新的句,但至少对于读者而言,它们会有些有趣。


1

按关系顺序解析现有的句,例如在yy n次后使用单词xx。因此,在创建时,在yy之后出现xx的可能性为(n / yy之后使用的所有单词的计数总和)。这样,它将被有选择地随机化,并且仍然可以是有效的句。


这是对马尔可夫链背后的想法的恰当描述。如果在源中单词y出现在单词x后面的时间为75%,那么将在输出中选择单词75%的时间为y。
joeforker,2009年

但是,它最好与三个单词组合使用:在这两个单词之后跟随哪个单词。
我的正确观点

1

编写程序以用日语生成Haiku。衡量您的音节数将容易得多,而且您还要忠于诗歌的原始语言。如果您在项目上有足够的灵活性,为什么不制作原始日文-然后在其旁边显示英文逐字逐字翻译。至少可以说这看起来很神秘。

无论如何,只是对问题的看法不同。



0

我将从某种字典文件开始,其中包含每个单词的音节数。然后从中选择单词加到所需的音节/行中

至于使它成为诗歌,而不仅仅是随机的单词,我不知道。


诗歌与随意的单词,谁能分辨?;-)
joeforker

文字转语音程序带有发音词典。
joeforker

0

除了使用Ian的音节计数概念外,您还可以按词性对单词进行分类并生成短语。


0

从故事的语义学角度出发,使用采样和傅立叶变换。选择一些细节描述中的重要部分,用简短的文字讲完,然后留给读者以自己的想象力填补空白


请详细介绍如何将故事解构为各种频率的正弦或余弦波之和。
joeforker

那么,抽样的想法是什么?以至少是感兴趣范围内最高频率的两倍的频率对信号进行采样。如果您像这样提取了一些秘密信息,则可以重建模拟输入而不会造成任何损失(在感兴趣的范围内)
BorisPavlović09年

与此类似,可以提取重要的动词,名词和形容词,这些动词,名词和形容词在某些描述中是基石,而其余所有内容都保留下来。用有意义的数组组合这些单词,您将得到haiku
BorisPavlović09年

0

用于使计算机输出高质量haiku的算法的工作原理如下:

设置阶段

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

当然,可以对该基本体系结构进行各种增强。例如安装阶段可以扩展到建立一个游泳池俳句专家。执行阶段可用于在空闲时间生成句,并根据将来的需求对其进行缓存。这种调整的细节留给学生作为练习。


-1

我喜欢这个问题。这是很有想象力的。在下面回答。


许多人建议使用马尔可夫链,但我真的认为这不可能。您需要智能地知道该音节是否为PHONEMES,然后您必须知道该音节在哪里结束。

如果您这样做,我会感到惊讶。


在某些时候,您可能希望查询一下所用单词在英语中的实际含义。
我的正确观点
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.