- 主题:如何快速找出相似度最高的数据
需求是这样:
数据库中有数千万条数据,每条数据有4个特征值,外部任意输入4个特征值,如何快速找到匹配度最高的那一条。
如:
数据库中有
a1 b1 c1 d1
a2 b2 c1 d2
输入:a1 b2 c1 d2
得出:与第一条数据只有2个相同(a1 c1),与第二个有3条相同(b2 c1 d2)。第二条数据为匹配度最高的结果。
--
FROM 113.200.76.*
这不可行。排列组合,一共有十几种情况了。万一将来特征值变成5个,6个,那查询次数更多了。
【 在 zjzf 的大作中提到: 】
: 匹配4个、3个、2个、1个,依次检索一遍
: 匹配中了就终止
: 总共也没检索几次
--
FROM 113.200.76.*
这个方案有误差的。
比如数据库有这样的值
aaa bb cc dd
abb ba cc dd
如果输入一个
bbb bb cc dd
按需求,第1个是正确值,但是按编辑距离的话,第二个才是合理值。
【 在 pyl720 的大作中提到: 】
: 不带距离权重的直接用 Levenshtein 距离
: 如果python的话直接用fuzzywuzzy库
--
FROM 222.91.149.*