我有一个包含机构(大学、医院等)列表的大型数据库。机构名称来源不同,同一机构的拼写可能不同。例如,它们可能拼写错误,或者单词可以缩短(“uni”、“univ”或“university”)
给定一个我需要插入数据库的名称,是否有实用的方法来查找该机构是否已在数据库中?这不是一个研究项目,所以我正在寻找一个相当快的解决方案。
我正在使用 django 和 postgresql,但我想这无关紧要。
最佳答案
这是record linkage的问题.许多数据库为此提供了基本方法,例如字符级 n-gram 匹配,其中像“大学”这样的术语被扩展为
["uni", "niv", "ive", "ver", "ers", ...]
对于 n = 3。数据库将索引所有这样的 n-grams 并允许使用某种加权匹配进行搜索。 pg_trgm
似乎正是这样做的,试试吧。
关于python - 数据库中的近似搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7741082/