从句子中提取介词短语

时间:2013-07-25 17:13:15

标签: python nlp nltk

我正在尝试使用NLTK从句子中提取介词短语。有没有办法让我自动执行此操作(例如,将函数输入一个句子并取回其介词短语)?

示例here似乎要求您在获得解析树之前先使用语法。我可以自动获取语法并使用它来获取解析树吗?

显然我可以标记一个句子,挑出介词和随后的名词,但是当介词补语是复合时,这很复杂。

2 个答案:

答案 0 :(得分:1)

你真正想要的是用一个强大的统计解析器(比如斯坦福)完全解析你的句子,然后寻找标有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调用外部解析器然后处理输出并不是什么大问题。使用解析器可以节省大量的时间和精力(因为解析器可以处理所有事情),并且是完成这项工作的唯一可靠方法。

答案 1 :(得分:1)

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

以下是一个例子:

John将这本书交给了Mary

CliPS shallow parser result

[PNP]易于提取。