【问题标题】:Detect English verb tenses using NLTK使用 NLTK 检测英语动词时态
【发布时间】:2010-08-08 11:31:14
【问题描述】:

我正在寻找一种方法,给定英文文本,计算过去、现在和将来时态中的动词短语。现在我使用NLTK,做一个POS(词性)标记,然后数说'VBD'来获得过去时态。不过这还不够准确,所以我想我需要更进一步并使用分块,然后分析 VP-chunks 的特定时态模式。有什么存在的吗?任何可能有帮助的进一步阅读? NLTK book 主要关注 NP-chunks,我可以找到很少的关于 VP-chunks 的信息。

【问题讨论】:

  • 你的逻辑有问题。如果分块器可以检测到 NP,那么它必须能够检测到 VP。
  • 当然,但我最感兴趣的是进一步的 VP 分析——如何区分不同的时态。

标签: python nlp nltk


【解决方案1】:

您的确切答案取决于您打算使用哪个分块器,但列表推导式会让您走很长一段路。这可以让您使用不存在的分块器获得动词短语的数量。

len([phrase for phrase in nltk.Chunker(sentence) if phrase[1] == 'VP'])

您可以采取更细粒度的方法来检测时态的数量。

【讨论】:

  • 感谢您的指点,这就是我要使用的 - 我的下一个问题是是否存在检测紧张模式的东西。对于每个 VP,我想知道它的时态。
  • 我实际上设法用这种方法解决了我的问题,因此将其标记为已接受的答案。下面这篇文章真的很有帮助:streamhacker.com/2009/02/23/chunk-extraction-with-nltk
  • 嗨,迈克尔,很高兴听到您的情况一切顺利!
【解决方案2】:

您可以使用Berkeley ParserStanford Parser 执行此操作。但我不知道是否有可用的 Python 接口。

【讨论】:

  • 非常感谢,这可能是一个选项 - 但是由于我已经大量使用 NLTK,因此切换可能需要做很多工作。不过会看。
  • NLTK 中有一个斯坦福解析器的接口。您可以按如下方式使用它:tagger = nltk.tag.stanford.POSTagger('models/german-fast.tagger', 'stanford-postagger.jar') 您可能必须先将字符串编码为 UTF-8(至少对于德国模型而言)。
猜你喜欢
  • 2019-07-01
  • 1970-01-01
  • 2023-03-06
  • 2018-11-03
  • 1970-01-01
  • 2015-05-19
  • 2020-08-05
  • 2011-03-12
  • 2015-02-15
相关资源
最近更新 更多