赞
踩
最大概率分词中,认为每个词的概率都是独立的,但是有一部分词,其切分却与前一个词密切相关,特别是中文分词中更为明显,英文中就是如上一篇文章中的“tositdown”的例子。
这样就可以使用2元模型,就是如一个分割形式"ab cde f"的概率,
如果按照1-gram计算:P(ab cde f) = P(ab)*P(cde)*P(f)
如果按照2-gram计算:P(ab cde f) = P(ab|<s>)*P(cde|ab)P(f|cde)
基本的方法和最大概率分词差不多,就是计算片段概率的时候,需要知道选择的前驱节点的前驱节点位置,这样才能计算转移概率。具体如下图所示:
确定当前节点4的状态,就是根据几个概率累计值,取最大的,即可确定前驱节点和当前节点的累积概率
上代码(Python):
这样,itistst,仍然可以分成 it is a test
而前面分错的tositedown,则正确的分为to sit down
代码和字典见附件:http://pan.baidu.com/s/1bnw197L
但这样的分词显然还有一些问题,就是一个词是由前一个或者几个词决定的,这样可以去除一部分歧义问题,但是ngram模型还是基于马尔科夫模型的,其基本原理就是无后效性,就是后续的节点的状态不影响前面的状态,就是先前的分词形式一旦确定,无论后续跟的是什么词,都不会再有变化,这在现实中显然是不成立的。因此就有一些可以考虑到后续词的算法,如crf等方法,局可以参考相应的资料,这些算法,用几十行python代码一般很难写出来,因此,一般会使用具体的代码包来做。如crf++,http://crfpp.googlecode.com/svn/trunk/doc/index.html
等
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。