基于统计的自动分词算法
简介:利用字与字间、词与词间的同现频率作为分词的依据,不一定需要建立好的词典。需要大规模的训练文本用来训练模型参数。
优缺点:不受应用领域的限制;但训练文本的选择将影响分词结果。
概率最大统计分词算法
一、主要原理
对于任意一个语句,首先按语句中词组的出现顺序列出所有在语料库中出现过的词组;将上述词组集中的每一个词作为一个顶点,加上开始与结束顶点,按构成语句的顺序组织成有向图;再为有向图中每两个直接相连的顶点间的路径赋上权值,如 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) 编辑 收藏 举报