yangleader的个人博客分享 http://blog.sciencenet.cn/u/yangleader 教授,博士生导师,北邮信息安全中心主任

博文

把“百家姓”写活

已有 4654 次阅读 2013-2-11 15:20 |个人分类:机器文学 |系统分类:论文交流| office, center, namespace, xml, 百家姓

 

把“百家姓”写活

―――计算机写千字文的附属成果

杨义先

北京邮电大学信息安全中心主任

灵创团队带头人

 

摘要

一说起“百家姓”,大家马上就会想起那篇家喻户晓的韵文:“赵钱孙李,周吴郑王;冯陈楮卫,蒋沈韩杨;朱秦尤许,何吕施张;……”此文虽朗朗上口,但是,它却毫无内容情节可言!本文将以两个实际案例表明:可以重排“百家姓”中汉字,并将它们变成一篇完整的“故事”。当然,本文仅仅是我正研究且还未解决的“机器写千字文”附属成果

 

(一)春秋战国侯王们的致富故事(“百家姓”故事案例)

 

1.1100字案例:

 

韩、赵、郑、蔡、陈、吴、谭、邓、沈、薛、刘、徐、赖、罗、许、曾、陆、廖侯[]夏、周、秦、魏、唐、宋史;[]孔孟,[]萧何;常于江苏、吕梁、邱、邵郭(邹段),[]姜田,[]彭洪汪,[]姚丁,[]蒋贾,[]郝孙,[]崔尹,[]潘曹,严[程范]袁阎王,[]高朱叶林、胡杨、黄李;方[]白毛冯马、雷龙石钟、康牛、万张熊韦、金钱卢。

 

上段共100字,它们是由《2011年中国最新姓氏排名[1]》中的人数最多的前100个姓氏重新排列后形成的一个完整故事。其中为清晰起见,用方括号[X]表明该字(词)取其动词含义,现把上段的故事细细解释如下:“春秋战国时期部分国家(韩、赵、郑、蔡、陈、吴、谭、邓、沈、薛、刘、徐、赖、罗、许、曾、陆、廖)的诸侯们,杜撰历史(夏、周、秦、魏、唐、宋史),继承孔孟之道,拥戴萧何,经常在多地(江苏、吕梁、邱(邱县)、邵郭(邹段)(邵城的邹地段))施种生姜地,照顾洪水汹涌澎湃的大湖,辅导姚姓士兵,感谢蒋姓商人,庆贺郝家子孙,任命崔姓府尹,尊重潘姓总务长,严格按程序规范袁姓坏蛋(袁阎王),认真监管很高的红叶树木、胡杨树、黄李树;于是,便结余了诸如白毛快马、雷龙样的石头闹钟、健康的牛、上万张柔软的熊皮和金饭碗炊具等巨额财富”。

怎么样,这是一个具有历史穿越情节,且基本完整的故事吧!

 

1.2200字案例

 

若取《2011年中国最新姓氏排名[1]》中的人数最多的前200个姓氏(由于不能分割,复姓“欧阳”算做一个字),重新排列后,也可形成的一个完整故事如下(而且该故事的主题仍然是“春秋战国的诸侯强国致富故事,甚至好像更生动有趣”):

 

韩、赵、郑、蔡、陈、吴、谭、邓、沈、薛、徐、赖、罗、许、曾、陆、廖、陶、鲁、齐、黎、温、倪、邢、申、纪、甘、舒、单、卫、费侯[卜解]周易,俞[]孔孟,[戴向]萧何,[]项庄,霍[]刘季,[]简喻殷曲;[]夏、秦、魏、唐、宋史文;常于江苏、吕梁、邱、宁、祁、邬、阮岳、阳谷关、兰田、崔、潘、邵郭(邹路段),辛[]姜苗,毕[]焦芦柴柯,尤[]彭洪汪汤,耿[]姚丁,[]蒋贾,[]郝孙,[]覃尹,冉[]翟曹,[莫左]阎王,[程范]蒙党,颜[]裴童,聂[](欧阳)詹翁吉,[]蓝袁房、包车,[]游钱,[]凌樊,[]蒲滕,严[]高叶林、胡杨、黄梅李、葛柳、朱乔;方[]盛时华章,[]庞伍骆连符,[]白毛冯马、雷龙石钟、康牟牛、万张熊韦、金卢、饶鲍。

 

此例中仍然用方括号[X]表明该字(词)取其动词含义,用(欧阳)表明这个特别的不可分割的姓氏。现把此处的200字故事细细解释如下:“春秋战国时期部分国家(韩、赵、郑、蔡、陈、吴、谭、邓、沈、薛、徐、赖、罗、许、曾、陆、廖、陶、鲁、齐、黎、温、倪、邢、申、纪、甘、舒、单、卫、费)的诸侯国王们,用占卜解析周易,诚意继承孔孟之道,真心拥戴萧何,崇尚项庄,迅速安定刘邦,歌唱简单明捷的殷曲;杜撰历史文献(夏、秦、魏、唐、宋史文);经常在多地(江苏、吕梁、邱(邱县)、宁(南京)、祁(祁县)、邬(山西介休县)、阮岳(阮山)、阳谷关、兰田、崔(章丘县西北)、潘(荥阳县)、邵郭(邹路段))辛辛苦苦地施种生姜苗,彻底检查烧焦后的芦干和柴棍等,尤其认真管理洪水汹涌澎湃的泥塘,耿直地辅导姚姓士兵,感谢蒋姓商人,庆贺郝家子孙,任命覃姓府尹,徐徐地尊重翟姓总务长,从不冒犯阎王老爷,按程序规范相关党派(蒙党),笑容可掬地照顾裴姓小童,附耳向喜欢唠唠叨叨的欧阳大爷祝福吉祥,把袁家的房子和包车涂成蓝色,连闲钱也要珍惜,忧虑凌乱不堪的笼子,把蒲滕卷起来(放好),认真监管很高叶木林、胡杨树、黄梅李树、盘根错节的柳树、红色的乔木等;于是,便成就了盛时华章,司掌了庞大的骆驼连军队指挥兵符,结余了诸如白毛快马、雷龙样的石头闹钟、健康的小牛、上万张柔软的熊皮、金饭碗和众多的鲍鱼等巨额财富”

 

由于上面两例仅仅是我研究“机器写千字文”的附属成果,所以,我不打算在此花费时间把“百家姓”中前300姓氏(或更多的姓氏)编写成有故事的文章了。欢迎有兴趣的读者自己去重新排列吧,当然,我们不鼓励仅仅依靠人工去进行蛮力排列!

不过,今后一旦在“计算机写千字文”的算法研究方面有了突破,我将首先以“百家姓”为目标,把“百家姓”写活,毕竟百家姓中的姓氏是最普遍的千字文“字库”(当然,复姓被当做一个“字”来处理)。

 

(二)计算机写千字文初探

 

所谓“千字文”[2]是由常见汉字写成的文章,其最大特点是:每个汉字在文章中最多只能出现一次!

历史上,第一篇千字文是南朝梁武帝时期(502549年),员外散骑侍郎周兴嗣奉皇命从王羲之书法中选取1000个字,编纂成文。此文的开篇部分是:“天地玄黄,宇宙洪荒,日月盈昃,辰宿列张;寒来暑往,秋收冬藏,闰馀成岁, 律吕调阳;云腾致雨,露结为霜,金生丽水,玉出昆冈;….”。

实在佩服古人,不知道他们当初到底是怎么撰写出来的如此奇文!

但是,如果借助计算机,那么,千字文的创作,从理论上来说,是完全可行的(当然,目前就实际情况来说还非常困难,远未解决)。实际上,基本思路是[3]

第一步:从待用字库中遍历选出一些字(比如,上节中的“百家姓”中的姓氏),组成字串,然后,判断是否为“词”。若是“词”,那么,将此“词”放入一个“词库”,同时,将此“词”中的字,从原“字库”中删除;若不是“词”,那么,重新从“字库”中选取字串,重复上述过程,一直到“字库”中的字不再组成“词”为止。(这一步对计算机来说,很容易)

第二步:遍历排列“词库”中的“词”和“字库”中的“字”,并判断所形成的字串是否为“人话”[4]。若是“人话”,那么,将此句放入一个“句库”,同时,将此句中的字,从原“字库”中删除;若不是“人话”,那么,重新从“词库”和“字库”中选取元素串,重复上述过程,一直到“字库”中的字全部被用完为止。(如何判断某串字是否为“人话”是最关键和最困难的课题,目前还没有实质性的突破,不过,在一些特殊情况下,完成可能获得实用的结果)

第三步:在“字不重复出现”的条件下,将上述第二步中获得的“句子”进行遍历排列,并判断所获得的段落是否“人话”,如果是“人话”,那么,“千字文”便完成了,否则,再以乱序重复上述各步骤。(虽然,“判断一个段落是否为人话”比“判断一个句子是否为人话”更难,但是,如果字数不太多,那么,仅仅依靠人工,第三步的工作量也不会太大。而且,解决第三步的基础也是第二步的“人话判断”难题。)

当然,目前还不知道哪些“字库”能够被穷尽地写出相应的千字文,即,文章写完后,“字库”变空。不过,这不是关键问题,毕竟,实在不行,可把多余的“字”删除就是了。

实际上,本文第一节中的那两篇春秋战国王侯强国致富“百字文”就是按上述思路完成的,只不过是靠人工来判断是否是“人话”。相信,按照同样的思路和步骤,仅仅依靠人工,就可以把“百家姓[1]”中更多“姓氏库”重新排列成一篇有故事的文章(放弃音韵要求)。

 

(四)参考文献

[1] 2011年中国最新姓氏排名,http://www.douban.com/group/topic/22595209/

[2]百度百科,千字文简介,http://baike.baidu.com/view/23443.htm

[3]杨义先,技术文学初探(1),http://blog.sciencenet.cn/blog-453322-620434.html

[4]晋耀红著,HNC(概念层次网络)语言理解技术及其应用,科学出版社,20064月,第一版,北京,第1次印刷。

 



http://blog.sciencenet.cn/blog-453322-661161.html

上一篇:破解苏轼璇玑诗图
下一篇:棋盘格璇玑图研究

3 曹聪 武夷山 ddsers

该博文允许注册用户评论 请点击登录 评论 (1 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2020-9-25 06:46

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部