MemoryError при подготовке большого набора данных с использованием классификатора наивных байков

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

Каждое ключевое слово рассматривается как функция. Для около 12K функций он работает нормально. Но я добавил одну категорию с 5 недостатком ключевого слова (seprated by newline char), после чего он дает эту ошибку:

File "term_classify.py", line 51, in <module>
 classifier = obj.run_classifier(cltype)
 File "/root/Desktop/karim/software/nlp/nltk/publish/lists/classifier_function.py", line 144, in run_classifier
 classifier = NaiveBayesClassifier.train(train_set)
 File "/usr/local/lib/python2.7/dist-packages/nltk/classify/naivebayes.py", line 210, in train
 count = feature_freqdist[label, fname].N()
MemoryError
</module>

Я проверил несколько потоков, но не помог. Кто-нибудь сталкивался с подобной проблемой?

Я вызываю функцию таким образом:

if(cltype == 'nb'):
 print 'classifier : ',cltype
 classifier = NaiveBayesClassifier.train(train_set)

train_set содержит список ключевых слов (feature_value) для целей обучения

1 ответ

Используйте numpy, это экономит много памяти, чем использование списков:

import numpy as np:
train_set=np.array(train_set)

licensed under cc by-sa 3.0 with attribution.