在内存中保存naivebayes分类器

2024-03-28 18:23:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我在NLTK和机器学习方面是新手。我使用Python和NLTK naivebayes分类器。我已经使用NLTK为文本分类创建了一个朴素的Bayes分类器,并将其保存在磁盘上。当需要对一些测试数据进行分类时,我还可以使用以下python代码加载它:

import pickle
f = open('classifier.pickle')
classifier = pickle.load(f)
f.close()

但我的问题是,每当有新的测试数据出现时,我必须一次又一次地将这个分类器加载到内存中,这需要花费大量的时间(2-3分钟)才能加载,因为它的大小很大。另外,如果我必须运行同一个情感分析程序的两个实例,这将使用双RAM,因为两个程序将分别加载这个分类器。我的问题是:是否有任何技术可以将这个分类器存储在内存中,以便情感分析程序在需要时可以直接从内存中读取它,还是有其他方法可以最小化分类器的加载时间。 提前谢谢你的帮助。在


Tags: 内存文本机器分类器时间分类pickle情感
1条回答
网友
1楼 · 发布于 2024-03-28 18:23:15

你不能两全其美。您可以一次只进行一个pickle/unpickle来使用更少的RAM,或者您可以将这两个都存储在内存中,使用两倍的RAM,但可以减少加载时间和磁盘i/o等待时间。在

这两个分类器是使用不同的训练数据训练的,还是并行使用同一个分类器?从“两个实例”的用法来看,这听起来像是后者,在这种情况下,您可能需要研究线程,以允许同一个分类器处理两组数据(可以通过对一些数据进行分类,然后执行诸如结果处理之类的其他工作来实现某些并行性,从而允许另一个线程进行分类、重复)。在

我在这方面的专业知识来自于我启动了一个基于NLTK的开源情绪分析系统:https://bitbucket.org/tommyjcarpenter/evopminer。在

相关问题 更多 >