NLTK PoS маркировка

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

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

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

: param train: Помеченный корпус, состоящий из списка помеченных предложений, где каждое предложение является списком (word, tag) кортежей.

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

ValueError: должен указывать либо обучающие данные, либо обученную модель.

1 ответ

Решение

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

tagger = nltk.ClassifierBasedTagger(train=tagged_sents)

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

Другие вопросы по тегам