基于统计的自动分词算法

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

概率最大统计分词算法

一、主要原理  

  对于任意一个语句,首先按语句中词组的出现顺序列出所有在语料库中出现过的词组;将上述词组集中的每一个词作为一个顶点,加上开始与结束顶点,按构成语句的顺序组织成有向图;再为有向图中每两个直接相连的顶点间的路径赋上权值,如 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=做/ 完/ 作业/ 才/ 能/ 看/ 电视/

 

 

 

posted on 2017-03-24 15:26  Denise_hzf  阅读(2331)  评论(0编辑  收藏  举报

导航