条件随机场和句法分析器
1.句法分析计算机算法的演变
a.基于规则的方法:
i.不断的使用规则将树的末端节点逐级向上合并,直到合并出根节点,即一整句;也可以自顶向下
ii.缺点:容错性较差,选择规则出错时需要回溯,算法复杂度很大
b.基于统计的方法:
i.让句子的语法树的概率最大
ii.括括号的做法:先对句子分词-->将词合并组成词组,用括号括起来,然后给每个括号一个句子成分,比如"美联储主席"是名词短语-->重复第二步,直到整个句子被大括号括起来
iii.没一个括号就是句子的一个成分,括号的嵌套为不同层面的句子成分的构成关系
vi.考虑三个为题:是否开始一个左括号、是否留在括号里、是否标上右括号
v.用统计模型P(A|prefix)来判断采取那个操作,前缀prefix为从句子开头到现在的所有词和语法成分,用最大熵模型实现,同时用一个统计模型来预测句子成分的种类
iv.准确性:统计模型的好坏、从prefix提取的特征的有效性
c.转变:
i.上述对于"非常规矩的句子"准确率在80%以上,但是随着互联网的兴起,大量不和规矩的句子出现,导致准确率下滑到50%下
ii.自然语言的处理中,不需做深入的分析,只需分析句中主要的词组以及他们间的关系,即语句的浅层分析上
iii.利用条件随机场,使浅层句法分析的准确率达到了95%
2.条件随机场:
a.因马尔科夫链:
i.模型图:
ii.在此模型中,以xi作为观测值序列,而yi表示隐含的状态序列,xi只和产生它的yi相关,和yi-1,yi+1都无关
b.(条件随机场)模型的改进:显然xi和yi-1、yi+1都相关
i.模型图:
ii.图中的y1,y2,...,yn的一个状态序列仍为马尔科夫链,顶点代表随机变量,顶点间的弧代表他们间的依赖关系,通常用概率分布P(x1,y1)描述,其特殊性在于变量间要遵守马尔科夫假设,即每个状态的转移只取决于相邻的状态,这一点和贝叶斯网络相同,不同之处在于条件随机场为无向图,而贝叶斯网络为有向图
iii.模型计算:
其节点分为状态节点集合Y和观察变量(输出)节点结合X,其量化模型就是这两个集合的联合概率分布模型P(X,Y)=P(x1,...,xn,y1,...,ym)
模型参数特别多,无法获得足够大的数据用大数定理来直接估计,只能通过它的一些边缘分布,如P(x1) P(x1,y3)等,找出一个满足所有边缘分布条件的概率分布函数,这样的函数可能会有很多,选取熵达到最大的模型,这个模型就是指数函数,每一个边缘分布对应于指数模型中的一个特征fi
如针对x1的边缘分布的特征fi(x1,...,xn,y1,...,ym)=fi(x1),表明这个特征只和x1相关;如果特征函数对应的观察变量为0,则表明特征函数对这些变量不起作用
将特征用到模型中得到P(x1,...,xn,y1,...,ym)=(e^(f1+...+fk))/Z
vi.P253页
3.Gparser:
a.模型:
在每一层的分析中,建立模型P(X,Y),X为句中的词w1,...,wn、词性pos1,pos2,...,posn、每一层语法成分的名称h1,...,hm,Y是操作(左括号、留在括号里、右括号),展开为
P(X,Y)=P(w1,...,wn,pos1,...,posn,h1,...,hm)
b.问题:
i.模型复杂,怎么训练
ii.各种组合是天文数字,任何组合可能都出现不了几次
c.解决方法:
i.把X拆成很多的子集,在每一个子集和操作间找到可靠的统计关系(化整为零)
ii.把统计量足够的统计关系做为一个限制条件,目标就是找到满足这些限制条件的最大熵模型