我正在寻找一种方法来检测基于共享字母的单词(文本字符串)的相似性。
我正在研究哈希函数,尤其是 Rabin-Karp 算法,以在较大的字符串中找到相似的单词。
但它不适用于我想要的情况: 在我的案例中,基于德国银行,我认为“相似”的词的三个例子: 有“德意志银行”、“邮政银行”和“Landesbank”。这三者的名字中都有“银行”一词,但只有德意志银行将其作为一个单独的词使用。 所以基本上是根据单词的共享字符来衡量单词的相似度。 我认为应该有一个限制,如果可能的话,应该只考虑 >=4 个字符的相似性。
如果我只是在寻找“银行”这个词,我会硬编码一些东西。但是我正在寻找一种方法来找到这些相似的名称/字符串,而无需一开始就知道它。
最佳答案
如果我错了请纠正我。根据您的问题,我了解到您需要找到所有具有某些共同点的字符串。
我们能否找到所有字符串之间的公共(public)子字符串。根据 Substring 的长度,我们可以给出一个分数。根据阈值,您可以决定字符串是否属于同一组。
关于根据字母查找相似词的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43071886/