我有以下问题。我想在java中识别具有相似含义的字符串。我试图用Stringmetrics计算字符串之间的相似性。这按预期工作,但我需要更方便的东西。
例如,当我有以下 2 个字符串(1 个单词)时:
String s1 = "apple";
String s2 = "appel";
那么这两个字符串非常相似。当我使用余弦相似度时,我得到以下结果:
double score = cosine.compare(s1, s2); // 0.0
但是当我使用 damerau-levenshtein 相似性时,我得到以下结果:
double score = damerauLevenshtein.compare(s1, s2); // 0.8
下一个问题是单词有很多同义词。对于 Stringmetrics,这些同义词不被考虑。
例如,这两个字符串应该被认为是相同的:
String s3 = "purchase 10 bottles of water";
String s4 = "buy 10 waterbottles";
我希望你们能帮助我。