水平和垂直马氏体化

时间:2012-11-27 09:19:22

标签: python nlp context-free-grammar

我有一个句子以及树形式的语法。我需要从中训练一个概率上下文免费语法,以便我可以为它提供最好的解析。 我正在使用Viterbi CKY算法来获得最佳解析。 句子采用以下树形式: (TOP(S(NP(DT)(NN航班))(VP(MD应)(VP(VB be)(NP(NP(CD 11)(RB am))(NP(明天NN))))) )(PUNC。))

我已经建立了一个系统,它从Penn Treebank的ATIS部分学习了概率语法,现在可以为上述句子提供一个可能的解析输出。

我读到了水平和垂直马氏体化技术,它可以通过使用注释来帮助提高准确性。 我对他们的工作方式感到有点困惑。 有人可以指导我一些解释性的例子或说明它们如何工作以及它们如何影响准确性。

1 个答案:

答案 0 :(得分:3)

值得看看Klein和Manning撰写的这篇论文:

http://nlp.stanford.edu/~manning/papers/unlexicalized-parsing.pdf

垂直马尔科化是一种为给定规则提供上下文的技术。从上面的论文:

  

例如,主体NP扩展与对象NP扩展非常不同:主体NP比对象NP扩展为仅仅代词的可能性高8.7倍。具有主题和对象NP的单独符号允许捕获该变体并用于改进解析得分。捕获这种外部上下文的一种方法是使用父注释,如Johnson(1998)中所述。例如,具有S父母(如受试者)的NP将被标记为NPS,而具有VP父母(如对象)的NP将被标记为NPVP。

通过使用此附加父注释重写这些规则,我们将添加有关您正在重写的规则位置的信息,此附加信息可提供特定规则重写的更准确概率。

这个的实现非常简单。使用训练数据,从底部非终端开始(这些是重写到诸如DT,NNP,NN,VB等终端的规则)并附加^后跟其父非终端。在您的示例中,第一次重写将是NP ^ S,依此类推。继续向上直到你到达TOP(你不会重写)。在你的情况下,最后的重写将是S ^ TOP。剥离输出上的标记将为您提供最终的解析树。

至于水平马尔图化,请参阅此主题进行讨论: Horizontal Markovization