如何对PDF原始数据进行K-Means聚类

我想根据PDF文档的结构进行聚类,而不仅仅是文本内容。

仅使用文本的方法的主要问题是,它会丢失文档是否具有PDF表单结构的信息,或者它只是一个普通文档,还是包含图片?

对于我们进一步的处理,这些信息是最重要的。我的主要目标是能够根据文档的主要结构对其进行分类,而不仅仅是文本内容。

要分类的文档存储在SQL数据库中,格式为byte[] (varbinary),所以我的想法是使用这些原始数据进行分类,而无需先进行文本转换。

因为当我查看这些数据的十六进制输出时,我可以看到重复的结构,这些结构似乎与我想分离的不同文档类别相似。你可以在我的附件截图中看到一些相似的字节模式作为第一印象。

所以我的想法是训练一个K-Means模型,例如使用十六进制输出字符串。下一步我会尝试用肘部法找到最佳的聚类数量,应该在350到500之间。

PDF数据的大小在20 kByte到5 MB之间,大多数在150 kBytes左右。为了训练模型,我有超过30,000份文档。

当我研究这个问题时,结果很少。我只找到了这篇文章,这让我对解决我的任务的最佳方法感到不确定。https://www.ibm.com/support/pages/clustering-binary-data-k-means-should-be-avoided

我的问题是:

  • K-Means是最适合我的目标的算法吗?
  • 你会推荐哪种方法?
  • 如何规范化或转换数据以获得最佳结果?

原始数据截图


回答:

正如评论中的Ian所说,使用原始数据似乎是个坏主意。

经过进一步的研究,我找到了最好的解决方案,即首先读取PDF文件的结构,例如使用这样的方法:

https://github.com/Uzi-Granot/PdfFileAnaylyzer

我用这些信息规范化并聚类了数据,取得了不错的结果。

Related Posts

如何对SVC进行超参数调优?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

如何在初始训练后向模型添加训练数据?

我想在我的scikit-learn模型已经训练完成后再…

使用Google Cloud Function并行运行带有不同用户参数的相同训练作业

我正在寻找一种方法来并行运行带有不同用户参数的相同训练…

加载Keras模型,TypeError: ‘module’ object is not callable

我已经在StackOverflow上搜索并阅读了文档,…

在计算KNN填补方法中特定列中NaN值的”距离平均值”时

当我从头开始实现KNN填补方法来处理缺失数据时,我遇到…

使用巨大的S3 CSV文件或直接从预处理的关系型或NoSQL数据库获取数据的机器学习训练/测试工作

已关闭。此问题需要更多细节或更清晰的说明。目前不接受回…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注