String 完整和不完整(或缩写形式)字符串之间的字符串匹配

String 完整和不完整(或缩写形式)字符串之间的字符串匹配,string,algorithm,string-matching,String,Algorithm,String Matching,这个问题可能会被重复报道,但我做了大量的研究,并没有得到任何令人满意的结果,所以我认为最好我准确地问它 在我的项目中,我需要匹配地址字符串。我已经实现了几种字符串搜索算法,如Soundex、Levenshtein距离、Damerau–Levenshtein距离、模糊搜索、字符频率匹配等。但是在字符串之间的搜索结果变得不令人满意,如-St.和Street、Jr.和Junior等。我想用Street替换所有St,但这将在“圣保罗街”等地址引发问题。 我该怎么办?创建一个字符串距离字典。示例:距离('

这个问题可能会被重复报道,但我做了大量的研究,并没有得到任何令人满意的结果,所以我认为最好我准确地问它

在我的项目中,我需要匹配地址字符串。我已经实现了几种字符串搜索算法,如Soundex、Levenshtein距离、Damerau–Levenshtein距离、模糊搜索、字符频率匹配等。但是在字符串之间的搜索结果变得不令人满意,如-St.和Street、Jr.和Junior等。我想用Street替换所有St,但这将在“圣保罗街”等地址引发问题。
我该怎么办?

创建一个字符串距离字典。示例:距离('street','st')=0。创建这本词典需要一些培训数据。

只有在地址末尾用Street替换St.。这样不行,在“Second St.,some Area”这样的情况下,我在数据库中有很多这样的地址。无论如何,谢谢你,但是我需要一种更聪明的技术。看起来不错,但是不存在任何算法或技巧,或者可能预测长形式或进行匹配的东西。到目前为止,你的方法似乎是最好的,但我认为我应该寻找一种更聪明的方法,因为如果我遗漏了一些简短的形式,那么搜索就会不一致。你还是最后一个选择,谢谢你。更聪明的是发现“街”和“街”可能是等价的?这几乎是不可能的。但是,从数据中发现这种关系应该是可能的(取决于您如何巧妙地找到这种训练数据)。