首页 > 代码库 > 2-gram分词
2-gram分词
和前一篇介绍的最大概率分词比较,2-gram分词也是一种最大概率分词,只不过在计算一个词概率的时候,它不光考虑自己,还会考虑它的前驱。
我们需要两个字典。第一个字典记录词\(w_i\)出现的频次,第二个字典记录词对儿<\(w_j,w_i\)>共同出现的频次。有这两份字典,我们就可以计算出条件概率\(p(w_i|w_j)=p(w_i,w_j)/p(w_j)\)。
为了直观表示计算过程,我们还是构建出一个图出来。跟上一篇不同,这里换个方向,我们考虑结束字,而不是开始字,因为是后面的词依赖前面的词。
这里必须说明一个问题。n-gram是基于HMM的,它假定后面的状态不会影响前面的状态,因此当前面部分的分词已经分完之后,它就不在受后面词的影响了。当然,现实情况中不是这样个样子的,比如abcd中的abc不考虑d的最好分词是a/bc,如果考虑了d就可能是a/bc了。为了简单,这里先不做考虑。
那么,假设\(\alpha_i\)是以i结尾的最优分词的累计概率,j是i的邻接点,容易得到\(\alpha_i=max_jp(w(j,i)|w(?,j-1))*\alpha_{j-1}\).这里w(?,j-1)是以j-1结束的分词结果中的最后一个词。
可以看出这也是个动态规划问题,基本形式和上一篇最大概率分词区别不大。
具体的代码可以去
http://blog.csdn.net/wangliang_f/article/details/17532633
2-gram分词
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。