String 适用于名称和地址的近似字符串匹配算法

String 适用于名称和地址的近似字符串匹配算法,string,string-matching,edit-distance,String,String Matching,Edit Distance,我正在从事一个项目,该项目的数据库中包含大量的名称和地址。姓名如“约翰·史密斯”和“乔·史密斯”,地址如“Theroad avenue 20号”或“Myplace st.1345号” 在这个项目中,一旦用户X进入网站,他们将输入名称和地址以及其他详细信息;输入的名称和地址将与数据库中已有的名称和地址进行检查。如果输入的名称和地址与用户X的数据库中存在的名称和地址足够相似,则授予访问权限 我需要执行近似的字符串匹配,以使登录更加方便,而不是精确的字符串匹配。(我知道这是一场安全音乐会,但也有完全匹

我正在从事一个项目,该项目的数据库中包含大量的名称和地址。姓名如“约翰·史密斯”和“乔·史密斯”,地址如“Theroad avenue 20号”或“Myplace st.1345号”

在这个项目中,一旦用户X进入网站,他们将输入名称和地址以及其他详细信息;输入的名称和地址将与数据库中已有的名称和地址进行检查。如果输入的名称和地址与用户X的数据库中存在的名称和地址足够相似,则授予访问权限

我需要执行近似的字符串匹配,以使登录更加方便,而不是精确的字符串匹配。(我知道这是一场安全音乐会,但也有完全匹配的用户名/通行证)

我正在寻找一种适合姓名和地址的字符串匹配算法,此外还要考虑缩写词、简短形式和类似短语,如“ave”与“avenue”或“mr”与“mr”或“street”与“avenue”

到目前为止,我已经研究了编辑距离、jarowinkler、ngram(qgram)、余弦相似性和语音方法

我认为也许可以采用一种带有自定义规范化函数的混合方法(用字符串替换短格式/类似术语),但我还不能确定

这个项目最终应该与其他语言(西班牙语和法语)合作,这可能意味着更多的自定义文本替换


在寻找最合适的算法以高精度(以最少的误报次数)匹配姓名和地址方面,任何帮助都是值得赞赏的