水平马氏化

Jos*_*ley 6 tree parsing nlp context-free-grammar

我必须实现水平标记(NLP概念),并且我在理解树的外观方面有点麻烦.我一直在阅读Klein和Manning的论文,但他们没有解释具有2阶或3阶水平标记的树会是什么样子.有人可以对算法有所了解吗?看起来树是什么样的?我对NLP比较陌生.

Foo*_*eth 11

所以,假设你有一堆平常规则,如:

NP 
    NNP
    NNP
    NNP
    NNP
Run Code Online (Sandbox Code Playgroud)

要么

VP
   V
   Det
   NP
Run Code Online (Sandbox Code Playgroud)

当您对这些进行二值化时,您希望保留上下文(即,这不仅仅是一个Det,而是一个Det作为VP的一部分跟随动词).要这样做,通常使用这样的注释:

NP 
    NNP
    NP->NNP
        NNP
        NP->NNP->NNP
            NNP
            NP->NNP->NNP->NNP
                NNP
Run Code Online (Sandbox Code Playgroud)

要么

VP
   V
   VP->V
       Det
       VP->V->Det
          NP
Run Code Online (Sandbox Code Playgroud)

需要对树进行二值化,但这些注释并不总是非常有意义.对于动词短语的例子,它们可能有些意义,但你真正关心的另一个是名词短语可以是一长串专有名词(例如"Peter B. Lewis Building"或"Hope Memorial Bridge Project"周年").因此,使用水平马尔图化,您将略微折叠一些注释,丢弃一些上下文.Markovization的顺序是您要保留的上下文量.因此,通过正常注释,您基本上处于无限顺序:选择保留所有上下文并且不进行任何折叠.

0阶意味着你要删除所有上下文,你得到的树没有花哨的注释,如下所示:

NP 
    NNP
    NNP
        NNP
        NNP
            NNP
            NNP
                NNP
Run Code Online (Sandbox Code Playgroud)

订单1意味着您只保留一个上下文术语,并且您得到这样的树:

NP 
    NNP
    NP->...NNP  **one term: NP->**
        NNP
        NP->...NNP  **one term: NP->**
            NNP
            NP->...NNP  **one term: NP->**
                NNP
Run Code Online (Sandbox Code Playgroud)

第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
Run Code Online (Sandbox Code Playgroud)