数据库
首页 > 数据库> > mysql-在考试卷中链接类似的总和/问题

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

作者:互联网

我正在开发一个应用程序,该应用程序从旧的试卷创建问题数据库.我想维护一张表格,将插入的类似问题联系在一起. (我想到的表是一个修改过的预排序遍历树).

我的要求是:

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

对于如何在算法方面进行的任何构想,将不胜感激.

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

解决方法:

听起来好像您想在两个句子具有相同句子结构的情况下考虑两个相似的问题,然后删除了您希望变化的句法模式清单.这样,此问题看起来类似于在语料库中检测几乎重复的文档的问题.

一种实现方法是称为“ simhashing”的技术.一个拿一个(预处理过的)文件并计算一个辛哈什指纹.像典型的哈希一样,指纹具有固定的大小,看起来像乱码.与典型的哈希不同,文本相似的文档也将具有相似的指纹.通过选择指纹可能相差的最大(汉明)距离,可以定义认为“相似”的文档(问题)簇.

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

>规范问题文本.这是一个标准的信息检索任务,对每个人来说意味着稍微不同的事情,但是诸如折叠空白,将所有内容都变为小写和剥离标点的转换是典型的.您可能还希望将所有数字或专有名称白名单转换为占位符(“ NUMBER”,“ NAME”等)
>将结果文本输入simhash实现中以获取指纹.
>在您的语料库中寻找足够靠近新指纹的指纹.实际上,这比您想像的要有效地棘手. Google came up with a reasonable approach,归结为一个分类的指纹表,并添加了一些人工指纹.
>找到插入的问题应视为相似的问题后,您可以随意丢弃重复的问题,继续进行并进行簿记等.

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

标签:data-mining,mysql,algorithm,related-content
来源: https://codeday.me/bug/20191101/1980848.html