Python 试图从nltk中获取首字母缩略词
我比较新,正在学习python。我正试图写一个应用程序,将采取一个字的用户提供的,并提供一些替代的建议对这个字。似乎nltk拥有我所需要的大部分。我一直在看一些例子,并已能够使其工作如下:Python 试图从nltk中获取首字母缩略词,python,nltk,Python,Nltk,我比较新,正在学习python。我正试图写一个应用程序,将采取一个字的用户提供的,并提供一些替代的建议对这个字。似乎nltk拥有我所需要的大部分。我一直在看一些例子,并已能够使其工作如下: from nltk.corpus import wordnet as wn for lemma in wn.synset('car.n.01').lemmas: print lemma, lemma.count() 这个很好用。我发现的问题是,如果用户拼错或将单词复数,那么我会崩溃:
from nltk.corpus import wordnet as wn
for lemma in wn.synset('car.n.01').lemmas:
print lemma, lemma.count()
这个很好用。我发现的问题是,如果用户拼错或将单词复数,那么我会崩溃:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/nltk-2.0.1rc1-py2.6.egg/nltk/corpus/reader/wordnet.py", line 1035, in synset
raise WordNetError(message % (lemma, pos))
nltk.corpus.reader.wordnet.WordNetError: no lemma 'cars' with part of speech 'n'
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/usr/local/lib/python2.7/dist packages/nltk-2.0.1rc1-py2.6.egg/nltk/corpus/reader/wordnet.py”,第1035行,语法集中
引发WordNetError(消息%(引理,位置))
nltk.corpus.reader.wordnet.WordNetError:没有带词性“n”的引理“cars”
基于这个错误,它似乎找不到“cars”作为名词。有没有办法进行搜索以查看是否找到该词,或者有更好的方法来实现这一点 我认为你给Wordnet打电话的方式不对:
>>> wn.synsets('cars')
[Synset('car.n.01'), Synset('car.n.02'), Synset('car.n.03'),
Synset('car.n.04'), Synset('cable_car.n.01')]
现在:
至于拼写错误,我认为NLTK没有内置功能。您可以:
pyenchant
的库,它提供了对一些不错的C库(Myspell、Hunspell)的访问。在我看来,主要的问题是,对于拼写错误的单词,你没有得到很多不同的建议>>> # get one of the lemmas
>>> lemma = wn.synsets('cars')[0].lemmas[0]
>>> lemma
Lemma('car.n.01.car')
>>> dir(lemma)
[...'antonyms', 'attributes', 'causes', 'count',
'derivationally_related_forms', 'entailments', 'frame_ids'... 'name'...]
>>> lemma.name
'car'
对每个对象使用
dir
检查其属性,然后尝试:)我认为您调用Wordnet的方式不对:
>>> wn.synsets('cars')
[Synset('car.n.01'), Synset('car.n.02'), Synset('car.n.03'),
Synset('car.n.04'), Synset('cable_car.n.01')]
现在:
至于拼写错误,我认为NLTK没有内置功能。您可以:
pyenchant
的库,它提供了对一些不错的C库(Myspell、Hunspell)的访问。在我看来,主要的问题是,对于拼写错误的单词,你没有得到很多不同的建议>>> # get one of the lemmas
>>> lemma = wn.synsets('cars')[0].lemmas[0]
>>> lemma
Lemma('car.n.01.car')
>>> dir(lemma)
[...'antonyms', 'attributes', 'causes', 'count',
'derivationally_related_forms', 'entailments', 'frame_ids'... 'name'...]
>>> lemma.name
'car'
对每个对象使用
dir
检查其属性,然后尝试:)@thefourtheye-谢谢您再次回答了我的问题。现在我想问一下,是否有一种方法可以轻松地从car.n.01.auto等中提取单词?我一直在看这个。它如何处理诸如OCP(口服避孕药)或美国,或WHO(世界卫生组织)之类的首字母缩略词?谢谢你再次回答了我的问题。现在我想问一下,是否有一种方法可以轻松地从car.n.01.auto等中提取单词?我一直在看这个。它如何处理诸如OCP(口服避孕药)、美国或WHO(世界卫生组织)等首字母缩写词?