查找将文档分类为可打印或不可打印的功能

时间:2014-09-02 18:54:10

标签: machine-learning classification nltk feature-extraction feature-selection

我想对文档(.txt,.pdf,.jpeg,.img等)进行二元分类,分为两类:可打印和不可打印。基本上我们的学校为俱乐部提供免费的打印服务,但事实是许多俱乐部滥用免费打印并最终打印他们的家庭作业,纸张等,这相当于数千美元的墨水和纸张。因此,我们想采取一些无监督的方法来帮助限制这一点,方法是确定文件是否很可能与俱乐部无关(例如生物物理学论文,没有生物物理学俱乐部!)。

所以这是一个非常简单的二进制分类问题。我不是在寻找低级别的实现细节或者我应该使用哪种ML算法,而是我应该如何发现将被提供给培训的相关功能等。

我的第一个想法是收集学生在图书馆打印的所有文件。我们的想法是,如果您有真正的俱乐部印刷,您可以在俱乐部印刷中心免费进行,而不是在图书馆付费。这将是一个庞大的数据集,假设在图书馆打印的每个文档都分配了不可打印/俱乐部材料类别。不幸的是,由于隐私问题,学校非常自由并反对允许这样做,因此如果没有法律风险,它就不是一个真正的选择。

一个类似的选择是收集与课程/学校工作相关的文件,例如:课程syllabi,在线提供课程文件(家庭作业,论文等),并对这些文件进行特征提取/选择。假设学生会滥用印刷来普遍印刷与他们研究相关的材料。

虽然对于基于.pdf和.txt的文档,这种方法应该具有合理的性能,但我不知道如何对基于图像的文档进行分类,除了可能使用文档的标题和其他元数据。一个聪明的违规者可以简单地将他们的所有文本文档转换为图像格式以绕过这个系统。但是,这超出了本问题的范围,应该保存以用于未来的问题/研究。目前,范围只是基于文本的文档。

请注意,之前有关于此类主题的问题,但我的非常具体,我相信这可能会带来像电影评论分类可能不必面对的挑战。

2 个答案:

答案 0 :(得分:0)

我只想发表评论,但结果比我想象的要长。

虽然这是一个有趣的问题,但我不确定ML能否轻松满足您的需求。

首先,您的分类问题属于A vs the World类型,而A并未严格定义。除非你确切知道俱乐部印刷的是什么类型的东西,否则你可以说新材料属于或不属于那个类别。

当您需要组装足够大的训练集以便能够覆盖任何可以打印或不能打印的内容时,这将证明特别困难。这样的任务将是非常繁琐的,正如你所说,你无法访问俱乐部通常打印的内容,所以最多你的训练集会有很大的不平衡。

由于目标是使系统自动化(我的意思是,无论如何都要进行人工干预,检查打印的内容比制作ML算法更快,这将提供人类将拥有的分数无论如何要进行调查)误报和漏报的数量也会有问题。有些情况下,俱乐部无法打印出他们有权利的东西。

正如您所说,您可以通过对Course MaterialNot Course Material进行分类来大大简化问题。为此我会看向BoW,因为在论文或课程材料(一切远程技术)中,某些词比其他词更为明显。单词的数量以及文件的整体大小看起来像是要提取的明智的东西。结构通常也是特别的:提取这样的东西可能是个好主意:"少于x个单词的行数","每页的行数",&#34 ;图片数量" (如果那是你可以从文件中提取的东西),......

对于图片来说,要检查的主要事情是,如果这是扫描某些东西(通常他们会扫描并打印与我相关的课程相关的东西),因为图像的格式已经是一个很好的指示,但我不会这样做。看其他特别相关的事情"当然相关"。

所以对我来说,如果你真的无法真正定义你的两个课程中的一个,那就不要进行分类,或者将问题简化为你可以真正定义的东西(课程相关的东西)。

答案 1 :(得分:0)

如果您能够编制不允许学生打印的文档“黑名单”,则可以实施多层拒绝机制。

我建议这3个级别:

  1. 将他们想要打印的文件的md5与黑名单文件的所有md5数据库进行比较。
  2. 如果1)通过,则比较重复1)但是在页面级别,而不是在文档级别(可能他们只想打印几页而不是整个文档)。
  3. 如果2)通过,您可以使用图像相似性方法(如SSIM)将要打印的页面与黑名单文档文档的页面进行比较。如果您在要打印的页面之间获得高分并且不打印其中一个黑名单项,则相应地更新您的md5数据库。
  4. 如果3)通过:print!
  5. 关于SSIM的一些说法:这种方法对噪音非常强大,所以即使是一个聪明的学生也会在图像中添加某些东西 但是:

    • 您必须找到从页面和文档数据库中提取感兴趣区域(ROI)的正确方法(如果两个ROI位于页面的两个不同区域,SSIM将为负数)
    • SSIM可能会很慢!这里肯定需要C实现。
    • 我认为SSIM不是旋转不变的,因此如果他们将页面颠倒打印(除非您有一种智能的方式来旋转页面),检查将会失败。