首页 > 解决方案 > 最佳字符串比较方法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"的意思是尽管词序不同,但相似度非常高。

有任何想法吗?

标签: swiftstringsimilarity

解决方案


这种算法的实现 Damerau–Levenshtein distanceLevenshtein distance

你可以检查这个StringMetric算法有你需要的

https://github.com/autozimu/StringMetric.swift


推荐阅读