Không tìm thấy tài nguyên u'tokenizers / punkt / english.pickle '


96

Mã của tôi:

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

Thông báo lỗi:

[ec2-user@ip-172-31-31-31 sentiment]$ python mapper_local_v1.0.py
Traceback (most recent call last):
File "mapper_local_v1.0.py", line 16, in <module>

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

File "/usr/lib/python2.6/site-packages/nltk/data.py", line 774, in load

    opened_resource = _open(resource_url)

File "/usr/lib/python2.6/site-packages/nltk/data.py", line 888, in _open

    return find(path_, path + ['']).open()

File "/usr/lib/python2.6/site-packages/nltk/data.py", line 618, in find

    raise LookupError(resource_not_found)

LookupError:

Resource u'tokenizers/punkt/english.pickle' not found.  Please
use the NLTK Downloader to obtain the resource:

    >>>nltk.download()

Searched in:
- '/home/ec2-user/nltk_data'
- '/usr/share/nltk_data'
- '/usr/local/share/nltk_data'
- '/usr/lib/nltk_data'
- '/usr/local/lib/nltk_data'
- u''

Tôi đang cố chạy chương trình này trong máy Unix:

Theo thông báo lỗi, tôi đã đăng nhập vào python shell từ máy unix của mình, sau đó tôi sử dụng các lệnh dưới đây:

import nltk
nltk.download()

và sau đó tôi đã tải xuống tất cả những thứ có sẵn bằng cách sử dụng tùy chọn trình tải xuống và danh sách l- nhưng sự cố vẫn tiếp diễn.

Tôi đã cố gắng hết sức để tìm giải pháp trên Internet nhưng tôi đã nhận được giải pháp tương tự như những gì tôi đã đề cập trong các bước trên.


Câu trả lời:


171

Để thêm vào câu trả lời của alvas , bạn chỉ có thể tải xuống kho punkttài liệu:

nltk.download('punkt')

Tôi tải xuống allnghe có vẻ quá mức cần thiết. Trừ khi đó là những gì bạn muốn.


Cảm ơn vì tên kho lưu trữ nltk.
Austin A

Tôi đã phải nâng cấp lên nltk phiên bản 3.2.5 mới nhất để nltk.download ('punkt') hoạt động.
charles gomes

Đây là những gì tôi nhận được sau khi chạy mã ở trên: [nltk_data] Lỗi khi tải punkt: <urlopen error [Errno 111] Kết nối [nltk_data] bị từ chối>
Paul

Về vấn đề trước đây của tôi, tất cả những gì tôi phải làm là tắt VPN của mình.
Paul

59

Nếu bạn chỉ muốn tải xuống punktmô hình:

import nltk
nltk.download('punkt')

Nếu bạn không chắc mình cần dữ liệu / mô hình nào, bạn có thể cài đặt bộ dữ liệu, mô hình và trình gắn thẻ phổ biến từ NLTK:

import nltk
nltk.download('popular')

Với lệnh trên, không cần sử dụng GUI để tải xuống bộ dữ liệu.


34

Tôi đã có giải pháp:

import nltk
nltk.download()

khi Trình tải xuống NLTK khởi động

d) Tải xuống l) Danh sách u) Cập nhật c) Cấu hình h) Trợ giúp q) Thoát

Trình tải xuống> d

Tải xuống gói nào (l = list; x = hủy)? Định danh> punkt


25

Từ shell, bạn có thể thực thi:

sudo python -m nltk.downloader punkt 

Nếu bạn muốn cài đặt kho công cụ / mô hình NLTK phổ biến:

sudo python -m nltk.downloader popular

Nếu bạn muốn cài đặt tất cả kho tài liệu / mô hình NLTK:

sudo python -m nltk.downloader all

Để liệt kê các tài nguyên bạn đã tải xuống:

python -c 'import os; import nltk; print os.listdir(nltk.data.find("corpora"))'
python -c 'import os; import nltk; print os.listdir(nltk.data.find("tokenizers"))'

10
import nltk
nltk.download('punkt')

Mở lời nhắc Python và chạy các câu lệnh trên.

Hàm sent_tokenize sử dụng một phiên bản của PunktSentenceTokenizer từ mô-đun nltk.tokenize.punkt . Phiên bản này đã được đào tạo và hoạt động tốt cho nhiều ngôn ngữ châu Âu. Vì vậy, nó biết những gì dấu câu và ký tự đánh dấu cuối một câu và đầu một câu mới.


9

Điều tương tự đã xảy ra với tôi gần đây, bạn chỉ cần tải xuống gói "punkt" và nó sẽ hoạt động.

Khi bạn thực hiện "danh sách" (l) sau khi đã "tải xuống tất cả những thứ có sẵn", mọi thứ có được đánh dấu như dòng sau không ?:

[*] punkt............... Punkt Tokenizer Models

Nếu bạn nhìn thấy dòng này với dấu sao, có nghĩa là bạn đã có nó và nltk sẽ có thể tải nó.


1
Này @ supreeth-meka, tôi rất vui vì bạn đã tìm thấy giải pháp, đó là những gì tôi đã gợi ý cho bạn, bạn có thể đánh dấu câu trả lời của tôi là "Được chấp nhận" được không?
eeelnico

5

Truy cập bảng điều khiển python bằng cách nhập

$ python

trong thiết bị đầu cuối của bạn. Sau đó, nhập 2 lệnh sau vào trình bao python của bạn để cài đặt các gói tương ứng:

>> nltk.download ('punkt') >> nltk.download ('average_perceptron_tagger')

Điều này đã giải quyết vấn đề cho tôi.


2

Vấn đề của tôi là tôi đã gọi nltk.download('all')với tư cách là người dùng gốc, nhưng quá trình cuối cùng sử dụng nltk là một người dùng khác không có quyền truy cập vào / root / nltk_data nơi nội dung được tải xuống.

Vì vậy, tôi chỉ cần sao chép đệ quy mọi thứ từ vị trí tải xuống đến một trong những đường dẫn mà NLTK đang tìm kiếm như thế này:

cp -R /root/nltk_data/ /home/ubuntu/nltk_data

2
  1. Thực thi đoạn mã sau:

    import nltk
    nltk.download()
  2. Sau đó, trình tải xuống NLTK sẽ xuất hiện.

  3. Chọn Tất cả các gói.
  4. Tải xuống punkt.

2

Tôi đã gặp lỗi mặc dù đã nhập nội dung sau,

import nltk
nltk.download()

nhưng đối với google colab điều này đã giải quyết được vấn đề của tôi.

   !python3 -c "import nltk; nltk.download('all')"

1

Nltk.download () đơn giản sẽ không giải quyết được vấn đề này. Tôi đã thử những điều dưới đây và nó hoạt động với tôi:

trong thư mục nltk, tạo một thư mục tokenizers và sao chép thư mục punkt của bạn vào thư mục tokenizers.

Điều này sẽ hoạt động.! cấu trúc thư mục cần phải như trong hình


1

Bạn cần sắp xếp lại các thư mục của mình Di chuyển tokenizersthư mục của bạn vào nltk_datathư mục. Điều này không hoạt động nếu bạn có nltk_datathư mục chứa corporathư mục chứa tokenizersthư mục


1

Đối với tôi không có gì ở trên hiệu quả, vì vậy tôi chỉ tải xuống tất cả các tệp bằng tay từ trang web http://www.nltk.org/nltk_data/ và tôi cũng đặt chúng bằng tay trong một tệp "tokenizers" bên trong "nltk_data " thư mục. Không phải là một giải pháp đẹp nhưng vẫn là một giải pháp.


1

Sau khi thêm dòng mã này, sự cố sẽ được khắc phục:

nltk.download('punkt')

0

Tôi phải đối mặt với cùng một vấn đề. Sau khi tải xuống mọi thứ, vẫn còn lỗi 'punkt'. Tôi đã tìm kiếm gói trên máy windows của mình tại C: \ Users \ vaibhav \ AppData \ Roaming \ nltk_data \ tokenizers và tôi có thể thấy 'punkt.zip' hiện diện ở đó. Tôi nhận ra rằng bằng cách nào đó, zip chưa được giải nén vào C: \ Users \ vaibhav \ AppData \ Roaming \ nltk_data \ tokenizers \ punk. Sau khi tôi giải nén zip, nó hoạt động như âm nhạc.



Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.