Предположим, вам нужен наивный байесовский классификатор с набором слов:
from nltk import FreqDist
from nltk.classify.naivebayes import NaiveBayesClassifier
def make_training_data(rdr):
for c in rdr.categories():
for f in rdr.fileids(c):
yield FreqDist(rdr.words(fileids=[f])), c
clf = NaiveBayesClassifier.train(list(make_training_data(reader)))
Полученный метод clf
classify
может использоваться для любых FreqDist
слов.
(Но обратите внимание: из вашего cap_pattern
кажется, что у вас есть образцы и одной категории на файл в вашем корпусе. Проверьте, действительно ли вы этого хотите.)