Skip to main content
 首页 » 编程设计

python之二进制文档分类

2025年05月04日15kerrycode

我知道这是一个非常模糊的问题,但我正在尝试找出进行文档分类的最佳方法。我有两套培训和测试。训练集是一组文档,每个文档都标记为 1 或 0。如果文档是信息摘要,则标记为 1,否则标记为 0。我正在尝试创建一个监督分类器。我无法决定使用哪个 nlp 工具包。我在想nltk。你有什么建议吗?我必须用 python 编写分类器。还有任何特定类型的分类器。我一直在做研究,但似乎得不到好的答案。

请您参考如下方法:

简短的回答是,这真的取决于。您还没有找到很好的资源的原因是,到目前为止,文档分类仍然是一个相对较新且知之甚少的领域。事情的真相是,有大量不同的分类器可能会起作用,而且真的不可能说哪个分类器最适合您的特定任务,而且它非常依赖于数据集。

我能给你的最好建议是,运行其中一个分类器通常有两个步骤。第一个是矢量化,它将您的文档放入固定长度的矢量表示中。最常见的是tfidf加权,在sklearn中实现得相当好。在此处找到特定文档:http://scikit-learn.org/stable/modules/feature_extraction.html#tfidf-term-weighting

将输入矢量化后,您需要选择分类器和准确度指标。至于分类器,我建议您只浏览显示的示例 here ,然后选择返回最佳准确度指标的指标。

就准确性指标而言,两个最简单的指标(也有许多非常复杂的替代方案)是简单的准确性和 AUC,两者都受 sklearn 支持。 AUC 是一个更强大的准确性版本,它对类不平衡更强大(如果所有示例都是 1,则为 99.9%,那么仅预测 1 的分类器不应该是最好的分类器)

这实际上是一个相当广泛的主题,需要涵盖的内容很多,但是如果您将一些 sklearn 函数粘合在一起,您应该能够很容易地得到一些可行的东西。