gpt4 book ai didi

python - Nltk 朴素贝叶斯分类器内存问题

转载 作者:太空宇宙 更新时间:2023-11-04 09:15:37 25 4
gpt4 key购买 nike

我的第一篇文章在这里!我在使用 nltk NaiveBayesClassifier 时遇到问题。我有一个包含 7000 个项目的训练集。每个训练项目都有 2 或 3 个世界的描述和一个代码。我想将代码用作类的标签,将描述的每个世界用作特征。一个例子:

“我叫奥巴马”,001...

训练集 = {[feature['My']=True,feature['name']=True,feature['is']=True,feature[Obama]=True], 001}

不幸的是,使用这种方法,训练过程 NaiveBayesClassifier.train 使用多达 3 GB 的内存。我的方法有什么问题?谢谢!

def document_features(document): # feature extractor
document = set(document)
return dict((w, True) for w in document)

...
words=set()
entries = []
train_set= []
train_length = 2000
readfile = open("atcname.pl", 'r')
t = readfile.readline()
while (t!=""):
t = t.split("'")
code = t[0] #class
desc = t[1] # description
words = words.union(s) #update dictionary with the new words in the description
entries.append((s,code))
t = readfile.readline()
train_set = classify.util.apply_features(document_features, entries[:train_length])
classifier = NaiveBayesClassifier.train(train_set) # Training

最佳答案

使用 nltk.classify.apply_features 返回一个对象,该对象的行为类似于列表,但不会将所有功能集存储在内存中。

从 nltk.classify 导入 apply_features

更多信息和示例 here

你无论如何都要将文件加载到内存中,你将需要使用某种形式的延迟加载方法。这将根据需要加载。考虑调查 this

关于python - Nltk 朴素贝叶斯分类器内存问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9723875/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com