我必须实现水平马尔可夫化(NLP概念),并且在理解树的外观时遇到了一些麻烦。我一直在阅读Klein and Manning paper,但是它们没有解释具有2阶或3阶水平标记的树木的样子。有人可以对算法进行一些说明吗,应该使树看起来像什么?我对NLP比较陌生。

最佳答案

因此,假设您有一堆扁平规则,例如:

NP
    NNP
    NNP
    NNP
    NNP

或者
VP
   V
   Det
   NP

当您对这些内容进行二值化时,您想要保留上下文(即,这不仅是Det,而且特别是跟在动词之后的Det作为VP的一部分)。为此,通常使用如下注释:
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”周年纪念日”)。因此,使用水平马尔可夫化,您将稍微折叠一些注释,从而丢弃一些上下文。马尔可夫化的顺序是要保留的上下文量。因此,使用普通注解,您基本上处于无限顺序:选择保留所有上下文并且不折叠任何内容。

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

关于parsing - 水平马尔可夫化,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12884411/

10-13 00:05