2

I'm trying to extract prepositional phrases from sentences using NLTK. Is there a way for me to do this automatically (e.g. feed a function a sentence and get back its prepositional phrases)?

The examples here seem to require that you start with a grammar before you can get a parse tree. Can I automatically get the grammar and use that to get the parse tree?

Obviously I could tag a sentence, pick out prepositions and the subsequent noun, but this is complicated when the prepositional complement is compound.

4

2 回答 2

2

你真正想做的是用一个健壮的统计解析器(例如斯坦福)完全解析你的句子,然后寻找标有 PP 的成分:

(ROOT
  (S
    (NP (NNP John))
    (VP (VBZ lives)
      (PP (IN in)
        (NP (DT a) (NN house)))
      (PP (IN by)
        (NP (DT the) (NN sea))))))

我不确定 NLTK 的解析能力以及如果存在此功能,解析的准确性如何,但从 Python 调用外部解析器然后处理输出并不是什么大问题。使用解析器将为您节省大量时间和精力(因为解析器会处理所有事情),并且是完成这项工作的唯一可靠方法。

于 2013-07-25T21:19:50.290 回答
1

我知道答案已经被接受,但是浅解析器将返回具有最小句法结构的 NLP 块。这种相当线性的结果可能更容易处理。这是 CLiPS 解析器的在线演示:http: //www.clips.ua.ac.be/cgi-bin/webdemo/MBSP-instant-webdemo.cgi

这是一个例子:

约翰把书给了玛丽

ClipPS 浅解析器结果

[PNP] 很容易提取。

于 2016-03-22T23:52:04.833 回答