Похоже, вы тренируетесь, а затем оцениваете обученных UnigramTagger
по тем же данным обучения. Взгляните на документацию nltk.tag и, в частности, part об оценке.
С вашим кодом вы получите высокий балл, что вполне очевидно, потому что Ваши данные о тренировках и данные оценки / тестирования совпадают. Если вы измените это, если данные тестирования отличаются от данных обучения, вы получите другие результаты. Ниже приведены мои примеры:
Категория: Художественная литература
Здесь я использовал тренировочный набор как brown.tagged_sents(categories='fiction')[:500]
, а тест / оценка - brown.tagged_sents(categories='fiction')[501:600]
from nltk.corpus import brown
import nltk
# Fiction
brown_tagged_sents = brown.tagged_sents(categories='fiction')[:500]
brown_sents = brown.sents(categories='fiction') # not sure what this line is doing here
unigram_tagger = nltk.UnigramTagger(brown_tagged_sents)
unigram_tagger.evaluate(brown.tagged_sents(categories='fiction')[501:600])
Это дает вам ~ 0,7474610697359513
Категория: Романтика
Здесь я использовал тренировочный набор как brown.tagged_sents(categories='romance')[:500]
и тест / оценка установлена как brown.tagged_sents(categories='romance')[501:600]
from nltk.corpus import brown
import nltk
# Romance
brown_tagged_sents = brown.tagged_sents(categories='romance')[:500]
brown_sents = brown.sents(categories='romance') # not sure what this line is doing here
unigram_tagger = nltk.UnigramTagger(brown_tagged_sents)
unigram_tagger.evaluate(brown.tagged_sents(categories='romance')[501:600])
Это дает вам оценку ~ 0,7046799354491662
Я надеюсь, что это поможет и ответит на ваш вопрос.