0

我有一个我现在无法自己解决的问题。我的任务如下:我有各种文本和字符串数组。字符串数组可以包含单个单词或单词组合,如下所示:["apple", "orange fruit", "strawberry field", "ananas", "tomato plant"].

现在我需要扫描我的文本以查找数组中的元素并确定分数。如果一个文本包含许多字符串(或它们的组合),它应该比其他文本产生更大的分数。如果可能,结果还应该容忍拼写错误。

有人可以给我一个提示,解决这个问题的最佳方法是什么?有没有可以帮助解决这个问题的库?我编码的语言是Java。

提前谢谢你们。

4

1 回答 1

0

Gilbert Le Blanc 提到的 Soundex 算法的替代方法是使用Apache Commons Text 库中的LevenshteinDistance。它只是查看将一个字符序列更改为另一个字符序列所需的更改次数,并且使用起来非常简单。

要接受需要两个或更少字符更改才能相同的单词,您可以执行以下操作

LevenshteinDistance ld = new LevenshteinDistance(2);
if(ld.apply(string1, string2) < 0){
    //Do something, e.g. add to map
}
于 2021-10-05T13:07:51.337 回答