讨论中文分词使用范围时,可通过​​黑盒​​和​​白盒​​两个方面去考虑。黑盒即分词的基础理论知识去考虑,而白盒就需要从实际的测试和相关评测去得出结论。


文章目录


      *注????:针对于分词的理论知识可以拓展到分句领域。*

      本文的目的是介绍一些分词的基础知识。

      分词类别

      中文分词根据实现原理和特点,主要分为以下2个类别:

      1 基于词典分词算法

      也称​​字符串匹配分词算法​​。该算法是按照一定的策略将待匹配的字符串和一个已建立好的“充分大的”词典中的词进行匹配,若找到某个词条,则说明匹配成功,识别了该词。常见的基于词典的分词算法分为以下几种:​​正向最大匹配法​​、​​逆向最大匹配法​​和​​双向匹配分词法​​等。

      基于词典的分词算法是应用最广泛、分词速度最快的。很长一段时间内研究者都在对基于字符串匹配方法进行优化,比如最大长度设定、字符串存储和查找方式以及对于词表的组织结构,比如采用TRIE索引树、哈希索引等。

      2 基于统计的机器学习算法

      这类目前常用的是算法是HMMCRFSVM、深度学习加粗样式等算法,比如stanfordHanlp分词工具是基于​​CRF算法​​。以CRF为例,基本思路是对汉字进行标注训练,不仅考虑了词语出现的频率,还考虑上下文,具备较好的学习能力,因此其对歧义词和未登录词的识别都具有良好的效果。

      Nianwen Xue在其论文​​《Combining Classifiers for Chinese Word Segmentation》​​中首次提出对每个字符进行标注,通过机器学习算法训练分类器进行分词,在论文《Chinese word segmentation as character tagging》中较为详细地阐述了基于字标注的分词法。

      常见的分词器都是使用​​机器学习算法和词典相结合,一方面能够提高分词准确率,另一方面能够改善领域适应性。​

      3 拓展

      随着深度学习的兴起,也出现了基于神经网络的分词器,例如有人员尝试使用双向​​LSTM+CRF​​实现分词器,其本质上是序列标注,所以有通用性,命名实体识别等都可以使用该模型,据报道其分词器字符准确率可高达97.5%。算法框架的思路与论文​​《Neural Architectures for Named Entity Recognition》​​类似,利用该框架可以实现中文分词,

      现存问题

      目前中文分词难点主要有三个:

      1、分词标准

      比如人名,在哈工大的标准中姓和名是分开的,但在Hanlp中是合在一起的。这需要根据不同的需求制定不同的分词标准。

      2、歧义

      对同一个待切分字符串存在多个分词结果。歧义又分为​​组合型歧义​​、​​交集型歧义​​和​​真歧义​​三种类型。

      1) 组合型歧义:分词是有不同的粒度的,指某个词条中的一部分也可以切分为一个独立的词条。比如“中华人民共和国”,粗粒度的分词就是“中华人民共和国”,细粒度的分词可能是“中华/人民/共和国”

      2) 交集型歧义: 在“郑州天和服装厂”中,“天和”是厂名,是一个专有词,“和服”也是一个词,它们共用了“和”字。

      3) 真歧义:本身的语法和语义都没有问题, 即便采用人工切分也会产生同样的歧义,只有通过上下文的语义环境才能给出正确的切分结果。

      例如:对于句子“美国会通过对台售武法案”,既可以切分成“美国/会/通过对台售武法案”,又可以切分成“美/国会/通过对台售武法案”。一般在搜索引擎中,构建索引时和查询时会使用不同的分词算法。常用的方案是,在索引的时候使用细粒度的分词以保证召回,在查询的时候使用粗粒度的分词以保证精度。

      3、新词

      也称未被词典收录的词,该问题的解决依赖于人们对分词技术和汉语语言结构的进一步认识。

      相关文章

      1,​​分词之正向最大匹配法​

      2,​​分词之逆向最大匹配法​

      参考文章

      1,​​竹间智能 Emotibot​