《一种宋词自动生成的遗传算法及其机器实现》
自厦门大学和浙江大学的三位学者开发的“宋词自动生成(的)遗传算法”,主要针对宋词这种特殊的汉语诗歌体裁,设计了其自动生成算法及其实现方法。
3 个示例:
keyword=菊 Ci Pai=清平乐 Style=风格婉约
相逢缥缈,窗外又拂晓.长忆清弦弄浅笑,只恨人间花少.
黄菊不待清尊,相思飘落无痕.风雨重阳又过,登高多少黄昏.
(这篇写的真的太NB了。。。)
keyword=饮酒 Ci Pai=西江月 Style=风格豪放
饮酒开怀酣畅,洞箫笑语尊前.欲看尽岁岁年年,悠然轻云一片.
赏美景开新酿,人生堪笑欢颜.故人何处向天边,醉里时光渐渐.
keyword= 佳人 Ci Pai=点绛唇 Style=风格婉约
人静风清,兰心蕙性盼如许.夜寒疏雨,临水闻娇语.
佳人多情,千里独回首.别离后,泪痕衣袖,惜梦回依旧.
----节选 --------------------------------------------------------
根据宋词特点设计了基于平仄的编码方式,将“平、仄”与“0、1”编码相对应的编码方案.比如词牌《清平乐》平仄分布如下:
⊙平⊙仄,⊙仄平平仄.⊙仄⊙平平仄仄,⊙仄⊙平⊙仄.
⊙平⊙仄平平,⊙平⊙仄平平.⊙仄⊙平⊙仄,⊙平⊙仄平平.
其中⊙表示可平可仄.根据我们的编码方案可得如下编码串:
*0*1,*1001.*1*0011,*1*0*1.
*0 *100,*0*100.*1*0*1,*0*100.
..........
通过对大量宋词语句构成的分析,发现组成句子的有效模式的数目是有限的,并且呈现出了层次化的结构,因此比较适合采用DFA(deterministic finite automata)来表示。随机组合的词语,在产生大量的备选个体后,逐个进行DFA 分析测试,通过留下,没通过则剔除。
..........
宋词的语义计算问题,包括词义相关度计算、词义相似度计算,以及风格情感一致性计算3 个方面。计算词义相关的目的是建立词语间的关联,发掘词语共现和搭配的可能,从而保证生成诗词行文和主题上的连贯.我们可以基于语料库统计来给出利用潜在语义分析和互信息两种方法词义相关度计算方法.......利用潜在语义分析(latent semantic analysis,简称LSA)和是基于互信息(mutual information,简称MI)的方法计算词义相关度............对于最终的计算结果,我们首先选取两种算法的重叠部分,相关度则用两者各占50%的加权和表示;其次对于不重叠的部分,我们按相关度从高到低进行排列,并保留相关度大于10−3 的词。
..............
词语相似度主要用于衡量文本中词语的可替换程度.计算词义相似度,目的是在保证所选词紧扣主题的前提下,尽量使生成诗词的语言更丰富多变.目前自然语言的词义相似度有两类常见的计算方法,一种是利用大规模的语料库进行统计,另一种是根据本体知识来计算。........考虑到计算的复杂性和词义相似度在应用中较强的针对性,在实际计算相似度时,我们仅对词库中高频名词545 个和形容词367 个近义词集进行计算。
...............
有了具体的宋词生成算法,就可以构建宋词自动生成系统,按用户输入的关键词(要求输入1∼3 个关键词)和词牌名自动生成宋词.实际系统共分数据库建立、句法语义处理、基于遗传算法的生成3 个基本模块.实际系统是在普通微机的Windows 平台上采用VisualC++ 6.0 开发实现的,测试机器基本参数为:CPU 1.83GHz,内存512 MB.目前系统仅支持10 个常见词牌的宋词生成,这10 个词牌分别是《蝶恋花》、《青玉案》、《清平乐》、《浣溪纱》、《西江月》、《点绛唇》、《鹧鸪天》、《江城子》、《长相思》、《浪淘沙》。
例如,取种群大小k1 为100,最大进化代数k2 为5 000,交叉概率k3 为0.8,变异操作次数k4 为3 000,变异概率k5 为0.15,父代接受概率k6 为0.3.当输入主题关键词为“菊”,词牌名为《清平乐》时,系统经过如下运行过程.
首先系统提取主题关键词“菊”,在词义相似和词义相关库中进行查找,形成表1 所示的计算结果.接着,系统根据《清平乐》词牌的要求随机生成两个韵部.上阙仄韵“小”,下阙转平韵“魂”,即随机生成了一个平声韵部和一个仄声韵部.规定每个个体中至少出现一个与主题词的词义相似词.生成的初始种群个体举例如下(之一):
登临多少,入夜催秋草.憔悴田园添缠绕,携手光阴欢笑.
金菊零落离魂,春风相近黄昏.为我悲秋斜倚,此生天气重门.
表 1 “菊”的词义相似和词义相关计算结果
Synonyms of “JU”=黄菊 紫菊 嫩菊 槛菊 兰菊 菊花 金菊 菊蕊 野菊 松菊 晚菊 庭菊 细菊 篱菊 赏菊 丛菊 新菊 菊香 白菊
Firstly correlation=轻寒登高 秋色 重阳 晓寒 离恨 雁 黄 管弦 香 秋 晚秋 微雨 萧疏 零乱 凄然 黯淡 凄楚 憔悴 萦绊 愁颜 梦 影 夜 西风 零落 幽怨 微凉 斜日 馨香 鸿雁 金 祝寿 紫 中秋 新酿 东篱 高歌 醉 残 良辰 庭院
Secondly correlation=情舞 携手 竟 金尊 忆 轻轻 朱阑 残 难忘 红烛 朦胧 寒 烛影 无端 明镜 雁 梧桐燕 吹 扁舟 故国 潇湘 残荷 露 叠翠 晨星 浩渺 清泪 回首 遥看 人间 笙歌 共舞 冷艳 长亭 相逢 双桨 红颜 暮云 吟 幽愫
分享到:
相关推荐
一种宋词自动生成的遗传算法及其机器实现,用遗传算法生成宋词
输入词牌,基于宋词的词典和宋词的词牌,可以随机或者按照语言模型,自动生成宋词
随便传一下,代码博客里都给了,可以去看博客,没放出来的就数据文件和没啥用的结果文件而已,数据文件可以自己处理,不是要这两个的话不建议下载。
C/C++宋词自动生成器.zip
遗传算法(Genetic Algorithm)是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法
通过全宋词训练RNN,随机生成宋词
能根据数据库生成N层
这是根据语言处理相关知识宋词自动生成系统和中文分词系统。 实现语言为java,编译器eclipse,系统平台windows,算法为基本nlp算法 代码和相应语料库Ci.txt、词性标注%40人民日报199801.txt都在主分支
通过试验,利用循环神经网络结合文本生成,提供一个开头,自动生成一篇宋词。而且,这篇新词绝对是原创。
首先,根据开始的词语,通过model.predict_classes(token_list)预测出下一个词语,接着开头词语连同预测词语两方再作为输入,继续预测下一个词语。如此类推,像贪吃蛇一样,从一个开头词语慢慢地引出一个长句子。...
中文分词/宋词生成/n-gram模型/全部java源代码,课程设计报告。全部源代码,详细注释。
基于机器学习的宋词风格识别.pdf
这不仅是一门技术,更是一种前沿的科学探索。 【实战项目与源码分享】 我们深入探讨了深度学习的基本原理、神经网络的应用、自然语言处理、语言模型、文本分类、信息检索等领域。更有深度学习、机器学习、自然语言...
使用多种机器学习算法对宋词的风格进行了分类研究,通过比较测试结果选择了较优算法和较优的参数配置。同时,对实验的结果进行了回溯分析,定量分析了哪些单字对宋词风格的判定起到更大的作用。这种分析方法可以推广...
自然语言处理/词频统计/宋词生成/段落生成/句子分词。基于n-gram模型的宋词生成,段落生成,以及现代汉语切分。有问题可以私信我,帮助讲解。
人工智能(Artificial Intelligence,简称AI)是一种前沿的计算机科学技术,其核心目标是通过模拟、延伸和拓展人类智能来构建智能机器与系统。它融合了计算机科学、数学、统计学、心理学、神经科学等多个学科的知识...
这个是我根据别人写的matlab版本改写而来,我看了下貌似没有用什么算法,不想其他论坛上说的用什么蚂蚁算法,...我也不清楚,反正这个不讲押韵,据说要求越多,算法越好写,总之不管了,我觉得这个生成的宋词也不错。
自然语言理解 宋词词频统计统计宋词的单字词,双字词等输出的是单字词和双字词的词典文件文件中包括相应的词和频度