自然语言处理笔记week5

week5课程内容

一、Probabilistic CFGs 概率化CFG

1. Statistical Parsing

引入 Statistical Parsing(统计句法分析)是为了:

  1. 解决句法的歧义性(syntactic ambiguity)
  2. 尽可能接近人工句法分析的结果,而人工进行的句法分析是有概率因素在里面的
2. Probabilistic CFGs

(1)整体结构包括:

  1. 一个概率化模型——用来得到一颗剖析树的概率
  2. 训练得到模型中的概率参数
  3. 使用模型进行句法分析——取概率最大的剖析树

(2)概率化模型(Probability Model)
其实就是在原先 CFG 的基础上,给每条语法规则确定一个概率。例如:

RULEProbability
VP->VERBP=0.55
VP->VERB NPP=0.40
VP->VERB NP NPP=0.05

表示某条规则的概率时,写成:P(VP->VERB | VP)=0.55.
而一颗剖析树的概率,则是等于其中所有节点规则的概率乘积:
P ( T , S ) = ∏ n o d e ∈ T P ( r u l e ( n o d e ) ) P(T,S)=\prod_{node\in T}P(rule(node)) P(T,S)=nodeTP(rule(node))
使用 PCFGs,我们还可以得到一句话出现的概率,即所有可能对应的剖析树的概率之和:
P ( S ) = ∑ T P ( T , S ) P(S)=\sum_T P(T,S) P(S)=TP(T,S)
因此在某些情况下,PCFGs 也能起到语言模型的作用,至少在求 P(S) 这件事上。
(3)如何得到上述概率化模型中的各个规则对应的概率?

  1. 假如我们有树图语料库treebank,可以计数得到概率:
    P ( α → β ∣ α ) = c o u n t ( α → β ) c o u n t ( α ) P(\alpha \rightarrow \beta|\alpha)=\frac{count(\alpha \rightarrow \beta)}{count(\alpha)} P(αβα)=count(α)count(αβ)
  2. 如果没有树图语料库,可以先捏造一组概率,对 corpus 进行剖析得到一个treebank,再按照上面计数。而概率后续会有某些手段调整。

(4)Prob CKY。用概率化模型进行句法分析的算法。
在这里插入图片描述

(5)PCFGs存在的问题:

  1. Doesn’t take into account where in the derivation a rule is used (structural issue):
    PCFGs 通常只考虑规则被使用的频率,而不考虑规则在推导过程中的具体位置或上下文。这意味着,即使两个句子在结构上非常不同,但只要它们包含相同的词汇和短语,PCFGs 可能会为它们分配相似的概率。这可能导致对句子结构的理解不够精确,因为它没有捕捉到句法结构中的层次和嵌套关系。
  2. Doesn’t use the words in any real way:
    PCFGs 主要基于句法结构进行建模,而较少考虑词汇之间的语义关系或词汇本身的含义。虽然 PCFGs 可以为词汇分配概率,但这些概率通常是基于它们在训练语料库中的频率,而不是基于词汇之间的深层语义关系。
  3. Doesn’t really work:
    实际性能表现不佳。

二、Structural Dependencies结构依赖关系

位置对于概率的影响,PCFGs 无法捕捉到。
一种改进方法:
父节点标注:为了添加更多的上下文信息,可以将原始的非终结符拆分为多个具有不同标注的新非终结符。比如:表示主语的NP(名词短语),现在将它重新标注为NP^S,表示它的父节点是句子。再比如,宾语名词短语(NP)的父节点是动词(V),所以它被重新标注为NP^V。这样做虽然使Grammer更复杂,但确实性能更好了。

单词本身的语义信息也应该利用起来,方法是添加语义依赖到架构里:
例如:对于短语:dumped sacks into a bin
原本我们有:VP->V NP PP 和 P(rule|VP)
现在是:VP(dumped)->V(dumped) NP(sacks) PP(into) 和 P(rule|VP),括号里的是该短语的中心词(head)。对应概率:
P(r|VP , dumped is the head of verb ,sacks is the head of the NP , into is the head of the PP)
这种表示得到的概率可想而知,很稀疏。于是改进成为:
P ( r ∣ V P ) = P ( r ∣ V P ∧ d u m p e d ) = c o u n t ( 含有 d u m p e d 的 V P 且使用该规则 ) c o u n t ( 含有 d u m p e d 的 V P ) P(r|VP)=P(r|VP ^{\wedge} dumped) = \frac{count(含有dumped的VP且使用该规则)}{count(含有dumped的VP)} P(rVP)=P(rVPdumped)=count(含有dumpedVP)count(含有dumpedVP且使用该规则)

概念:affinity亲进度:
Ate spaghetti with gusto 带着兴致地吃面
Ate spaghetti with marinara 混着番茄酱吃面
显然,gusto和ate的亲近度更高,而marinara和spaghetti亲进度更高。

三、Parser Evaluation

对剖析结果进行评价。

  1. Constituent-level evaluation成分层面的评估:
    (1)recall召回率:
    r e c a l l = 找到的正确节点数 树库里的树的总节点数 recall=\frac{找到的正确节点数}{树库里的树的总节点数} recall=树库里的树的总节点数找到的正确节点数
    在候选的句法分析树中,一个正确的节点是那些与Treebank中的节点具有相同标签且覆盖相同单词序列的节点。
    (2)precision准确率:
    p r e c i s i o n = 找到的正确节点数 候选的句法分析树的总节点数 precision=\frac{找到的正确节点数}{候选的句法分析树的总节点数} precision=候选的句法分析树的总节点数找到的正确节点数
    例子:在这里插入图片描述

  2. Cross brackets交叉括号
    括号交叉(bracket crossing)是指候选解析中的某个括号结构与Treebank中的括号结构在层次上不一致,导致它们相互交叉。例如:
    Treebank中的结构是 ((X Y) Z),这表示X和Y首先组合成一个更大的结构,然后再与Z组合。
    候选解析中的结构是 (X (Y Z)),这表示Y和Z首先组合成一个结构,然后与X组合,这与Treebank的结构不一致。
    在这种情况下,我们说候选解析中的括号与Treebank中的括号发生了交叉。括号交叉越少,通常表明候选解析与标准解析在结构上的相似性越高。

–> 自然语言处理笔记6

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值