nltk.DecisionTreeClassifier.train не работает

Я пытаюсь запустить следующий код, который был приведен в качестве примера в следующей главе книги: http://www.nltk.org/book/ch06.html [см. 1.4 Маркировка части речи]

import nltk
from nltk.corpus import brown

#
suffix_fdist = nltk.FreqDist()
for word in brown.words():
    word = word.lower()
    suffix_fdist[word[-1:]] += 1
    suffix_fdist[word[-2:]] += 1
    suffix_fdist[word[-3:]] += 1

common_suffixes = [suffix for (suffix,count) in suffix_fdist.most_common(100)]
print(common_suffixes)

def pos_features(word):
    features={}
    for suffix in common_suffixes:
        features['endswith({})'.format(suffix)] = word.lower().endswith(suffix)
    return features

tagged_words = brown.tagged_words(categories='news')
featuresets = [(pos_features(n), g) for (n,g) in tagged_words]

size = int(len(featuresets)*0.1)
train_set, test_set = featuresets[size:], featuresets[:size]

classifier = nltk.DecisionTreeClassifier.train(train_set)
nltk.classify.accuracy(classifier, test_set)

Когда я запускаю код IDLE, кажется, заходит в бесконечный цикл. Проблема возникает в вызове метода nltk.DecisionTreeClassifier.trai. Любая идея, почему это происходит, и как я могу это исправить, будет высоко оценена.

Майк

1 ответ

Я также столкнулся с той же проблемой сегодня, когда пытался, насколько я понял, это связано с нашей вычислительной мощностью, когда я запустил код с меньшим количеством данных, и я получил результат.

classifier = nltk.DecisionTreeClassifier.train(train_set[86000:])

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