【问题标题】:Extracting Prepositional Phrases from Sentence从句子中提取介词短语
【发布时间】:2013-07-25 17:13:14
【问题描述】:

我正在尝试使用 NLTK 从句子中提取介词短语。有没有办法让我自动做到这一点(例如,给一个函数一个句子并取回它的介词短语)?

示例here 似乎要求您先从语法开始,然后才能获得解析树。我可以自动获取语法并使用它来获取解析树吗?

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

【问题讨论】:

标签: python nlp nltk


【解决方案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 调用外部解析器然后处理输出并不是什么大问题。使用解析器将为您节省大量时间和精力(因为解析器会处理所有事情),并且是完成这项工作的唯一可靠方法。

【讨论】:

  • 显然,完整的解析是一种矫枉过正,但它会达到最终目标。我会试一试。看起来斯坦福解析器有at least one Python 接口。
  • 我不会说这是矫枉过正,而是必要的并发症。如果你尝试构建一个基于规则的 PP 识别器,你最终会花费大量的时间和精力来获得平庸的结果。
【解决方案2】:

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

这是一个例子:

约翰把书给了玛丽

[PNP] 很容易提取。

【讨论】:

  • 我针对多种类型的数据集对此进行了测试,似乎在提取 NP 和 PNP 方面表现更好 - 特别是对于生物医学文本。​​
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-13
  • 2019-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多