我遇到以下问题。我想在java中识别具有相似含义的字符串。 我试图计算与Stringmetrics之间的字符串之间的相似性。 这个按预期工作,但我需要更方便的东西。在java中识别具有相同含义的字符串
例如,当我有以下2个字符串(1个字):
String s1 = "apple";
String s2 = "appel";
那么那些2个字符串是非常相似的。当我使用余弦相似,然后我得到以下结果:
double score = cosine.compare(s1, s2); // 0.0
但是当我使用damerau - 莱文斯坦相似,我得到以下结果:
double score = damerauLevenshtein.compare(s1, s2); // 0.8
接下来的问题是,有很多词的同义词。使用Stringmetrics时,不考虑这些同义词。
例如这两个字符串应该被认为是相同的:
String s3 = "purchase 10 bottles of water";
String s4 = "buy 10 waterbottles";
我希望你们能帮助我。
非常广泛。这是一种KI – Jens
我不认为你把握这种东西的复杂性;) –
哦,这很简单。你只需要5万亿个if语句。随意将完成的代码发布到Code Review。 – Michael