如何在Java中比较几乎相似的字符串?(字符串距离测量)[已关闭]
2022-09-01 01:51:42
我想比较两个字符串,并得到一些分数,这些字符串看起来有多相似。例如,“句子几乎相似”和“句子相似”。
我不熟悉Java中的现有方法,但对于PHP,我知道levenshtein函数。
Java中有更好的方法吗?
我想比较两个字符串,并得到一些分数,这些字符串看起来有多相似。例如,“句子几乎相似”和“句子相似”。
我不熟悉Java中的现有方法,但对于PHP,我知道levenshtein函数。
Java中有更好的方法吗?
以下Java库提供了多种比较算法(Levenshtein,Jaro Winkler,...):
这两个库都有一个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);
}