【逆天的算法】这几首宋词,你能看出来是出自计算机之手吗?

先来看看下面的几首宋词:

宋词一:
西江月
饮酒开怀酣畅,洞箫笑语尊前。欲看尽岁岁年年,悠然轻云一片。
赏美景开新酿,人生堪笑欢颜。故人何处向天边,醉里时光渐渐。

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

宋词三:
佳人 点绛唇
人静风清,兰心蕙性盼如许.夜寒疏雨,临水闻娇语.
佳人多情,千里独回首.别离后,泪痕衣袖,惜梦回依旧.


第一感觉是不是在想这是哪位大家的手笔,如果告诉你这是由遗传算法自动生成的,你会不会对之前的上过的语文课有些许感慨。你觉得计算机的作诗能力如何呢?


什么是遗传算法?


遗传算法指的是迷你达尔文生物进化论自然选择,以及遗传学机理生物进化的过程的一种计算模型。

有人说遗传算法很少用,实际上,在很多地方,遗传算法都有很有趣的应用。这不,有人就把遗传算法用在宋词中。分享者称是用在NLG(自然语言生成)技术中的。

自动生成宋词的遗传算法


生成宋词的算法是来自厦门大学和浙江大学的三位学者,主要针对宋词这种特殊的汉语诗歌体裁,设计了其自动生成算法及其实现方法。

根据宋词特点设计了基于平仄的编码方式,将“平、仄”与“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 个方面。计算词义相关的目的是建立词语间的关联,发掘词语共现和搭配的可能,从而保证生成诗词行文和主题上的连贯。


下面是该算法的论文,感兴趣的可以读一读。

82a2d3ac21de117203d8b611005e13d64c5deacd a6259865e8914838ba3d4cb2770866d0154ee523 ba3198e788a3aba6b4f31df353e9ca164690d435 4b69ff913d8b9e7d37623d569b979d617ec4c606 6aa740875cfb7e9f92ea7c17b43e89ceaff6263e 8ccebc13c98e45bf0ca6ea9fa6474fb6860d1649 c0639493bf62625ee84ea112992b81e1f2b63947 f6d21e1046d0a6467db3b82f139de99d144e6fef 1f9994cb8177f5fb84ad4e5505ef1825fdfcd872

Via W3Cschool
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值