中文分词实战与文言文分词的初步设想
接着帖子《中文分词整理》讲开来,上回说我比较中意的pymmseg和coreseek —— pymmseg基于python,短小精悍,功能强大,适合扩展应用和初学使用;coreseek是将中文分词和sphinx全文检索结合,适合同中型网站结合使用(比如说去搜索整个台湾中研院的网站,或者是百度国学)。
可以到github上下载pymmseg,然后直接解压到site-package目录里即可。以下是使用该库的基本代码:
# coding= utf-8 from pymmseg import mmseg mmseg.dict_load_defaults() text = "... ..." para = '' algor = mmseg.Algorithm(text) for tok in algor: print '%s [%d .. %d]' % (tok.text, tok.start, tok.end) para += tok.text + ' ' print para
需要注意的是,pymmseg现在只支持utf-8,如果要对基于gbk或big5的中文文章进行分词,需要首先进行字符集的转换。经过测试,我发现pymmseg对白话文的分词,效果还是不错的,如下所示,
原文:
2003年,余英时先生的《朱熹的历史世界》在台北的允晨出版公司出版,第二年,大陆的三联书店也出版了简体字本。至今我还记得,在这部书还没有正式出版时,因为《绪说》部分曾在台湾的《当代》杂志上连载,经由互联网的传播,就已经有部分内容在大陆流传,仅就我所知,在北京大学、清华大学的朋友中,就已经有了热烈的议论。在这部书正式出版之后,更引起了两岸三地,以及北美学界的讨论,出现了不少分量很重的评论 。所以,我在一篇书评中说,在学术社群越来越缺少共同话题,研究取向逐渐多元化的时代,能够成为海内外中国研究领域共同关注焦点的话题并不太多,而这部著作能有这么多反响与争论,真是非常值得高兴的事情。
分词结果:
2003 年 , 余 英 时 先生 的 《 朱熹 的 历 史 世界 》 在 台 北的 允 晨 出版 公司 出版 , 第二年 , 大 陆 的 三 联 书 店 也 出版 了 简 体 字 本 。 至今 我 还 记 得 , 在 这 部 书 还 没 有 正式 出版 时 , 因 为 《 绪 说 》 部分 曾在 台 湾 的 《 当 代 》 杂 志 上 连 载 , 经 由 互 联 网 的 传 播 , 就 已 经 有 部分 内 容 在 大 陆 流 传 , 仅 就我 所知 , 在 北京 大 学 、 清 华 大 学 的 朋友 中 , 就 已 经 有了 热 烈 的 议 论 。 在 这 部 书 正式 出版 之 后 , 更 引起 了 两 岸 三地 , 以及 北美 学 界 的 讨 论 , 出 现 了 不少 分量 很重 的 评 论 。 所以 , 我 在 一篇 书 评 中 说 , 在 学 术 社群 越 来 越 缺少 共同 话 题 , 研究 取向 逐 渐 多元化 的 时 代 , 能 够 成 为 海 内 外 中 国 研究 领 域 共同 关 注 焦 点 的 话 题 并 不 太多 , 而 这 部 著作 能有 这 么 多 反 响 与 争 论 , 真是 非常 值得 高 兴 的 事情 。
大体上看,效果还不错,但是我们也发现“余英时”并未被分解出,但“朱熹”被识别了。所以为了让pymmseg同样可以识别“余英时”,需要在word.dic里面加入”余英时”这个人名。所以对于mmseg这种基于辞典分词法的分词机,只要加入专业词汇(当然包括人名、地名。)就可以将其分解出。比如说,如果要对《水经注》进行分词,给word.dic里面加入古代地名是相当必要的。
于是乎,我拿来一段古文,来自《近思录》卷三(格物穷理)中的一节进行试验,
原文:
伊川先生答朱长文书曰:心通乎道,然后能辨是非,如持权衡以较轻重,孟子所谓知言是也。心不通于道,而较古人之是非,犹不持权衡而酌轻重,竭其目力,劳其心智,虽使时中,亦古人所谓“亿则屡中”,君子不贵也。
分词结果:
伊 川 先生 答 朱 长 文 书 曰 : 心 通 乎 道 , 然 后 能辨 是非 , 如 持 权 衡 以 较 轻 重 , 孟子 所 谓 知 言 是 也 。 心 不通 于 道 , 而 较 古人 之 是非 , 犹 不 持 权 衡 而 酌 轻 重 , 竭 其 目力 , 劳 其 心智 , 虽 使 时 中 , 亦 古人 所 谓 “ 亿 则 屡 中 ” , 君子 不 贵 也。
可以看到,只有“先生”、“能辨”、“孟子”、“不通”、“古人”、“是非”、“君子”几个词被分解出,同时虚词也被分出,但是比如“伊川”、“轻重”等词并没有被识别。针对这种情况,当然了,如果在word.dic里面加入相关词汇,则分词机也是可以识别“伊川先生”等些特定词汇。
总体而言,如果要使用辞典法对文言文进行分词,我觉得需要注意以下几个问题:
- 1) 字符集问题,请使用utf-8,如果不是,请先进行字符集转换。
- 2)将古人常用的词汇加入字典。这里就有一个tricky的地方,所谓古人,每个历史时期都有其习惯使用的词汇,所以我们需要对每个时期单独配套字典,同时针对不同的专业书籍,可能也要配套专门的字典。但凡搞分词的同僚们大概都知道“没有最好的分词机,只有最适合的分词机。”这句话,所以如果要达到最好的分词结果,可能需要针对不同的情况使用不同的分词机。
- 3)对于我的应用而言,我希望通过分词,了解到古代人物之间的关系,这些联系是什么样的关系呢?比如吕祖谦给朱熹的儿子介绍对象,这就是一种关系,朱熹给张栻写墓志铭,而没有给陈亮写,这也是一种关系。也就是说,要通过分词,了解到古人的社会网络关系(婚姻关系、君臣关系、买卖关系等等),以此,自动化的建立一个社会网络(social network)并赋予网络节点他们的关系情况。
- 4)展开来想,由于CHGIS已经提供了地名、人名的坐标信息,所以我们可以对查找出的地名和人名进行匹配,这样可以很容易的查询到相关信息的地理坐标。
大概先说这么多吧,以后有了新的想法,再和大家交流。
No related posts.
About this entry
You’re currently reading “中文分词实战与文言文分词的初步设想,” an entry on Geoinformatics
- Published:
- 10.4.09 / 3上午
Ajax ArcGIS Dreams Flex Geography Geoinformatics GeoRSS GIS Google Hardware Harvard History Jquery Linux Love Map MapServer NASA OGC OpenGIS OSGeo PHP Politics PostGIS PostgreSQL Python R Social Network SVG Ubuntu Web WebGIS Wordpress 中国 历史地理 宋朝 开源 新儒学 生活 遥感
WP Cumulus Flash tag cloud by Roy Tanck and Luke Morton requires Flash Player 9 or better.














赵 博 (Bo Zhao),
参与或主持的项目
10 Comments
Jump to comment form | comments rss [?] | trackback uri [?]