Что тэггер NLTK POS просит меня скачать? - PullRequest
29 голосов
/ 21 декабря 2011

Я только начал использовать тегер части речи, и у меня много проблем.

Я начал тегирование POS со следующего:

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

Когда я хочу напечатать 'text', происходит следующее:

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'

Я использовал nltk.download(), но это не сработало.

Ответы [ 5 ]

30 голосов
/ 22 декабря 2011

Когда вы набираете nltk.download() в Python, интерфейс NLTK Downloader отображается автоматически.
Нажмите на Модели и выберите maxent_treebank_pos_. Он устанавливается автоматически.

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'), ('.', '.')]
28 голосов
/ 06 июня 2016

Из NLTK версий выше, чем v3.2, используйте:

>>> 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

Для NLTK версий, использующих старую модель MaxEnt, т.е. v3.1 и ниже, пожалуйста, используйте:

>>> 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

Подробнее об изменении значения по умолчанию pos_tag см. https://github.com/nltk/nltk/pull/1143

5 голосов
/ 16 сентября 2015

Из оболочки / терминала вы можете использовать:

python -m nltk.downloader maxent_treebank_pos_tagger

(может потребоваться sudo в Linux)

Он установит maxent_treebank_pos_tagger (т. Е. Стандартный POS-тег Treebank в NLTK) и исправит вашу проблему.

1 голос
/ 13 августа 2013
nltk.download()

Нажмите на Модели и выберите maxent_treebank_pos_. Он устанавливается автоматически.

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'), ('.', '.')]
1 голос
/ 04 апреля 2013
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)

Результат:

akshayy @ ubuntu: ~ / summ $ python nn1.py [('Обама', 'NNP'), ('поставляет', 'NNS'),('his', 'PRP $'), ('first', 'JJ'), ('speech', 'NN'), ('.', '.')]

(Я просто задал еще один вопрос, где использовался этот код)

...