基于统计的自动分词算法

Posted Denise_hzf

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于统计的自动分词算法相关的知识,希望对你有一定的参考价值。

简介:利用字与字间、词与词间的同现频率作为分词的依据,不一定需要建立好的词典。需要大规模的训练文本用来训练模型参数。
优缺点:不受应用领域的限制;但训练文本的选择将影响分词结果。 


概率最大统计分词算法

一、主要原理  

对于任意一个语句,首先按语句中词组的出现顺序列出所有在语料库中出现过的词组;将上述词组集中的每一个词作为一个顶点,加上开始与结束顶点,按构成语句的顺序组织成有向图;再为有向图中每两个直接相连的顶点间的路径赋上权值,如 A→B,则 AB 间的路径权值为 B 的费用(若 B 为结束顶点,则权值为 0);此时原问题就转化成了单源最短路径问题,通过动态规划解出最优解即可。 


二、思路说明

 


1、获取候选词

 

  获取句子中可能出现的所有词作为候选词,但要满足下列条件:如果是长度大于 1 的词,则必须在词典中出现;如果是长度等于 1,即为单字,可以不在词典中出现。


2、构造前趋词


  假定字符串从左到右进行扫描,可以得到 w1,w2,…,wi-1,wi,….等若干候选词,如果 wi-1 的尾字根 wi 的首字邻接,就称 wi-1 为 wi 的前趋词。比如上面例中,候选词“有”就是候选词“意见”的前趋词,“意见”和“见”都是“分歧”的前趋词。字串最左边的词没有前趋词。 


3、寻找最佳前趋词


  如果某个候选词 wi 有若干个前趋词 wj,wk,…..等等,其中累计概率最大的候选词称为 wi 的最佳前趋词。比如候选词“意见”只有一个前趋词“有”,因此“有”同时也就是“意见”的最佳前趋词;候选词“分歧”有两个前趋词“意见”和“见”,其中“意见”的累计概率大于“见”累计概率,因此“意见”是“分歧”的最佳前趋词。

4、确定最优路径


  回溯,从字符串的尾部按照最佳前趋词的指引,向前搜索最优路径。


三、算法描述

 

 

① 对一个待分词的子串S,按照从左到右的顺序取出全部候选词w1,w2,…,wi,…,wn;②到词典中查出每个候选词的概率值 P(wi),并记录每个候选词的全部左邻词;③按照公式 1 计算每个候选词的累计概率,同时比较得到每个候选词的最佳左邻词;④如果当前词 wn 是字串 S 的尾词,且累计概率 P(wn)最大,则 wn 就是 S 的终点词;⑤从 wn 开始,按照从右到左顺序,依次将每个词的最佳左邻词输出,即 S 的分词结果。 



四、举例演示
①对“有意见分歧”,从左到右进行一遍扫描,得到全部候选词:“有”,“有意”,“意见”,“见”,“分歧”;
②对每个候选词,记录下它的概率值,并将累计概率赋初值为 0;
③顺次计算各个候选词的累计概率值,同时记录每个候选词的最佳左邻词;
  P’(有) =P(有),
  P’(有意) = P(有意) ,
  P’(意见) = P’(有) * P(意见) ,(“意见”的最佳左邻词为“有” )
  P’(见) = P’(有意) * P(见) , (“见”的最佳左邻词为“有意” )
  P’(意见) >P’(见)
“分歧”是尾词,“意见”是“分歧”的最佳左邻词,分词过程结束,输出结果:有/ 意见/ 分歧/ 


五、算法缺点


①最大概率分词法不能解决所有的交集型歧义问题:“这事的确定不下来”:
  W1=这/ 事/ 的确/ 定/ 不/ 下来/
  W2=这/ 事/ 的/ 确定/ 不/ 下来/
  P(W1)<P(W2)


②无法解决组合型歧义问题:“做完作业才能看电视”
  W1=做/ 完/ 作业/ 才能/ 看/ 电视/
  W2=做/ 完/ 作业/ 才/ 能/ 看/ 电视/

 

 

以上是关于基于统计的自动分词算法的主要内容,如果未能解决你的问题,请参考以下文章

中文分词算法

中文分词技术

达观数据告诉你机器如何理解语言——中文分词技术

中文分词(概况)

中文分词

中文分词原理