中文分词
中文分词主要有三种技术,分别为:
基于统计的分词模型其主要思想是把每个词看作是由词的最小单位的各个字组成的,如果相连的字在不同的文本中出现的次数越多,就证明这相连的字很可能就是一个词。
其一般分为两步:
语言模型中常用的为n元模型,所谓n元模型就是在估算条件概率时,忽略距离大于等于n的上文此的影响,其概率计算公式如下:
一般使用频率计数的比例来计算n元条件概率
当n越大时,模型包含的词序信息越丰富,同时计算量随之增大。与此同时,长度越长的文本序列出现的次数也会减少。同时为避免出现分母为零的情况,一般在n元模型中与要配合相应得平滑算法来解决这个问题,例如拉普拉斯平滑等
隐含马尔可夫模型是将分词作字在字串中得序列标注任务来实现的,其基本思路是:每个字在构造一个特定的词语时都占据着一个确定的构词位置。
用数学抽象表示如下: 用 代表输入的句子,n为句子长度, 代表输出的标签,理想输出为:
我么们假设每个字的输出仅仅与当前字有关,就可以得到:
通过贝叶斯公式我们可以把最大化 转化为最大化
针对 作马尔可夫假设,得到:
对 有:
作齐次马尔可夫假设的计算公式如下(这个公示表示,每个输出仅仅与上一个输出有关):
于是得到:
~
在HMM中,求解 的常用方法是Veterbi算法,这个算法的核心思想是: 如果最终的最优化路径经过某个 ,那么从初始节点到 点的路径必然也是一个最优路径。
最常用的就是先基于词典的方式进行分词,然后再用统计分词方法进行辅助。
jieba分词结合了基于规则和基于统计这两类方法。
jieba提供了三种分词模式:
除了可以进行分词外,还可以进行词性标注。
下面是各种分词工具比较:
图片 来自
还有 NLPIR汉语分词系统 ,主要功能包括中文分词;英文分词;词性标注;命名实体识别;新词识别;关键词提取;支持用户专业词典与微博分析。NLPIR系统支持多种编码、多种操作系统、多种开发语言与平台