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:])