Python 使用朴素贝叶斯分类器训练大数据集时的记忆错误

Python 使用朴素贝叶斯分类器训练大数据集时的记忆错误,python,memory,memory-management,machine-learning,nltk,Python,Memory,Memory Management,Machine Learning,Nltk,我正在尝试使用不同类别的关键字集来训练朴素贝叶斯分类器 每个关键词都被认为是特征。对于大约12K的功能,它工作正常。但我添加了一个类别,其中包含5个缺少的关键字(由换行符分隔),然后出现以下错误: File "term_classify.py", line 51, in <module> classifier = obj.run_classifier(cltype) File "/root/Desktop/karim/software/nlp/nltk/publish

我正在尝试使用不同类别的关键字集来训练朴素贝叶斯分类器

每个关键词都被认为是特征。对于大约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

train\u set
包含用于培训目的的关键字列表(功能值)

使用numpy,它比使用列表节省大量内存:

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

尝试使用生成器仅在需要时生成项目。@Alexander:谢谢您的建议。假设5项缺失,分别通过;这样做明智吗?你有没有找到解决办法?
import numpy as np:
train_set=np.array(train_set)