虽然我希望使用pos_tag函数收集POS标签,但会发生以下错误.i包括nltk所需的所有包。 nltk版本是3.3并在conda环境中运行。 python版本是3.6。每个nltk软件包都是使用nltk下载功能下载的,但每次运行pos_tag函数时都会抛出以下错误。
>>> from nltk import pos_tag, word_tokenize
>>> pos_tag(word_tokenize("John's big idea isn't all that bad."))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\User\Anaconda3\envs\sow\lib\site-packages\nltk\tag\__init__.py", line 133, in pos_tag
tagger = _get_tagger(lang)
File "C:\Users\User\Anaconda3\envs\sow\lib\site-packages\nltk\tag\__init__.py", line 97, in _get_tagger
tagger = PerceptronTagger()
File "C:\Users\User\Anaconda3\envs\sow\lib\site-packages\nltk\tag\perceptron.py", line 141, in __init__
self.load(AP_MODEL_LOC)
File "C:\Users\User\Anaconda3\envs\sow\lib\site-packages\nltk\tag\perceptron.py", line 223, in load
self.model.weights, self.tagdict, self.classes = load(loc)
File "C:\Users\User\Anaconda3\envs\sow\lib\site-packages\nltk\data.py", line 836, in load
opened_resource = _open(resource_url)
File "C:\Users\User\Anaconda3\envs\sow\lib\site-packages\nltk\data.py", line 957, in _open
return find(path_, ['']).open()
File "C:\Users\User\Anaconda3\envs\sow\lib\site-packages\nltk\data.py", line 675, in find
raise LookupError(resource_not_found)
LookupError:
**********************************************************************
Resource [93mD:[0m not found.
Please use the NLTK Downloader to obtain the resource:
[31m>>> import nltk
>>> nltk.download('D:')
[0m
Searched in:
- ''
**********************************************************************
答案 0 :(得分:3)
您需要安装nltk
的语料库,即数据。您的代码会尝试查找pos
代码和tokenize
数据。
>>> import nltk
>>> nltk.download()
这可以解决您的问题。
参考:nltk data
如果您之前安装了nltk_data
,它会将其下载到同一位置。在这种情况下,您应该执行以下操作。这就是造成这个问题的冲突。
nltk.data.path.append('old_location_of_nltk_data')
或
设置NLTK_DATA
环境变量。