文档分类问题

数据挖掘 Python scikit-学习 nltk gensim
2021-10-16 04:42:32

总的来说,我对数据科学非常陌生,并且面临着巨大的挑战。

我的组织有很多按文档类型排序的文档(不是二进制格式,而是基于内容的主观分配类型,例如“合同”、“收据”、“声明”等)。

一般来说,这些类型的分配是在收到文件后完成的,这不是一个挑战,尽管我们希望消除这种分类的人为因素。同样,有时我们想要识别特殊属性,例如“显示使用的声明”。到目前为止,这完全是通过人工干预来完成的。

我是一名 python 程序员,一直在寻找从这些文档(所有 PDF、所有 OCR 和可搜索)中提取文本并运行分析的工具。研究使我关注了 NLTK、scikit-learn 和 gensim 等标准库。但我正在努力确定对新收到的文件进行分类的最佳方法。

我的研究引导我走上几条路……一个是基于当前语料库的采样创建一个 Tf-iDf 矢量模型,然后为传入文档的语料库创建一个模型,并对现有模型进行朴素贝叶斯分析以辨别哪个基于最高概率的传入文档所属的类别。问题1:这是对的吗?如果是这样,那么问题 2 就变成了实现这一目标的正确程序化方法是什么?

我提出这个问题的原因是因为我发现的大多数教程似乎都倾向于对文本语料库进行二元识别(正面与负面,垃圾邮件与火腿)。我确实看到 scikit-learn 有关于多标签分类的信息,但我不确定我是否走上了正确的道路。“分类”一词在文档分析中的含义似乎与我想要的含义不同。

如果这个问题太模糊,请告诉我,我可以将其编辑得更具体。

1个回答

除了 OCR 部分,正确的捆绑包是pandasand sklearn

您可以查看这个使用 TfidfVectorizer 和 SVC 分类器的ipython 笔记本。

此分类器可以进行一对一或一对一的多类预测,如果您使用该predict_proba方法而不是predict,您将获得每个类别的置信度。

如果您正在寻找性能并且不需要预测置信水平,则应该使用LinearSVC更快的方法。

Sklearn 有很好的文档记录,您会找到文本分类所需的一切。