swift - 最佳字符串比较方法swift
问题描述
用于获得两个字符串之间的百分比相似度的最佳算法是什么。到目前为止,我一直在使用 Levenshtein,但这还不够。Levenshtein 给了我差异的数量,然后我必须尝试通过执行以下操作将其计算为相似性:
100 - (no.differences/no.characters_in_scnd_string * 100)
例如,如果我测试与 的相似"ab"
程度"abc"
,我得到大约 66% 的相似度,这是有道理的,与"ab"
2/3 相似"abc"
。
我遇到的问题是,当我测试"abcabc"
到时"abc"
,我得到 100% 的相似度,这"abc"
完全存在于"abcabc"
. 但是,我希望答案是 50%,因为 50%"abcabc"
与"abc"
...
我希望这是有道理的......第二个字符串是恒定的,我想测试不同字符串与该字符串的相似性。"cat dog"
相似,我"dog cat"
的意思是尽管词序不同,但相似度非常高。
有任何想法吗?
解决方案
这种算法的实现 Damerau–Levenshtein distance
和Levenshtein distance
你可以检查这个StringMetric
算法有你需要的