用于对名词短语进行分类的模型?

时间:2013-11-06 22:30:47

标签: machine-learning nlp hidden-markov-models

我需要一个模型来执行以下任务:

一系列单词,带有POS标签。我想判断这个单词序列是否是名词短语。

我能想到的一个模型是HMM。

对于那些是名词短语的序列,我们训练HMM(HMM +)。对于那些不是名词短语,我们尝试HMM(HMM-)。当我们对序列进行预测时,我们可以计算P(序列| HMM +)和P(序列| HMM-)。如果前者较大,我们认为这个短语是名词短语,否则不是。

你怎么看?你还有其他适合这个问题的模特吗?

3 个答案:

答案 0 :(得分:0)

据我所知,你已经拥有了一系列单词的POS标签。一旦有了单词序列的标签,就不需要使用HMM来分类序列是否为NP。您需要做的就是寻找以下形式的模式:

  1. 确定者后跟名词

  2. 形容词后跟名词

  3. 确定者后跟形容词后跟名词

  4. 正如刚刚提到的那样,HMM用于获取新词序列的POS标签。但为此你需要一个标记语料库来训练HMM。 NLTK软件中有一些标记语料库。

    如果您的序列已被标记,那么只需使用前一个答案中提到的语法规则。

答案 1 :(得分:0)

人们确实使用HMM标记POS标记句子中的名词短语,但典型的模型设置并不像你描述的那样有效。

相反,设置(请参阅Chunk tagger-statistical recognition of noun phrases (PDF)Named entity recognition using an HMM-based chunk tagger (PDF)示例)是使用具有三种状态的HMM:

  • O(不在NP中),
  • B(NP的开头),
  • 我(在NP中,但不是开头)。

句子中的每个单词将由HMM分配一个州。例如,句子:

  

/ DT boy / NN使用/ PP / DT red / ADJ bat / NN命中/ VT / DT球/ NN ./。

可能理想地标记如下:

  

/ DT B 男孩/ NN 击中/ VT O / DT B 球/ NN / PP O / DT B 红色/ ADJ bat / NN ./。的 0

这三个HMM状态之间的转换可以基于序列如何表现的先验知识来限制;特别是,您只能从B转换到I,但其他转换都可能具有非零概率。然后,您可以在未标记文本的语料库中使用Baum-Welch来训练您的HMM(以识别任何类型的块 - 请参阅Simple Unsupervised Grammar Induction from Raw Text with Cascaded Finite State Models (PDF)作为示例),或者使用某种最大似然法标记文本的语料库(如果你专门寻找名词短语)。

答案 2 :(得分:-1)

我的预感是HMM不是正确的型号。它可以用来猜测POS标签,通过基于先验概率和从一个令牌到下一个令牌的条件概率得出具有最高概率的标签序列。

对于完整的名词短语,我看不出这个模型是如何匹配的。

任何基于概率的方法都很难训练,因为名词短语可以包含许多标记。这使得真正的许多组合。要获得有用的训练概率,您需要非常大的训练集。

您可以通过遵循

中的描述,通过制定一套语法规则(例如正则表达式)来快速轻松地获得足够好的开始。

http://en.wikipedia.org/wiki/Noun_phrase#Components_of_noun_phrases

或任何其他对名词短语的语言描述。