在试卷中链接类似的总和/问题

时间:2012-07-19 15:48:09

标签: mysql algorithm data-mining related-content

我正在开发一个应用程序,该应用程序正在创建旧问题文件中的问题数据库。我想维护一个表,在插入时将类似的问题链接在一起。 (我想到的表是一个修改的预订遍历树)。

我的要求是:

  1. 更改号码的单词问题应该链接在一起
  2. 专有名词/名称不同的单词问题应该链接在一起。
  3. XYZ,ABC,PQR,MNO是等价的(例如三角形命名法)
  4. 忽略标点符号和连词以及'小词'。
  5. 标签!我用它的主题标记每个问题。数学问题与历史问题类似的可能性很少见。但化学热力学问题可能类似于物理热力学问题。
  6. 关于如何继续进行算法方面的任何想法都将非常感激。

    此外,我将处理包含数学符号的图像。我是否应该确保我的所有图像都在“ALT”属性中具有LaTeX,以确保它们可以通过此算法进行处理,或者是否有更好的方法可以执行此操作?

2 个答案:

答案 0 :(得分:2)

需要进行功能提取并阅读此内容。

数据挖掘的关键是预处理。您不能只是将硬盘扔到它上面并期望它找到任何有用的东西,但您需要通过适当地预处理数据来指导搜索。这可能是90%的工作。所以阅读特征提取!

答案 1 :(得分:2)

听起来你想要考虑两个问题,当它们具有相同的句子结构时,在删除你希望改变的句法模式的清单之后是相似的。因此,这个问题看起来类似于在语料库中检测近似重复文档的问题。

这样做的一种方法是称为“simhashing”的技术;一个人获取(预处理)文档并计算simhash指纹。像典型的哈希一样,指纹具有固定的大小,看起来像二进制乱码。 典型的哈希不同,文本相似的文档也会有类似的指纹。通过选择指纹可以区别的最大(汉明)距离,您可以定义您认为“相似”的文档(问题)集群。

索引新问题的过程如下所示:

  1. 规范化问题文本。这是一个标准的信息检索任务,它对每个人来说意味着略有不同,但转换如崩溃空白,将所有内容放在小写和剥离标点符号中都是典型的。您可能还想将所有数字或白名单中的专有名称转换为占位符(“NUMBER”,“NAME”等)
  2. 将生成的文本输入simhash实现以获取指纹。
  3. 在您的语料库中搜索足够接近新指纹的指纹。这实际上比您想象的更有效。 Google came up with a reasonable approach,归结为一个已分类的指纹表,其中添加了一些人造指纹。
  4. 找到插入的问题应该被认为是类似的,你可以免费丢弃重复的问题,坚持下去并做簿记等。
  5. 这篇book是一般信息检索的优秀入门读物。这是simhash paper。这是计算simhashes的简单程序的manpage,如果你不想自己实现算法,这可能是一个很好的起点。