Python 将Pickle文件组合成一个大型NLTK分类器

Python 将Pickle文件组合成一个大型NLTK分类器,python,optimization,nltk,Python,Optimization,Nltk,我知道如何简单地制作和加载一个pickle文件,我想做的是: 有一个NLTK朴素贝叶斯分类器,它由多个pickle文件组成。这可能吗?我想知道如何用分类器生成一个pickle文件,然后附加从其他训练数据中学到的更多东西,这样我就有了一个更大的pickle文件 主要原因是,虽然我的笔记本电脑花了大约2分钟的时间来训练一个大约3500篇文章的分类器,但要用这个分类器制作一个大的pickle文件却花了太长的时间。我想这是因为它占用了我90%以上的内存,我希望我可以分而治之,所以它不会一下子占用我所有的

我知道如何简单地制作和加载一个pickle文件,我想做的是: 有一个NLTK朴素贝叶斯分类器,它由多个pickle文件组成。这可能吗?我想知道如何用分类器生成一个pickle文件,然后附加从其他训练数据中学到的更多东西,这样我就有了一个更大的pickle文件

主要原因是,虽然我的笔记本电脑花了大约2分钟的时间来训练一个大约3500篇文章的分类器,但要用这个分类器制作一个大的pickle文件却花了太长的时间。我想这是因为它占用了我90%以上的内存,我希望我可以分而治之,所以它不会一下子占用我所有的内存。还是有更好的方法来训练大量文档?我是否需要实现自己的分类器或类似pickle的文件来实现这一点?还是有办法做到这一点

我曾尝试在一些变量上使用del,这些变量在酸洗之前就停止使用了,但这几乎无法释放这些变量占用的内存量

我正在使用Python2.7和64位windows 8上的Anaconoda


谢谢

您可能正在寻找的是一个在线分类器,它可以在不将所有训练数据保存在内存中的情况下进行部分训练,从我的快速浏览中,这似乎不是NLTK提供的任何东西。相反,我会推荐scikit learn中的一个分类器,它实现了部分拟合方法。

您可能需要研究一下。它可以很好地处理大数据,尤其是当它是Numpy格式时。@JimmyC谢谢!我以前从未做过并行编程,但我想我需要开始了!这不完全是我想要的,我只是想知道如何组合分类器,即使我不必并行地做,但我会研究它。@JimmyC用joblib.dump创建的文件可以附加到吗?或者是将对象拆分为单独的文件,以便在创建这些文件时不会同时使用过多的内存?因为这是我处理pickle文件的主要问题,它会占用我所有的RAM并且变得非常慢。。。另外,我没有真正使用numpy,只是使用nltk,所以它与python pickler相比真的更有益吗?我想我误解了你的问题。也许你真正想要的是一个在线分类器,它可以部分地进行训练,而不需要将所有的训练数据保存在内存中,从我的快速浏览来看,这似乎不是NLTK提供的任何东西。你能考虑一下ScKIT学习吗?是一个在线朴素贝叶斯实现。您正在寻找部分拟合方法。@JimmyC谢谢!这正是我需要的!如果你把它作为一个答案,我会记对的。