你知道有什么好的算法可以匹配两个字符串,然后返回这两个字符串匹配的百分比吗?
还有一些也可以与数据库一起使用吗?
这取决于您的相似性标准。其他人已经向您推荐了 Levenstein 距离(编辑距离是一回事)。这通常非常好,而且肯定比 soundex 之类的更独立于语言。但是,请注意 Levenstein 差异不能很好地处理转置。因此:
Levenstein("copy", "cpoy") == 2
如果您尝试处理人工输入,则换位相当普遍。这是否是一个问题取决于您的相似性指标。
已经有一段时间了,但我相信 Postgresqllevenstein()
要么是内置的,要么可以作为contrib
C 模块使用。
我认为您正在寻找的问题称为Edit Distance。一般来说,计算成本很高,但如果您正在寻找其他字符串的编辑距离较小的字符串,那还不错。维基百科文章中有更多信息。
如何最好地匹配两个字符串?让他们出去喝咖啡,如果他们一拍即合,就吃晚饭和看电影。或者也许他们可以做一些对等编程?这取决于弦,真的。即使是咖啡也常常很棘手。
这会有帮助吗?我刚碰到它。比较两个字符串产生一个数字增量