首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将文档分类为多个类别

将文档分类为多个类别
EN

Stack Overflow用户
提问于 2010-06-25 03:56:42
回答 3查看 13.9K关注 0票数 33

我在Postgres数据库中存储了大约30万个文档,这些文档带有主题类别(总共大约有150个类别)。我还有另外15万个还没有分类的文档。我正在尝试找到对它们进行程序化分类的最佳方法。

我一直在探索NLTK及其朴素的贝叶斯分类器。这似乎是一个很好的起点(如果你能为这项任务提出一个更好的分类算法,我洗耳恭听)。

我的问题是,我没有足够的内存来一次训练所有150个categoies/300k文档上的NaiveBayesClassifier (5个类别的训练使用8 8GB)。此外,随着我对更多类别的训练,分类器的准确性似乎会下降(2个类别的准确率为90%,5个类别的准确率为81%,10个类别的准确率为61% )。

我应该一次只训练5个类别的分类器,然后通过分类器运行所有15万个文档,看看是否有匹配的文档?这似乎是可行的,只是会有很多误报,那些与任何类别都不匹配的文档会被分类器硬塞进去,因为它是可用的最佳匹配……有没有办法让分类器有一个“以上都不是”的选项,以防文档不适合任何类别?

下面是我的测试类http://gist.github.com/451880

EN

Stack Overflow用户

发布于 2010-06-25 04:42:56

有没有办法在文档不属于任何类别的情况下,为分类器提供“不属于上述任何一项”的选项?

你可以通过每次训练一个“以上都不是”的伪类来达到这个效果。如果你可以训练的最大值是5个类别(尽管我不知道为什么它会消耗这么多的RAM),那么训练4个实际的类别,每个类别实际有2K个文档,还有一个“上面没有”的类别,它的2K文档是从所有其他146个类别中随机抽取的(如果你想要“分层抽样”的方法,可能会更合理,每个类别大约13-14个)。

仍然感觉有点笨拙,使用完全不同的方法可能会更好--找到一个多维文档度量标准,将300K预先标记的文档定义为150个合理可分的集群,然后将其他每个尚未标记的文档分配到确定的适当集群中。我不认为NLTK有任何直接可用的东西来支持这种事情,但是,嘿,NLTK发展得如此之快,以至于我很可能错过了一些东西…;-)

票数 2
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3113428

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档