我正在尝试在没有连接到Internet的系统上标记文本。通过将* .xml和* .zip复制到nltk_data\corpora
文件夹中,我已经成功利用了其他nltk数据(如停用词)。但是对于punkt来说,这是行不通的。
我知道这有点hacky,但这是一个离线环境,复制内容的能力非常有限,因此我需要使用已有的东西。
将重现此内容的最短代码如下:
from nltk.tokenize import word_tokenize
words = word_tokenize('some text here')
运行代码(在Spyder中)时,我得到了这个提示:
LookupError:
**********************************************************************
Resource punkt not found.
Please use the NLTK Downloader to obtain the resource:
import nltk
nltk.download('punkt')
Searched in:
- 'C:\\Users\\jchase/nltk_data'
- 'C:\\nltk_data'
- 'D:\\nltk_data'
- 'E:\\nltk_data'
- 'C:\\Anaconda3\\nltk_data'
- 'C:\\Anaconda3\\lib\\nltk_data'
- 'C:\\Users\\jchase\\AppData\\Roaming\\nltk_data
**********************************************************************
(是的,我是从头开始输入的。)
答案 0 :(得分:1)
很抱歉给大家带来麻烦,但我找到了答案。我将错误追溯到使用路径的nltk发行版中的data.py:
df3.withColumn("c2_new",concat( df1("c2"),df2("c2") ))
我检查了这个resource_url,发现它正在寻找的文件/路径是:
+---+------+-----+
| M| c2 | c3 |
+---+-----+------+
| 1| 2_20| 3_30|
| 2| 3_30| 4_40|
+---+------+-----+
所以我将punkt.zip解压缩到tokenizers / punkt文件夹中(完整路径为C:\ Anaconda3 \ Lib \ nltk_data \ tokenizers \ punkt),这使我摆脱了错误。
这个问题和我的答案可能会导致Python领域的专家对我的环境似乎存在一些问题发表评论。对此,我同意。这是我没有构建的VM,没有太多控制权。
再次,对于误报警,我们深表歉意。我应该让它躺到早晨,直到一切新鲜为止。