2011-12-21 49 views
27

Tôi vừa mới bắt đầu sử dụng trình gắn thẻ một phần của lời nói và tôi đang gặp nhiều sự cố.Trình gắn thẻ NLTK POS yêu cầu tôi tải xuống là gì?

tôi bắt đầu POS gắn thẻ như sau:

import nltk 
text=nltk.word_tokenize("We are going out.Just you and me.") 

Khi tôi muốn in 'text', sau đây sẽ xảy ra:

print nltk.pos_tag(text) 
Traceback (most recent call last): 
File "<stdin>", line 1, in <module> 
File "F:\Python26\lib\site-packages\nltk\tag\__init__.py", line 63, in pos_tag 
tagger = nltk.data.load(_POS_TAGGER) 
File "F:\Python26\lib\site-packages\nltk\data.py", line 594, in load 
resource_val = pickle.load(_open(resource_url)) 
File "F:\Python26\lib\site-packages\nltk\data.py", line 673, in _open 
return find(path).open() 
File "F:\Python26\lib\site-packages\nltk\data.py", line 455, in find 
    raise LookupError(resource_not_found)` 
LookupError: 
Resource 'taggers/maxent_treebank_pos_tagger/english.pickle' not 
found. Please use the NLTK Downloader to obtain the resource: 

>>> nltk.download(). 

Searched in: 
    - 'C:\\Documents and Settings\\Administrator/nltk_data' 
    - 'C:\\nltk_data' 
    - 'D:\\nltk_data' 
    - 'E:\\nltk_data' 
    - 'F:\\Python26\\nltk_data' 
    - 'F:\\Python26\\lib\\nltk_data' 
    - 'C:\\Documents and Settings\\Administrator\\Application Data\\nltk_data' 

tôi đã sử dụng nltk.download() nhưng nó đã không làm việc.

+0

Tại sao bạn viết tất cả văn bản in đậm? Điều này thực sự không cần thiết. Ngoài ra, vui lòng đăng một ví dụ tối thiểu nhưng đầy đủ để chứng minh lỗi của bạn. –

+0

Ở đó, tôi đã làm sạch nó cho bạn. Hãy lấy điều này làm ví dụ về cách định dạng các câu hỏi trong tương lai. –

+0

thankx ... sự cố đã được giải quyết ... – Pearl

Trả lời

27

Khi bạn nhập nltk.download() bằng Python, giao diện NLTK Downloader sẽ tự động được hiển thị.
Nhấp vào Mô hình và chọn maxent_treebank_pos_. Nó được cài đặt tự động.

import nltk 
text=nltk.word_tokenize("We are going out.Just you and me.") 
print nltk.pos_tag(text) 
[('We', 'PRP'), ('are', 'VBP'), ('going', 'VBG'), ('out.Just', 'JJ'), 
('you', 'PRP'), ('and', 'CC'), ('me', 'PRP'), ('.', '.')] 
+16

Thậm chí nhiều hơn, bạn có thể tải xuống trực tiếp trong mã nếu bạn chỉ định tên trình gắn thẻ 'nltk.download ('maxent_treebank_pos_tagger');'. Xem bài đăng này http: // stackoverflow.com/a/5208563/62921 – ForceMagic

1
import nltk 
text = "Obama delivers his first speech." 

sent = nltk.sent_tokenize(text) 


loftags = [] 
for s in sent: 
    d = nltk.word_tokenize(s) 

    print nltk.pos_tag(d) 

Kết quả:

akshayy @ ubuntu: ~/Summ $ python nn1.py [('Obama', 'NNP'), ('cung cấp', 'NNS'), ('ông', 'PRP $'), ('đầu tiên', 'JJ'), ('nói', 'NN'), (' ' '.')]

(Tôi vừa hỏi một câu hỏi khác khi sử dụng mã này)

+1

Cần lưu ý rằng phân tích cú pháp này là ** không chính xác ** - trình gắn thẻ POS đã đánh dấu "phân phối" làm danh từ số nhiều ... – simon

1
nltk.download() 

Nhấp vào Mô hình và chọn maxent_treebank_pos_. Nó được cài đặt tự động.

import nltk 
text=nltk.word_tokenize("We are going out.Just you and me.") 
print nltk.pos_tag(text) 
[('We', 'PRP'), ('are', 'VBP'), ('going', 'VBG'), ('out.Just', 'JJ'), 
('you', 'PRP'), ('and', 'CC'), ('me', 'PRP'), ('.', '.')] 
5

Từ vỏ/thiết bị đầu cuối, bạn có thể sử dụng:

python -m nltk.downloader maxent_treebank_pos_tagger 

(có thể cần phải được sudo trên Linux)

Nó sẽ cài đặt maxent_treebank_pos_tagger (tức là tagger chuẩn Treebank POS tại NLTK) và khắc phục sự cố của bạn.

21

Từ NLTK phiên bản cao hơn v3.2, xin vui lòng sử dụng:

>>> import nltk 
>>> nltk.__version__ 
'3.2.1' 
>>> nltk.download('averaged_perceptron_tagger') 
[nltk_data] Downloading package averaged_perceptron_tagger to 
[nltk_data]  /home/alvas/nltk_data... 
[nltk_data] Package averaged_perceptron_tagger is already up-to-date! 
True 

Đối NLTK phiên bản sử dụng mô hình Maxent cũ, tức là v3.1 và dưới đây, xin vui lòng sử dụng:

>>> import nltk 
>>> nltk.download('maxent_treebank_pos_tagger') 
[nltk_data] Downloading package maxent_treebank_pos_tagger to 
[nltk_data]  /home/alvas/nltk_data... 
[nltk_data] Package maxent_treebank_pos_tagger is already up-to-date! 
True 

Đối biết thêm chi tiết về thay đổi trong mặc định pos_tag, vui lòng xem https://github.com/nltk/nltk/pull/1143

Các vấn đề liên quan