0

我正在开发一个项目,该项目在其数据库中包含大量姓名和地址。名称如“John K Smith”和“Joe Smith”,地址为“20 Theroad avenue”或“1345 Myplace st”。

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

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

我正在寻找一种适用于姓名和地址的字符串匹配算法,此外还要考虑首字母缩略词、缩写形式和类似短语,例如“ave”与“avenue”或“mr”与“mr”。或“街道”与“大道”。

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

我认为也许一种具有自定义规范化功能的混合方法(对缩写/类似术语进行字符串替换)是可行的方法,但我还不确定。

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

在找到最合适的算法以高精度匹配名称和地址(误报数量最少)方面,我们将不胜感激。

4

0 回答 0