【问题标题】:Linking similar sums/problems in exam papers在试卷中链接相似的总和/问题
【发布时间】:2012-07-18 20:31:36
【问题描述】:

我正在开发一个应用程序,该应用程序正在根据旧试卷创建一个问题数据库。我想维护一个表格,在插入类似问题时将它们链接在一起。 (我想到的表是修改后的预排序遍历树)。

我的要求是:

  1. 数字变化的单词问题应该联系在一起
  2. 应将专有名词/名称不同的单词问题联系在一起。
  3. XYZ、ABC、PQR、MNO 是等价的(例如三角形命名法)
  4. 忽略标点符号和连词以及“小词”。
  5. 标签!我用它的主题标记每个问题。数学问题与历史问题相似的可能性很小。但化学热力学问题可能类似于物理热力学问题。

任何关于如何在算法方面进行的想法将不胜感激。

我还将处理包含数学符号的图像。我应该确保我所有的图像在“ALT”属性中都有 LaTeX,以确保它们可以被这个算法处理,还是有更好的方法?

【问题讨论】:

    标签: mysql algorithm data-mining related-content


    【解决方案1】:

    需要进行特征提取并阅读此内容。

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

    【讨论】:

    • +1 用于指向特征提取的指针 :) 我正在考虑研究一些问题以创建一组基本的“标签”,我可以从问题正文中自动检测到这些“标签”。然而,这将是一个非常漫长的过程。有没有办法创建我缺少的“自动学习”系统?
    【解决方案2】:

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

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

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

    1. 规范化问题文本。这是一个标准的信息检索任务,它对每个人的意义都略有不同,但是像折叠空格、将所有内容都变成小写和剥离标点符号这样的转换是典型的。您可能还想将所有数字或专有名称白名单转换为占位符(“NUMBER”、“NAME”等)
    2. 将生成的文本输入 simhash 实现以获取指纹。
    3. 在您的语料库中搜索足够靠近新指纹的指纹。这实际上比你想象的要有效地做起来要棘手。 Google came up with a reasonable approach,归根结底是一张经过排序的指纹表,其中添加了一些人造指纹。
    4. 找到插入的问题应该被视为相似的问题后,您可以随意丢弃重复的问题,坚持下去并记账等。

    这个book 是一般信息检索的优秀入门。这是simhash paper。这是计算 simhash 的简单程序的manpage,如果您不想自己实现该算法,这可能是一个很好的起点。

    【讨论】:

    • +1 表示“您可能还希望将所有数字或专有名称的白名单转换为占位符(“NUMBER”、“NAME”等)”和指向 simhashing 的指针 :)
    • 这可能会让我听起来完全白痴,但值得一试。我可以使用 Jaro-Winkler 距离比较这些散列以找到相似的散列吗?不过,效率似乎是一个大问题,正如dannykopping.com/blog/fuzzy-text-search-mysql-jaro-winkler 中指出的那样,我认为我必须添加某种索引来简化哈希匹配。但我想我现在似乎明白了:)
    • 您可以使用加权 Jaro-Winkler 来判断 simhash 距离。问题是哈希“0af”应该被认为比“0ff”更接近“0bf”,尽管两者都相差一个字符; JW 会认为这些是等距的(如果我没看错的话)。人们可以通过将散列保留为字符“0”和“1”的文本字符串来绕过它,在这种情况下,JW 会减少到汉明距离。但是我仍然建议在 simhashes 上保留一个索引/有序表并坚持使用二进制搜索。
    猜你喜欢
    • 2020-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-02
    • 1970-01-01
    • 1970-01-01
    • 2021-01-31
    • 1970-01-01
    相关资源
    最近更新 更多