我正在寻找一种方式,在过去,现在和将来的时态中给出英语文本中的动词短语。现在我正在使用NLTK,做一个POS(词性标注)标记,然后计算'VBD'来计算过去的时态。虽然这还不够准确,所以我想我需要进一步去分块,然后分析VP块以获得特定的时态模式。有没有什么可以做到这一点?任何进一步的阅读可能有帮助? NLTK book主要关注NP块,我可以在VP块上找到很少的信息。使用NLTK检测英语动词时态
回答
您的确切答案取决于您打算使用哪个chunker,但列表解析会带来很长的路要走。这会让你知道使用不存在的chunker的动词短语的数量。
len([phrase for phrase in nltk.Chunker(sentence) if phrase[1] == 'VP'])
您可以采用更细粒度的方法来检测数字的时态。
感谢您的指针,这就是我将要使用的 - 我的下一个问题是是否有某种东西可以检测时态模式。对于每个VP,我想知道它是什么时候。 – 2010-08-09 10:55:05
我实际上设法解决了我的问题,因此将此标记为接受的答案。下面的文章真的很有帮助:http://streamhacker.com/2009/02/23/chunk-extraction-with-nltk/ – 2010-08-16 12:46:57
嗨迈克尔,很高兴听到事情对你来说很好! – 2010-08-17 00:04:59
您可以使用Berkeley Parser或Stanford Parser。但是我不知道是否有Python接口可用。
非常感谢,这可能是一个选项 - 但是由于我已经大量使用NLTK,因此可能需要进行相当多的切换。虽然会看。 – 2010-08-09 10:59:35
在NLTK中有一个Stanford Parser的界面。你可以按如下方式使用它:'tagger = nltk.tag.stanford.POSTagger('models/german-fast.tagger', 'stanford-postagger.jar')'你可能必须先将字符串编码为UTF-8 (至少对于德国模式)。 – 2013-03-21 16:44:26
伯克利上面拼写错误。我不能建议错误修复的答案。 – Streeter 2015-11-18 23:37:40
- 1. 用NLTK检查英语语法
- 2. NLTK和语言检测
- 3. NLP - 英语形态词典
- 4. 如何检查单词是日语或英语的使用PHP
- 5. python3检测unicode非英语?
- 6. nltk语义词替换
- 7. 检查单词是否是英语Python
- 8. 检测文本中的英文单词
- 9. NLP检测英语条件语句
- 10. 命名约定:动词/名词和英语语法使用指南
- 11. Python NLTK:使用有效的英文单词计算单词和概率列表
- 12. 在NLTK中解析英文语法
- 13. 在NLTK中使用英国国家语料库
- 14. 使用C++检测美式英语或英式英语拼写是否适用于C++
- 15. POS tagging - NLTK认为名词动词
- 16. 动词时态
- 17. 英语“停止词”列表?
- 18. 自然英语单词
- 19. 使用Lucene 6词干英语单词6
- 20. 使用python创建词典(英语词典)
- 21. 从训练语料库中提取名词短语时出错并使用NLTK删除停用词
- 22. 如何检查单词是日语还是英语?
- 23. 在线词典的英语单词MySQL
- 24. 英文动词inflector
- 25. 找到'现代'nltk单词语料库
- 26. 如何使用nltk来阻止西班牙语单词列表?
- 27. 如何使用NLTK找到形容词的语义取向?
- 28. 使用WordNet和NLTK替换语料库中的同义词 - python
- 29. 使用nltk从德语文本中提取单词
- 30. NLTK单词词性标注
你的逻辑存在缺陷。如果一个chunker可以检测到NP,那么它必须能够检测到VP。 – 2010-08-09 05:21:51
当然,但我最感兴趣的是进一步的VP分析 - 如何区分不同的时态。 – 2010-08-09 10:54:00