Windows Anaconda中的nltk pos_tag错误

时间:2018-06-08 12:31:57

标签: python-3.x anaconda nltk nltk-trainer nltk-book

虽然我希望使用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:
    - ''
********************************************************************** 

1 个答案:

答案 0 :(得分:3)

您需要安装nltk的语料库,即数据。您的代码会尝试查找pos代码和tokenize数据。

>>> import nltk
>>> nltk.download()

这可以解决您的问题。

参考:nltk data

在@nikki的建议之后编辑。

如果您之前安装了nltk_data,它会将其下载到同一位置。在这种情况下,您应该执行以下操作。这就是造成这个问题的冲突。

nltk.data.path.append('old_location_of_nltk_data')

设置NLTK_DATA环境变量。