找到IndexError但找不到问题

时间:2019-05-11 09:20:50

标签: python nltk

我尝试过此代码

import OS
import nltk
print(os.listdir(nltk.data.find("corpora")))

但是出现以下错误。

------------------------------------------------------------------------- 
--
IndexError                                Traceback (most recent call 
last)
<ipython-input-2-9f8c46ee9865> in <module>()
----> 1 print(os.listdir(nltk.data.find("corpora")))

~\AppData\Local\Continuum\anaconda3\lib\site-packages\nltk\data.py in 
find(resource_name, paths)
    676 
    677     # Identify the package (i.e. the .zip file) to download.
--> 678     resource_zipname = resource_name.split('/')[1]
    679     if resource_zipname.endswith('.zip'):
    680         resource_zipname = resource_zipname.rpartition('.')[0]

IndexError: list index out of range

3 个答案:

答案 0 :(得分:0)

TL; DR

您必须先下载corpora

>>> import os
>>> import nltk
>>> nltk.download('popular')
>>> print(os.listdir(nltk.data.find("corpora")))

但是打印corpora目录中的内容并没有多大帮助,也许从中得出的提示会更有用:https://stackoverflow.com/a/30822962/610569

答案 1 :(得分:0)

您需要在代码中添加“来自未来 import print_function”,因此请使用以下代码:

from __future__ import print_function
import os
import nltk
import nltk.corpus
nltk.download('popular')
print(os.listdir(nltk.data.find("corpora")))

答案 2 :(得分:0)

您必须先下载数据。

请参阅:https://www.nltk.org/data.html

运行Python解释器并输入命令:

import nltk
nltk.download()