我正在尝试使用一组关键字为不同类别训练朴素贝叶斯分类器。
它认为是功能的每个关键字。对于大约12K功能,它工作正常。但是我添加了一个类别,其中有5个缺少关键字(由换行符分隔),然后它给出了这个错误:
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
我检查了几个线程但没有帮助。有没有人遇到过类似的问题?
我以这种方式调用函数:
if(cltype == 'nb'):
print 'classifier : ',cltype
classifier = NaiveBayesClassifier.train(train_set)
train_set
包含用于培训目的的关键字列表(feature_value)
答案 0 :(得分:1)
使用numpy,它比使用列表节省了大量内存:
import numpy as np:
train_set=np.array(train_set)