diego1990 发表于 2010-5-11 17:19:25

用遗传算法让电脑写宋词

相逢缥缈,窗外又拂晓.长忆清弦弄浅笑,只恨人间花少.*菊不待清尊,相思飘落无痕.风雨重阳又过,登高多少黄昏.

      这首《清平乐.*菊》的作者是一台计算机,比我写的好,十分佩服。且平仄、押韵十分工整,没有明显的句法错误,没有读着别扭的句子,风格婉约,伤感悲秋。这还是一台CPU 1.83GHz,内存512M计算机么?看完《一种宋词自动生成的遗传算法及其机器实现》这篇论文后,我对诗人、艺术家们十分同情,会有一天他们下岗的。


除了对人类未来的担忧,我感兴趣的是研究者们解决问题的思路。我们这样分析:

http://img.duote.com/zixunImg/local/2010/05/11/12735426249341.gif
3首由系统自动生成的宋词示例。图/中科院软件研究所
1. 基于统计学的词库。虽说汉语常用词汇不过3千个,可是这些词放在不同的上下文中所能表达的意思确千差万别。登山则情满于山,观海则意溢于海,人类的语言是 人类情感的抒发。我认为要让计算机写诗,最基础的工作就是建立一个包含情感类别、语义、音韵等要素的元数据库。

2. 填词的过程是搜索的过程。回想高中学写宋词的时候,总是安装词牌的要求一个一个词的填写,这是从大脑中搜索的过程,对于计算机而言是一个类似的过程。我们 可以采用启发式搜索,使得搜索总是沿着较优的方向前进。可以根据词法等相关概念,从词库挑选一系列备用词,沿着计算出来的评价(打分)进行搜索。

这篇论文和我前段时间读的人工鱼模拟的的论文类似,在解决搜索问题上都使用了遗传算法。遗传算法(Genetic Algorithm)是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法(引:百度百科)。

这是一篇很有意思的论文,所以我写了些自己的想法。语义分析我不懂也不是很感兴趣,但是,通过读论文来开拓视野,长长见识,推荐大家多逛逛相关网站:)

下载:《一种宋词自动生成的遗传算法及其机器实现》

本论文由来自厦门大学和浙江大学的三位学者完成。

摘要:主要针对宋词这种特殊的汉语诗歌体裁,开展了有关自动生成算法及其实现方法的探索性研究.研究工作主要根据宋词特点,设计了基于平仄的编码方式、基于句法和语义加权值的适应度函数、基于精英主义和轮盘赌算法的选择策略,采用部分映射和启发式交叉算子和启发式变异算子,从而构建了一种基于遗传算法的宋词生成计算模型并进行了系统实现.实验结果表明,所建立的计算模型及其软件系统,初步实现了机器自动生成宋词的目标,对于给定的主题词和词牌,基本上能够自动生成有一定欣赏价值的宋词.论文的工作也填补了我国在汉语诗歌自动生成研究方面的不足.













diego1990 发表于 2010-5-11 17:24:38

本帖最后由 diego1990 于 2010-5-11 17:27 编辑

全民一起来学习 用遗传算法让电脑写宋词
相逢缥缈,窗外又拂晓。长忆清弦弄浅笑,只恨人间花少。菊不待清尊,相思飘落无痕。风雨重阳又过,登高多少黄昏。
  有没有想过用电脑能自动生成这么优美的诗词?这首《清平乐.菊》的作者就是一台计算机,诗歌平仄、押韵十分工整,没有明显的句法错误,没有读着别扭的句子,风格婉约,伤感悲秋。这还是一台CPU 1.83GHz,内存512M计算机写出来的!看完《一种宋词自动生成的遗传算法及其机器实现》这篇论文后,笔者对诗人、艺术家们十分同情,会有一天他们下岗的。
  上文这首优美的的诗歌是由来自厦门大学和浙江大学的三位学者开发出来的“宋词自动生成的遗传算法”所自动创作的,这几位学者针对宋词这种特殊的汉语诗歌体裁,开展了有关自动生成算法及其实现方法的探索性研究。
  他们根据宋词特点,设计了基于平仄的编码方式、基于句法和语义加权值的适应度函数、基于精英主义和轮盘赌算法的选择策略,采用部分映射和启发式交叉算子和启发式变异算子,从而构建了一种基于遗传算法的宋词生成计算模型并进行了系统实现。实验结果表明,所建立的计算模型及其软件系统,初步实现了机器自动生成宋词的目标,对于给定的主题词和词牌,基本上能够自动生成有一定欣赏价值的宋词。论文的工作也填补了我国在汉语诗歌自动生成研究方面的不足。

  我们来看看研究者们解决电脑自动生成诗词问题的思路分析:
  
三首由系统自动生成的宋词示例:

宋词自动生成典型事例



  1. 基于统计学的词库。虽说汉语常用词汇不过3千个,可是这些词放在不同的上下文中所能表达的意思确千差万别。登山则情满于山,观海则意溢于海,人类的语言是 人类情感的抒发。我认为要让计算机写诗,最基础的工作就是建立一个包含情感类别、语义、音韵等要素的元数据库。
  2. 填词的过程是搜索的过程。回想高中学写宋词的时候,总是安装词牌的要求一个一个词的填写,这是从大脑中搜索的过程,对于计算机而言是一个类似的过程。我们 可以采用启发式搜索,使得搜索总是沿着较优的方向前进。可以根据词法等相关概念,从词库挑选一系列备用词,沿着计算出来的评价(打分)进行搜索。
  关于遗传算法:
  遗传算法(Genetic Algorithm)是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。
  点击下载:《一种宋词自动生成的遗传算法及其机器实现》

节奏与平衡 发表于 2010-5-12 00:16:11

无聊。瞎用。既然要用遗传算法,那么怎么选择个体的评价标准呢?

diego1990 发表于 2010-5-12 03:30:43

盛唐是可以这样梦回的?
涅宋吧?
哈哈

皑皑 发表于 2010-5-14 11:59:06

写词就写词,实在不知道他们为什么要称作写宋词。。。
页: [1]
查看完整版本: 用遗传算法让电脑写宋词