当使用基于词典的中文分词方法进行中文信息处理时,不得不考虑未登录词
的处理。未登录词是指词典中没有登录过的人名、地名、机构名、译名及新词语
等。当采用匹配的办法来切分词语时,由于词典中没有登录这些词,会引起自动
切分词语的困难。常见的未登陆词有命名实体,如“张三”“北京”“联想集团”
“酒井法子”等;专业术语,如“贝叶斯算法”“模态”“万维网”;新词语,如
“卡拉 OK”“美刀”“啃老族”等。
另外,中文分词还存在切分歧义问题,如“当结合成分子时”这个句子可以
有以下切分方法:“当/结合/成分/子时”“当/结合/成/分子/时”“当/结/合
成/分子/时”“当/结/合成分/子时”等。
可以说,中文分词的关键问题为切分歧义的消解和未登录词的识别。
词典匹配是分词最为传统也最为常见的一种办法。匹配方式可以为正向(从
左到右)或逆向(从右到左)。对于匹配中遇到的多种分段可能性(Segmentation
Ambiguity),通常会选取数目最少的词分隔出来。
很明显,这种方式对词表的依赖很大,一旦出现词表中不存在的新词,算法
是无法做到正确切分的。但是词表匹配也有它的优势,比如简单易懂、不依赖训
练数据、易于纠错等。
还有一类方法是通过语料数据中的一些统计特征(如互信息量)去估计相邻
汉字之间的关联性,进而实现词的切分。这类方法不依赖词表,特别是在对生词
的发掘方面具有较强的灵活性,但是也经常会有精度方面的问题。
分词最常用的工作包是 jieba 分词包,jieba 分词是 Python 写成的一个分
词开源库,专门用于中文分词,其有 3 条基本原理,即实现所采用技术。
①基于 Trie 树结构实现高效的词图扫描,生成句子中汉字所有可能成词情
况所构成的有向无环图(DAG)。 jieba 分词自带了一个叫作 dict.txt 的词典,
里面有 2 万多条词,包含了词条出现的次数(这个次数是作者自己基于人民日报
语料等资源训练得出来的)和词性。Trie 树是有名的前缀树,若一个词语的前面
几个字一样,表示该词语具有相同的前缀,可以使用 Trie 树来存储,Trie 树存
储方式具有查找速度快的优势。后一句的“生成句子中汉字所有可能成词情况所
构成的有向无环图”意思是给定一个待切分的句子,生成一个如图所示的有向无
环图。
- 1
- 2
- 3
- 4
- 5
- 6
前往页