我正在尝试使用NLTK从句子中提取介词短语。有没有办法让我自动执行此操作(例如,将函数输入一个句子并取回其介词短语)?
示例here似乎要求您在获得解析树之前先使用语法。我可以自动获取语法并使用它来获取解析树吗?
显然我可以标记一个句子,挑出介词和随后的名词,但是当介词补语是复合时,这很复杂。
答案 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
[PNP]易于提取。