用于获得两个字符串之间的百分比相似性的最佳算法是什么.到目前为止,我一直在使用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”相同……
我希望这有点意义……第二个字符串是常量,我想测试不同字符串的类似字符串.类似地,我的意思是“猫狗”和“狗猫”具有极高的相似性,尽管词序不同.
有任何想法吗?
解决方法
这是damerau-Levenshtein距离和Levenshtein距离算法的实现
你可以检查这个StringMetric算法你有什么需要
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。