我必须实现水平标记化(NLP 概念),我在理解树的样子时遇到了一些麻烦。我一直在阅读Klein 和 Manning 的论文,但他们没有解释具有 2 阶或 3 阶水平标记化的树会是什么样子。有人可以阐明算法以及树应该是什么样子吗?我对 NLP 比较陌生。
2 回答
所以,假设你有一堆扁平的规则,比如:
NP
NNP
NNP
NNP
NNP
或者
VP
V
Det
NP
当您对这些进行二值化时,您希望保留上下文(即,这不仅仅是一个 Det,而是一个作为 VP 一部分的 Verb 之后的 Det)。为此,您通常使用如下注释:
NP
NNP
NP->NNP
NNP
NP->NNP->NNP
NNP
NP->NNP->NNP->NNP
NNP
或者
VP
V
VP->V
Det
VP->V->Det
NP
您需要对树进行二值化,但这些注释并不总是很有意义。它们对于动词短语的例子可能有些意义,但你真正关心的只是名词短语可以是相当长的专有名词串(例如“Peter B. Lewis Building”或“Hope Memorial Bridge Project”周年纪念日”)。因此,使用水平马尔可夫化,您将稍微折叠一些注释,丢弃一些上下文。Markovization 的顺序是您要保留的上下文的数量。因此,使用普通注释,您基本上处于无限顺序:选择保留所有上下文并且不折叠任何内容。
Order 0 意味着你将删除所有的上下文,你会得到一棵没有花哨注释的树,如下所示:
NP
NNP
NNP
NNP
NNP
NNP
NNP
NNP
订单 1 意味着您将只保留一个上下文术语,并且您会得到这样的树:
NP
NNP
NP->...NNP **one term: NP->**
NNP
NP->...NNP **one term: NP->**
NNP
NP->...NNP **one term: NP->**
NNP
订单 2 意味着您将保留两个上下文术语,并且您会得到这样的树:
NP
NNP
NP->NNP **two terms: NP->NNP**
NNP
NP->NNP->...NNP **two terms: NP->NNP->**
NNP
NP->NNP->...NNP **two terms: NP->NNP->**
NNP
我相信这个想法是在估计规则概率时考虑垂直标记的父节点和水平的兄弟节点,并且顺序表明其中包括了多少。这里有一张很好的父注释图片。
另外,引用http://www.timothytliu.com/files/NLPAssignment5.pdf:
为了接近词汇化,更多的信息被添加到每棵树的父节点上。这可以正确区分不同的附件以及是否向左分支或向右分支。水平马尔可夫化是通过在树被二值化时跟踪兄弟姐妹来完成的。垂直马尔可夫化是通过跟踪树中节点的父节点来完成的。这些创建了新的依赖关系,因为现在规则是深度和广度的组合。