即使在手动将数据文件复制到适当位置后,也找不到“找不到资源标记”

时间:2019-12-10 18:47:37

标签: python nltk

我正在尝试在没有连接到Internet的系统上标记文本。通过将* .xml和* .zip复制到nltk_data\corpora文件夹中,我已经成功利用了其他nltk数据(如停用词)。但是对于punkt来说,这是行不通的。

  • 我在Anaconda发行版的“ tokenizers”文件夹中找到了它,该文件夹与“ corpora”文件夹处于同一级别,并试图模仿它-没运气。
  • 我尝试将punkt.xml和punkt.zip文件复制到解释器表示要查找文件的所有位置,但是没有运气。

我知道这有点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
**********************************************************************

(是的,我是从头开始输入的。)

1 个答案:

答案 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,没有太多控制权。

再次,对于误报警,我们深表歉意。我应该让它躺到早晨,直到一切新鲜为止。