合并Pickle文件以创建一个大NLTK分类器

0 投票
1 回答
744 浏览
提问于 2025-04-18 17:01

我知道怎么简单地创建和加载一个pickle文件,但我想做的是:有一个NLTK的朴素贝叶斯分类器,它是由多个pickle文件组成的。这可能吗?我想知道怎么把这个分类器做成一个pickle文件,然后再把从其他训练数据学到的东西添加进去,这样我就能拥有一个更大的pickle文件。

主要原因是,我的电脑大约需要2分钟来训练一个包含3500篇文章的分类器,但要把这个分类器做成一个大pickle文件却花了太长时间。我觉得这可能是因为在那个时候我的内存使用超过了90%。我希望能通过分而治之的方式来处理,这样就不会一次性占用我所有的内存。或者有没有更好的方法来处理大量文档的训练?我需要自己实现一个分类器或者类似pickle的文件来做到这一点吗?还是说有其他方法可以实现这个目标?

我试过在pickle之前用del()删除一些我不再使用的变量,但这几乎没有释放出那些变量占用的内存。

我使用的是Windows 8 64位的Anaconda下的Python 2.7。

谢谢!

1 个回答

0

你可能在寻找一种在线分类器,它可以在不把所有训练数据都放在内存里的情况下进行部分训练。根据我快速的观察,NLTK似乎没有提供这样的功能。相反,我建议你使用scikit-learn中的某个分类器,它实现了partial_fit方法,比如这个适用于多模态模型的朴素贝叶斯分类器

撰写回答