繁体   English   中英

使用朴素贝叶斯分类器训练大型数据集时出现MemoryError

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM