使用nltk.data.load加载english.pickle失败

python jenkins nltk

122289 观看

13回复

638 作者的声誉

尝试加载punkt令牌化程序时...

import nltk.data
tokenizer = nltk.data.load('nltk:tokenizers/punkt/english.pickle')

...... a LookupError被提出:

> LookupError: 
>     *********************************************************************   
> Resource 'tokenizers/punkt/english.pickle' not found.  Please use the NLTK Downloader to obtain the resource: nltk.download().   Searched in:
>         - 'C:\\Users\\Martinos/nltk_data'
>         - 'C:\\nltk_data'
>         - 'D:\\nltk_data'
>         - 'E:\\nltk_data'
>         - 'E:\\Python26\\nltk_data'
>         - 'E:\\Python26\\lib\\nltk_data'
>         - 'C:\\Users\\Martinos\\AppData\\Roaming\\nltk_data'
>     **********************************************************************
作者: Martin 的来源 发布者: 2011 年 2 月 1 日

回应 (13)


244

3921 作者的声誉

我有同样的问题。进入python shell并输入:

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

然后会出现一个安装窗口。转到“模型”标签,然后从“标识符”列下方选择“朋克”。然后单击“下载”,它将安装必要的文件。那它应该工作!

作者: richardr 发布者: 01.06.2012 03:12

2

468 作者的声誉

当我试图在nltk中进行pos标记时,我遇到了这个问题。我弄错的方法是创建一个新目录以及名为“taggers”的语料库目录,并在目录标记器中复制max_pos_tagger。
希望它也适合你。祝它好运!!!

作者: Ashish Singh 发布者: 05.02.2013 03:54

85

3452 作者的声誉

import nltk
nltk.download('punkt')

from nltk import word_tokenize,sent_tokenize

使用标记器:)

作者: Naren Yellavula 发布者: 30.12.2014 01:50

7

89 作者的声誉

简单nltk.download()不会解决这个问题。我尝试了下面的内容,它对我有用:

nltk文件夹中创建一个tokenizers文件夹并将文件夹复制punkttokenizers文件夹中。

这将有效。文件夹结构需要如图所示!1

作者: Deepthi Karnam 发布者: 01.04.2015 11:53

26

6220 作者的声誉

这对我来说现在很有用:

# Do this in a separate python interpreter session, since you only have to do it once
import nltk
nltk.download('punkt')

# Do this in your ipython notebook or analysis script
from nltk.tokenize import word_tokenize

sentences = [
    "Mr. Green killed Colonel Mustard in the study with the candlestick. Mr. Green is not a very nice fellow.",
    "Professor Plum has a green plant in his study.",
    "Miss Scarlett watered Professor Plum's green plant while he was away from his office last week."
]

sentences_tokenized = []
for s in sentences:
    sentences_tokenized.append(word_tokenize(s))

sentences_tokenized是令牌列表的列表:

[['Mr.', 'Green', 'killed', 'Colonel', 'Mustard', 'in', 'the', 'study', 'with', 'the', 'candlestick', '.', 'Mr.', 'Green', 'is', 'not', 'a', 'very', 'nice', 'fellow', '.'],
['Professor', 'Plum', 'has', 'a', 'green', 'plant', 'in', 'his', 'study', '.'],
['Miss', 'Scarlett', 'watered', 'Professor', 'Plum', "'s", 'green', 'plant', 'while', 'he', 'was', 'away', 'from', 'his', 'office', 'last', 'week', '.']]

这些句子取自“挖掘社交网络,第2版”一书的示例ipython笔记本

作者: jjinking 发布者: 17.07.2015 08:00

0

22 作者的声誉

检查您是否拥有所有NLTK库。

作者: Torrtuga 发布者: 11.09.2016 03:36

5

51 作者的声誉

nltk拥有经过预先训练的标记器模型。模型从内部预定义的Web源下载并存储在已安装的nltk包的路径中,同时执行以下可能的函数调用。

例如1 tokenizer = nltk.data.load('nltk:tokenizers / punkt / english.pickle')

例如2 nltk.download('punkt')

如果您在代码中调用上述句子,请确保您没有任何防火墙保护的互联网连接。

我想分享一些更好的改变网络方式来解决上述问题,提供更好的深层理解。

请按照以下步骤使用nltk享受英语单词标记化。

步骤1:首先按照Web路径下载“english.pickle”模型。

转到链接“ http://www.nltk.org/nltk_data/ ”并点击“107. Punkt Tokenizer Models”选项“下载”

步骤2:解压缩下载的“punkt.zip”文件并从中找到“english.pickle”文件并放入C盘。

第3步:复制粘贴代码并执行。

from nltk.data import load
from nltk.tokenize.treebank import TreebankWordTokenizer

sentences = [
    "Mr. Green killed Colonel Mustard in the study with the candlestick. Mr. Green is not a very nice fellow.",
    "Professor Plum has a green plant in his study.",
    "Miss Scarlett watered Professor Plum's green plant while he was away from his office last week."
]

tokenizer = load('file:C:/english.pickle')
treebank_word_tokenize = TreebankWordTokenizer().tokenize

wordToken = []
for sent in sentences:
    subSentToken = []
    for subSent in tokenizer.tokenize(sent):
        subSentToken.extend([token for token in treebank_word_tokenize(subSent)])

    wordToken.append(subSentToken)

for token in wordToken:
    print token

如果您遇到任何问题,请告诉我

作者: Jignesh Vasoya 发布者: 17.03.2017 05:15

12

432 作者的声誉

从bash命令行运行:

$ python -c "import nltk; nltk.download('punkt')"
作者: cgl 发布者: 26.05.2017 06:50

4

5739 作者的声誉

在Jenkins上,可以通过在Build选项卡下向Virtualenv Builder添加以下代码来修复

python -m nltk.downloader punkt

在此输入图像描述

作者: Abhijeet 发布者: 29.01.2018 04:00

9

945 作者的声誉

这对我有用:

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

在Windows中,您还将获得nltk下载程序

NLTK下载器

作者: Roshan Bagdiya 发布者: 16.06.2018 04:21

0

1 作者的声誉

punkt tokenizers数据非常大,超过35 MB,如果像我这样在一个资源有限的lambda环境中运行nltk,这可能是一个大问题。

如果您只需要一个或几个语言标记符,则只需包含这些语言.pickle文件,即可大幅减少数据大小。

如果您只需要支持英语,那么您的nltk数据大小可以减少到407 KB(对于python 3版本)。

脚步

  1. 下载nltk punkt数据:https://raw.githubusercontent.com/nltk/nltk_data/gh-pages/packages/tokenizers/punkt.zip
  2. 在您的环境中的某个位置创建文件夹:nltk_data/tokenizers/punkt,如果使用python 3添加另一个文件夹,PY3以便您的新目录结构如下所示nltk_data/tokenizers/punkt/PY3。在我的例子中,我在项目的根目录下创建了这些文件夹。
  3. 解压缩zip并将.pickle要支持的语言的文件移动到punkt刚刚创建的文件夹中。注意:Python 3用户应该使用该PY3文件夹中的pickle 。加载语言文件后,它应该类似于:example-folder-stucture
  4. 现在,您只需将nltk_data文件夹添加到搜索路径中,假设您的数据不在预定义的搜索路径之一中。您可以使用环境变量添加数据NLTK_DATA='path/to/your/nltk_data'。您还可以通过执行以下操作在python中在运行时添加自定义路径:
from nltk import data
data.path += ['/path/to/your/nltk_data']

注意:如果您不需要在运行时加载数据或将数据与代码捆绑在一起,最好在nltk查找nltk_data内置位置创建文件夹。

作者: Trent Holliday 发布者: 16.05.2019 04:27

0

1 作者的声誉

在Spyder中,转到活动shell并使用以下2个命令下载nltk。import nltk nltk.download()然后你应该看到NLTK下载窗口打开如下,转到这个窗口的'Models'选项卡并点击'punkt'并下载'punkt'

窗口

作者: Krish 发布者: 29.06.2019 05:28

0

1 作者的声誉

nltk.download()不会解决这个问题。我尝试了下面的内容,它对我有用:

在'... AppData \ Roaming \ nltk_data \ tokenizers'文件夹中,在同一位置提取下载的punkt.zip文件夹。

作者: bishnarender 发布者: 21.08.2019 03:45
32x32