我在NLTK和机器学习方面是新手。我使用Python和NLTK naivebayes分类器。我已经使用NLTK为文本分类创建了一个朴素的Bayes分类器,并将其保存在磁盘上。当需要对一些测试数据进行分类时,我还可以使用以下python代码加载它:
import pickle
f = open('classifier.pickle')
classifier = pickle.load(f)
f.close()
但我的问题是,每当有新的测试数据出现时,我必须一次又一次地将这个分类器加载到内存中,这需要花费大量的时间(2-3分钟)才能加载,因为它的大小很大。另外,如果我必须运行同一个情感分析程序的两个实例,这将使用双RAM,因为两个程序将分别加载这个分类器。我的问题是:是否有任何技术可以将这个分类器存储在内存中,以便情感分析程序在需要时可以直接从内存中读取它,还是有其他方法可以最小化分类器的加载时间。 提前谢谢你的帮助。在
你不能两全其美。您可以一次只进行一个pickle/unpickle来使用更少的RAM,或者您可以将这两个都存储在内存中,使用两倍的RAM,但可以减少加载时间和磁盘i/o等待时间。在
这两个分类器是使用不同的训练数据训练的,还是并行使用同一个分类器?从“两个实例”的用法来看,这听起来像是后者,在这种情况下,您可能需要研究线程,以允许同一个分类器处理两组数据(可以通过对一些数据进行分类,然后执行诸如结果处理之类的其他工作来实现某些并行性,从而允许另一个线程进行分类、重复)。在
我在这方面的专业知识来自于我启动了一个基于NLTK的开源情绪分析系统:https://bitbucket.org/tommyjcarpenter/evopminer。在
相关问题 更多 >
编程相关推荐