我正在寻找一种简单的方法(UDF?)来建立字符串之间的相似性。 SOUNDEX
和DIFFERENCE
功能似乎无法完成任务。
相似性应基于共同的字符数(订单事项)。
例如:
Spiruroidea sp。 AM-2008
和
Spiruroidea gen。 SP。 AM-2008
应该被认为是相似的。
非常感谢任何指针。
感谢。
基督教
答案 0 :(得分:8)
您可能需要考虑将Levenshtein Distance算法实现为UDF,以便它返回需要在字符串A上执行的操作数,以使其成为字符串B.这通常是指作为edit distance。
然后,您可以将Levenshtein距离函数的结果与固定阈值或字符串A或字符串B的百分比长度进行比较。
您只需按以下方式使用它:
WHERE LEVENSHTEIN(Field_A, Field_B) < 4;
您可能需要查看以下针对SQL Server的Levenshtein Distance实现:
答案 1 :(得分:1)
这些事情并非微不足道,你应该提供更多的例子。
正如Daniel levenshtein提到的那样,距离是一种方法,但是对于你的例子,你可能想要预先处理字符串,如果你知道你可以安全地删除某些单词 - 例如,从你的例子中可以看出这个单词根。可以放弃。
levenshtein距离将考虑任何四个字母而不是gen。和gen一样。这可能不是你想要的。
此外,如果您的数据集来自不同的数据源,您可以考虑构建同义词词典并调查您域的现有标准分类法。也许比如this?