我已经有大约300k个文档存储在Postgres数据库中,并且标记了主题类别(共有大约150个类别)。我还有另外150k文件还没有分类。我试图找到对它们进行编程分类的最佳方法。将文档分类为
我一直在探索NLTK及其朴素贝叶斯分类器。看起来像一个很好的起点(如果你可以提出一个更好的分类算法来完成这项任务,我就会全神贯注)。
我的问题是,我没有足够的RAM来一次训练所有150种类/ 300k文档的NaiveBayesClassifier(使用8GB的5个类别的培训)。此外,当我训练更多类别时,分类器的准确性似乎下降(2类为准确率为90%,5类为81%,10为61%)。
我应该一次只训练5个类别的分类器,并通过分类器运行所有150k文档以查看是否有匹配?看起来这样会起作用,除非会有很多误报,其中文档与任何类别都不匹配的文档只是因为它是可用的最佳匹配才会被分类器使用。只有在文档不适合任何类别的情况下,才能为分类器提供“以上都不是”选项?
这里是我的测试类http://gist.github.com/451880
也许一个在线/增量培训模式将解决记忆问题:http://en.wikipedia.org/wiki/Online_machine_learning – Amro 2010-06-25 20:45:11