首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将试卷中类似的总数/问题联系起来

将试卷中类似的总数/问题联系起来
EN

Stack Overflow用户
提问于 2012-07-19 15:48:09
回答 2查看 227关注 0票数 3

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

我的要求是:

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

任何关于如何在算法方面进行操作的想法都是非常感谢的。

此外,我将处理包含数学符号的图像。我应该确保我的所有图像都在'ALT‘属性中有LaTeX,以确保它们被这个算法处理得太过容易,还是有更好的方法来实现呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-20 07:18:56

听起来,当两个问题具有相同的句子结构时,你想要考虑两个问题的相似之处,在剔除了一系列你期望变化的句法模式之后。因此,这个问题看起来类似于在语料库中检测接近重复的文档的问题。

这样做的一种方法是一种称为“simhash”的技术;一种是获取(预处理)文档并计算simhash指纹。就像一个典型的散列,指纹有一个固定的大小,看起来像二进制胡言乱语。与典型的散列不同,文本相似的文档也会有相似的指纹。通过选择指纹可能不同的最大距离(Hamming),您可以定义您认为“相似”的文档(问题)集群。

然后,新问题的索引过程将如下所示:

  1. 规范问题文本。这是一个标准的信息检索任务,对每个人来说都意味着稍微不同的东西,但是像折叠空格、把所有东西放在小写和去掉标点符号这样的转换都是典型的。您还可能希望将所有数字或适当名称的白色列表转换为位置持有者(“数字”、“名称”等)。
  2. 将结果文本输入simhash实现以获取指纹。
  3. 在你的语料库中寻找足够接近新指纹的指纹。实际上,这比你想要有效地完成任务要复杂得多。谷歌想出了一个合理的方法,它可以归结为一个排序表的手指指纹加上几个人造指纹。
  4. 找到了插入的问题应该被认为类似,你是自由的,放弃重复的问题,抓住它,做簿记,等等。

这个是一般信息检索的一个很好的入门。这是模拟纸。下面是一个计算simhashes的简单程序的命令页,如果您不想自己实现这个算法,这可能是一个很好的起点。

票数 2
EN

Stack Overflow用户

发布于 2012-07-20 06:41:55

你需要做的特征提取和阅读这一点。

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11564527

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档