pos_tag в NLTK неправильно помечает предложения

Я использовал этот код:

# Step 1 : TOKENIZE
from nltk.tokenize import *
words = word_tokenize(text)

# Step 2 : POS DISAMBIG
from nltk.tag import *
tags = pos_tag(words)

чтобы пометить два предложения: John is very nice. Джон очень милый?

Джон в первом предложении был NN, а во втором - VB! Итак, как мы можем исправить функцию pos_tag без обучения отложенных тегировщиков?

Модифицированный вопрос:

Я видел демонстрацию тегов NLTK здесь http://text-processing.com/demo/tag/< /а>. Когда я попробовал вариант «English Taggers & Chunkers: Treebank» или «Brown Tagger», я получил правильные теги. Итак, как использовать, например, Brown Tagger без обучения?


person user842457    schedule 03.12.2011    source источник
comment
см. stackoverflow.com/questions/30821188/   -  person alvas    schedule 14.06.2015


Ответы (2)


Краткий ответ: вы не можете. Немного более длинный ответ: вы можете переопределить определенные слова, используя созданный вручную UnigramTagger. См. мой ответ для настраиваемой маркировки с помощью nltk для получения подробной информации об этом методе.

person Jacob    schedule 03.12.2011
comment
Я обучил всех тегеров на text-processing.com с помощью скрипта train_tagger.py из github.com/japerk/ nltk-тренер. Таким образом, вы можете обучать тегировщиков самостоятельно или, если вы заинтересованы в их покупке, свяжитесь со мной по адресу text- обработка.com/контакт - person Jacob; 05.12.2011

Я попытался воспроизвести ошибку, используя NLTK v3.0. Я думаю, теперь nltk.pos_tag() исправлено. Как уже упоминал #Jacob, вы можете использовать Brown Corpus для обучения тегировщика (nltk в python) следующим образом:

from nltk.corpus import brown
train_sents = brown.tagged_sents()
unigram_tagger = nltk.UnigramTagger(train_sents)
tokens=nltk.word_tokenize("Is John very nice?")
tagged=unigram_tagger.tag(tokens)
tagged

Но обратите внимание, что набор тегов зависит от корпуса, который использовался для обучения тегировщика. Теггер nltk.pos_tag() по умолчанию использует набор тегов Penn Treebank.

person Rasika Perera    schedule 05.05.2014