Qu'est-ce que NLTK tagger POS me demande de télécharger?

je viens de commencer à utiliser un tagger de la partie de la parole, et je suis confronté à de nombreux problèmes.

j'ai commencé le marquage POS avec le suivant:

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

quand je veux imprimer 'text' , ce qui suit arrive:

print nltk.pos_tag(text)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "F:Python26libsite-packagesnltktag__init__.py", line 63, in pos_tag
tagger = nltk.data.load(_POS_TAGGER)
File "F:Python26libsite-packagesnltkdata.py", line 594, in load
resource_val = pickle.load(_open(resource_url))
File "F:Python26libsite-packagesnltkdata.py", line 673, in _open
 return find(path).open()
 File "F:Python26libsite-packagesnltkdata.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 SettingsAdministrator/nltk_data'
    - 'C:nltk_data'
    - 'D:nltk_data'
    - 'E:nltk_data'
    - 'F:Python26nltk_data'
    - 'F:Python26libnltk_data'
    - 'C:Documents and SettingsAdministratorApplication Datanltk_data'

j'ai utilisé nltk.download() mais cela n'a pas fonctionné.

27
demandé sur alvas 2011-12-21 17:14:02

5 réponses

lorsque vous tapez nltk.download() en Python, une interface de téléchargement NLTK s'affiche automatiquement.

Cliquez sur les modèles et choisissez maxent_treebank_pos_. Il s'installe automatiquement.

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'), ('.', '.')]
29
répondu Pearl 2011-12-22 05:05:16

From NLTK versions supérieures à v3.2, please use:

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

pour les versions NLTK utilisant l'ancien modèle MaxEnt, c'est-à-dire v3.1 et au-dessous, veuillez utiliser:

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

pour plus de détails sur le changement dans la valeur par défaut pos_tag , voir https://github.com/nltk/nltk/pull/1143

25
répondu alvas 2016-06-06 07:16:23

depuis le shell / terminal, vous pouvez utiliser:

python -m nltk.downloader maxent_treebank_pos_tagger

(pourrait avoir besoin d'être sudo sur Linux)

il installera maxent_treebank_pos_tagger (c.-à-d. le tagger POS standard treebank dans NLTK) et de corriger votre problème.

5
répondu Franck Dernoncourt 2015-09-16 05:58:50
nltk.download()

cliquez sur les modèles et choisissez maxent_treebank_pos_. Il s'installe automatiquement.

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
répondu Supun Dharmarathne 2013-08-13 13:40:55
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)

résultat:

akshayy@ubuntu:~ / summ$ python nn1.py [('Obama',' NNP'), ('delivers', 'NSS'), ('sa', 'PRP$'), ('first', 'JJ'), ('discours', 'NN'), ('.', '.')]

(je viens de poser une autre question Où utilisé ce code)

1
répondu akshayb 2014-01-27 18:13:09