0

我有一个 CSV 文件,其中包含 14000 行的问卷数据。问卷有 MCQ-Multiple Response(M10,M13)。对于 MCQ-MR,就像在 M13 中一样,有 8 个选项,如果受访者选择了某个选项,则表示为 1,否则表示为 0。我想为每个位串生成一个相似度分数,并将其替换为位串。分数应该以类似00010011和更相似的方式计算,因为受访者选择了相同的选项,除了第三和第四选择,因此与和00100011相比,得分必须更接近。0001001100000001

M10,M13
1111000100001000,00000001
101010000001000,00000001
111010000001000,00010011
110010000001100,00100011

线程提供了一些关于比较两个字符串之间的 Levenshtein 距离的见解。但是对于 14000 行,这将是巨大的计算负担。有没有其他方法可以做到这一点?

4

1 回答 1

2

Levenshtein 编辑距离不是您想要的。它认为 A=101010 和 B=010101 非常相似,因为您可以通过在开头添加 0 并在末尾删除 1 来将 A 变为 B。不过,您可能更愿意将它们视为最大程度的不同,因为它们在每个位置上都不同。

所以你想要的只是位串的对称差异。对两个位串执行按位异或运算并计算结果中的 1 位——每个位对应于两者之间不同的位。

于 2018-03-22T20:51:54.503 回答