有没有办法找到专有名词使用NLTK WordNet的?IE浏览器。专有名词,可以使用NLTK WORDNET我标记物主名词?发现使用NLTK WordNet的
19
A
回答
37
我不认为你需要的WordNet找到专有名词,我建议使用部分的词性恶搞pos_tag
。
为了找到专有名词,寻找NNP
标签:
from nltk.tag import pos_tag
sentence = "Michael Jackson likes to eat at McDonalds"
tagged_sent = pos_tag(sentence.split())
# [('Michael', 'NNP'), ('Jackson', 'NNP'), ('likes', 'VBZ'), ('to', 'TO'), ('eat', 'VB'), ('at', 'IN'), ('McDonalds', 'NNP')]
propernouns = [word for word,pos in tagged_sent if pos == 'NNP']
# ['Michael','Jackson', 'McDonalds']
你可能不是因为Michael
和Jackson
非常满意被分成2个令牌,则可能需要更复杂的东西,如姓名实体标记器。
正如penntreebank
标记集记录的所有格名词所示,您可以简单地查找POS
标记http://www.mozart-oz.org/mogul/doc/lager/brill-tagger/penn.html。但是,当标记为NNP
时,标记不会标记POS
。
为了找到物主名词,寻找str.endswith( “的 ”)或str.endswith(“ S”“):
from nltk.tag import pos_tag
sentence = "Michael Jackson took Daniel Jackson's hamburger and Agnes' fries"
tagged_sent = pos_tag(sentence.split())
# [('Michael', 'NNP'), ('Jackson', 'NNP'), ('took', 'VBD'), ('Daniel', 'NNP'), ("Jackson's", 'NNP'), ('hamburger', 'NN'), ('and', 'CC'), ("Agnes'", 'NNP'), ('fries', 'NNS')]
possessives = [word for word in sentence if word.endswith("'s") or word.endswith("s'")]
# ["Jackson's", "Agnes'"]
或者,您可以使用NLTK ne_chunk
但它不“T似乎除非你是担心你这句话得到了什么样的专有名词做很多其他:
>>> from nltk.tree import Tree; from nltk.chunk import ne_chunk
>>> [chunk for chunk in ne_chunk(tagged_sent) if isinstance(chunk, Tree)]
[Tree('PERSON', [('Michael', 'NNP')]), Tree('PERSON', [('Jackson', 'NNP')]), Tree('PERSON', [('Daniel', 'NNP')])]
>>> [i[0] for i in list(chain(*[chunk.leaves() for chunk in ne_chunk(tagged_sent) if isinstance(chunk, Tree)]))]
['Michael', 'Jackson', 'Daniel']
使用ne_chunk
有点冗长,它不会让你的所有格。
1
我认为你需要的是一个标记器,一个词性标记器。此工具分配部分的词性标签(例如,专有名词,代词possesive等),以在一个句子中的每个单词。
NLTK包括一些标记者: http://nltk.org/book/ch05.html
另外还有Stanford Part-Of-Speech Tagger(开源太,更好的性能)。
相关问题
- 1. Python - WordNet NLTK KeyError
- 2. 导入共发现在NLTK
- 3. 使用wordnet确定hypernym或hyponym nltk
- 4. NLTK Wordnet下载过时的
- 5. 发现卦使用NLTK
- 6. NLTK Wordnet,错误排序(wn.langs())
- 7. 如何访问nltk/wordnet的Synset对象?
- 8. 如何在NLTK中使用西班牙文的Wordnet?
- 9. Python NLTK使用wordnet“进一步”的词形化
- 10. 如何打印Wordnet的全部内容(最好使用NLTK)?
- 11. 使用WordNet和NLTK替换语料库中的同义词 - python
- 12. NLTK分类和WordNet与文字Blob
- 13. Differnt Nltk,wordnet hypernym输出需要
- 14. 将语言添加到NLTK WordNet
- 15. 从NLTK WordNet中单独提取名词
- 16. NLTK WordNet错误,使用synsets查找单词
- 17. 使用nltk实现idf
- 18. nltk quadgram搭配发现者
- 19. 在NLTK compat,而使用BrowServer用于浏览NLTK WordNet的数据库词形还原
- 20. 使用Wordnet Gem - Wordnet :: Lexicon.new给出NameError
- 21. 在Xcode中使用NLTK
- 22. NLTK wordnet接口中的第0个同义词
- 23. Python:将变量传递到Wordnet在NLTK中的Synsets方法
- 24. 为什么NLTK WordNet无法找到简单的单词?
- 25. 如何获取NLTK中synset的wordnet感知频率?
- 26. 运行在WAMP上访问nltk wordnet的python脚本
- 27. 如何将NLTK默认的wordnet语言更改为zsm?
- 28. 转化共发现TXT成蟒蛇NLTK名单
- 29. 如何使用Python NLTK在WordNet同义词集中打印出单词本身?
- 30. 使用nltk令牌化Unicode使用nltk
感谢您对这个解决方案,我实现了它作为控制台脚本去年十一月 - https://github.com/dereckson/extract-proper-nouns - 并成功导入正确的名称列表,从一本小说。 – Dereckson
高兴回答帮助,我们很高兴地看到你有其他人谁是试图执行相同任务的一个现成的解决方案=) – alvas
是否可以使用NLTK从一些_unstructured_文字像一个日志文件,其中适当提取专有名词名词与**混合使用**并且文本**不完全符合语法正确**?谢谢 – user2436428