[英]MemoryError while training large dataset using naive bayes classifier
我正在尝试使用针对不同类别的关键字集来训练朴素贝叶斯分类器。
它视为功能的每个关键字。 对于大约12K的功能,它工作正常。 但是我添加了一个具有5个缺少关键字的类别(由换行符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
我检查了几个线程,但没有帮助。 有没有人遇到过类似的问题?
我以这种方式调用函数:
if(cltype == 'nb'):
print 'classifier : ',cltype
classifier = NaiveBayesClassifier.train(train_set)
train_set
包含用于培训目的的关键字列表(feature_value)
使用numpy,与使用列表相比,它节省了大量内存:
import numpy as np:
train_set=np.array(train_set)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.