计算机自动创作灯谜

风雨空中雁阵斜 (字) 佩

以此谜为例。

如果我希望程序能够自动把“风雨空中雁阵斜”这个谜面作出来,需要具备哪些要素呢?

我们来分析一下。虽然前景似乎不太乐观。

这是一条好谜。谜面不是一句好诗,但没有一个闲字,意境的表达也通畅,好象这个字在出现时就已经注定存在了这个谜面,只是后来有人把它找出来了。“风”、“雨”作了“空中”的处理后变成了“几” “ 币”。雁阵斜好理解,作谜的人常常用“雁阵”来指代“人”这样的形状。而没有这个“斜”字,雁阵成了“ 亻”就显得有点奇怪了。

谜面完全是根据组成“佩”字的偏旁“ 亻几 币” 设计了一条成文的短句。

好,有了一点线索。假设,我们拥有的是非常贫乏的语言文化,形容“ 亻”的只可能是“斜雁阵”或者“雁阵斜”,形容“几 一 巾”的只能是“风雨空中”、“风雨中空”、“空中风雨”、“风雨无心”、“无心风雨”这几种里的一种。

我随意地组合一下,得到一条“斜雁阵无心风雨”。很明显,如果不去考究这个谜面的含义,它是成立的。问题在于,一条谜面必须是成文的。什么是“成文”?我们有没有办法知道一段文字是“成文”的还是“不成文”的呢?

文章写到这里中断,我离开去找资料,看到了相关的两篇好文章,其中第一篇比较通俗好懂。

http://www.matrix67.com/blog/archives/4212 漫话中文自动分词和语义识别(上):中文分词算法

http://www.matrix67.com/blog/archives/4870 漫话中文自动分词和语义识别(下):句法结构和语义结构

可是我们一上来就是一句诗歌一样的东西,使这个问题直接陷入了僵局。我感到希望渺茫。因为,程序判断“成文”与否与一个句子的分词和语义分析这类的技术相关,这个障碍本来是可以借助于一些研究成果得以克服的。但相比于日常表达和现代文章的语言表达,古文和诗歌的分词和语义研究恐怕更麻烦,更加没有现成的资源可用。

如此,先假设我们已经可以判断“成文”,把这个问题暂时搁在一边。您如果有好方法请不吝赐教。分词我找到过可用的控件,语义分析尚没有接触。

现在,可以料到“斜雁阵无心风雨”被电脑判为了不合格(我的电脑没有自信,开始出汗...)。“风雨中空斜雁阵”和“无心风雨斜雁阵”也一样,不合格。那么“空中风雨斜雁阵”呢?

“空中风雨斜雁阵”语法合理,应当通过电脑的评审,“空中”与“斜”这类状语和定语的前后置,作者想表达的意境可能不同,不会是考量标准。但是交给一个人去看这样一句诗句时,一定会吐槽其丑陋不堪。参考新近百度Big Talk上出现的信息,这个审美标准从理论上讲,计算机人工智能是可以学习的。但是对它的期待应当是在若干年之后而不是现实的(机器要是懂得了审美,那些美也就不再是美,只是证明人比机器愚蠢的证据之一了。因为,明年的流行色将是由机器来引领的。题外话。)。所以对于语法合格的N个计算机作品,仍然需要通过人脑,且最好是由行家来评定其是否是一条合理的谜面。我们可以在一定程度上接受这一点,比如,计算机给出的合格结果一共只有10条而不是1000条。

是时候回到问题的初始,我假定我们的语言文化非常贫乏。在这个给定条件的荒谬实验室里,计算机确实只能作出为数很少的几个作品。事实的情况是,“佩”这个字的几个部件很常见,单是一个“ 亻”,就有推心,唯心,偏旁,附中等等多种谜法表达。这还只是字形上增减的方法,象形(亻: 竹叶)会意用典等推理手法还没有包括。但由于“偏旁无心风雨”这样的谜面同样会被程序否掉,在谜法对应元素有限的前提之下,胜出的谜面数量可能仍然是可数的并且有成立的可能性。

根据上面讨论,要实现目的有三个要素:

1. 制谜手法的对应关系素材库

2. 能辨识中文语法,特别是能兼容古文诗词语法的控件

3. 有人来评定计算机出题的合理性

写到这里想到一件事。记得有人整理过汉字字形结构并形成了可以随时查询的数据库。比如上题你想到了谜底中“几”这个部件,就可以把带这个部件的所有字都找出来一个一个对照。曾有人担心从此猜谜有了工具,不再好玩了。这种担心是现实的,也会一直存在下去,百度让元宵节少了一点乐趣应该也是事实。本文旨在探讨,还没有动手实现它的意思,更无意打击原创家的积极性。但即使实现了又如何,灯谜也有它自身的发展规律,只要有需求,总会有更新鲜的花样被发明出来。也许这个东西还能弥补目前创作者不足的遗憾呢。

转载于:https://www.cnblogs.com/dfun/p/4293967.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值