我想比较两个字符串并得到一些分数,它们看起来有多相似。 例如“句子很相似”和“句子很相似”。
我不熟悉 Java 中的现有方法,但对于 PHP,我知道 levenshtein function .
Java中有更好的方法吗?
最佳答案
以下 Java 库提供多种比较算法(Levenshtein、Jaro Winkler、...):
- Apache Commons Lang 3:https://commons.apache.org/proper/commons-lang/
- Simmetrics:http://sourceforge.net/projects/simmetrics/
这两个库都有一个 java 文档(Apache Commons Lang Javadoc,Simmetrics Javadoc)。
//Usage of Apache Commons Lang 3
import org.apache.commons.lang3.StringUtils;
public double compareStrings(String stringA, String stringB) {
return StringUtils.getJaroWinklerDistance(stringA, stringB);
}
//Usage of Simmetrics
import uk.ac.shef.wit.simmetrics.similaritymetrics.JaroWinkler
public double compareStrings(String stringA, String stringB) {
JaroWinkler algorithm = new JaroWinkler();
return algorithm.getSimilarity(stringA, stringB);
}
关于java - 如何比较Java中几乎相似的字符串? (字符串距离测量),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2084730/