是否有一个有效的实现来量化两个字符串之间的相似性?

时间:2014-04-30 07:17:16

标签: java string levenshtein-distance

让我们说我有几个很长的字符串,由完全随机的字符组成。我的目标是将它们的相似性表示为数字中一个指定的主字符串。

例如:12345非常相似23456,但与12abcdef不太相似

假设Java,这种算法是否已经有效实现? 例如,我认为这可能会做我想要的:https://en.wikipedia.org/wiki/Levenshtein_distance 但我需要一些非常有效的超长弦乐。

4 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

我不确定是否有java实现,但你可以在这里找到算法的实现:

http://en.wikibooks.org/wiki/Algorithm_Implementation/Strings/Levenshtein_distance#Java

祝你好运:)

答案 2 :(得分:1)

不幸的是,“高效”是不可思议的。效率如何?时间 ?记忆?并考虑相似性度量的“质量”?

首先问问自己你想要什么相似性,出于什么目的,允许哪种排列/替换等等,然后你将能够搜索一个“* -efficient”算法来计算适合你的指标。需要

您可以从this paperthis post开始查看差异,或在Google上搜索“字符串相似性指标”。

答案 3 :(得分:0)

谷歌搜索似乎为您提供了许多潜在的解决方案。例如,您可以尝试这个:

https://github.com/joewandy/BioinfoApp/blob/master/src/com/joewandy/bioinfoapp/model/stringDistance/LevenshteinDistance.java