从NLP中的名词短语中提取名词

时间:2011-02-28 15:14:48

标签: python django nlp

有人可以告诉我如何从以下输出中仅提取名词:

我已经使用以下程序基于给定的语法对字符串“给我电影评论”进行了标记化和解析: -

sent=nltk.word_tokenize(msg)
parser=nltk.ChartParser(grammar)
trees=parser.nbest_parse(sent)
for tree in trees:
    print tree
tokens=find_all_NP(tree)
tokens1=nltk.word_tokenize(tokens[0])
print tokens1

并获得以下输出:

>>> 
(S
  (VP (V Give) (Det me))
  (NP (Det the) (N review) (PP (P of) (N movie))))
(S
  (VP (V Give) (Det me))
  (NP (Det the) (N review) (NP (PP (P of) (N movie)))))
['the', 'review', 'of', 'movie']
>>> 

现在我只想获得名词。我该怎么做?

1 个答案:

答案 0 :(得分:6)

您不需要使用完整的解析器来获取名词。您只需使用标记器即可。您可以使用的一个功能是nltk.tag.pos_tag()。这将返回带有单词和词性的元组列表。您将能够遍历元组并找到标有“NN”或“NNS”的单词,用于名词或复数名词。

NLTK有如何记录如何使用他们的标记器。它可以在这里找到:https://nltk.googlecode.com/svn/trunk/doc/howto/tag.html这里是NLTK书中关于使用标记的章节的链接:https://nltk.googlecode.com/svn/trunk/doc/book/ch05.html

每个地方都有很多代码示例。