我应该尝试哪些算法来尝试对这些PDF进行分类?

时间:2012-06-24 17:51:07

标签: ruby algorithm classification

我们正在抓取并下载大量公司的PDF并试图挑选出年度报告。这些报告可以从大多数公司的投资者关系页面下载。

扫描PDF并使用以下内容填充数据库:

  • 标题
  • 内容(全文)
  • 页数
  • 字数
  • 取向
  • 第一行

使用这些数据我们正在检查明显的短语,例如:

  • 年度报告
  • 财务报表
  • 季度报告
  • 中期报告

然后记录这些短语和其他的频率。到目前为止,我们有大约350,000个PDF扫描和一套4,000个文档,这些文档已被手动归类为报告或不报告。

我们正在尝试许多不同的方法,包括贝叶斯分类器和加权可用的不同因素。我们正在Ruby中构建分类器。我的问题是:如果你正在考虑这个问题,你会从哪里开始?

2 个答案:

答案 0 :(得分:4)

您应首先尝试快速和基本的方法来形成基线,这可能足以满足您的目的。这是一种这样的方法:

扫描所有pdf并形成词汇表,该词汇表是任何文档中出现的所有单词的编号列表。

通过计算每个单词的单词频率(所有单词,不要用手挑选它们),从每个文档的词汇表中创建一个特征向量。文档j的特征i是单词i出现在文档j中的次数。

然后通过单词重要性对要素进行取幂,这与单词在所有文档中出现的频率相反。 (即,所有文件中出现的单词越频繁(例如“the”),它所包含的信息就越少。)

然后使用无监督的聚类算法(如k-means)来聚类文档。您通过随机放置k个集群质心进行初始化,将最近的文档分配给它们,然后将质心移动到分配给它们的文档的平均值,然后重复最后两个步骤直到收敛。

然后使用一些标记为示例的示例找到包含年度报告的群集。

使用交叉验证集调整集群数,直到交叉验证集的精度为高。

然后最终测试一个坚持的测试集。如果这个低了又回来了。

答案 1 :(得分:1)

几年前我的论文中我做了类似的事情,但有数字化的演讲幻灯片和试卷。我遇到的最好的书之一是对搜索引擎,搜索算法以及确定搜索效果的广泛概述:

搜索引擎:实践中的信息检索,W。Bruce Croft,Donald Metzler,Trevor Strohman

发布商网站上有一些示例章节会告诉您这本书是否适合您:pearsonhighered.com

希望有所帮助。