2016-03-16 3 views
0

Я новичок в Python и нуждаюсь в нем для тегов PoS. Поэтому я попытался использовать стандартные инструменты. Я попытался создать теггер и получить ValueError, который я не понимаю. Мой код:NLTK PoS tagging

import nltk 
tagged_sents = nltk.corpus.brown.tagged_sents(categories = 'reviews') 
tagger =nltk.ClassifierBasedTagger(tagged_sents) 

Я уже проверил, что tagged_sents список всех предложений. Каждое предложение сам является список кортежей (слова, Pos), как и в документации:

:param train: A tagged corpus consisting of a list of tagged sentences, where each sentence is a list of (word, tag) tuples.

Почему я получаю ошибку значения?

ValueError: Must specify either training data or trained model.

ответ

2

Вы уже прошли tagged_sents позиционно, поэтому он используется в качестве аргумента feature_detector. Вы должны построить отметку, как это:

tagger = nltk.ClassifierBasedTagger(train=tagged_sents) 

См http://www.nltk.org/api/nltk.tag.html#nltk.tag.sequential.ClassifierBasedTagger

+0

Спасибо большое. Это было слишком просто ... –

+0

Также странно, что 'ClassifierBasedTagger' ожидает' feature_detector' в первой позиции. – alvas

+0

[Это] (https://github.com/ptnplanet/NLTK-Contributions) отлично работает с вашим решением, хотя я не видел до сих пор, когда вызывается ClassifierBasedTagger. –

Смежные вопросы