我有一个数百万知名人士的名单(来自维基数据),我需要创建一个系统,可以在一个相当短的文本中有效地找到所有提到的人:它可以只是一个单词(例如。&#34 ;爱因斯坦")几页文本(例如维基百科页面)。
我需要系统能够相当容忍拼写错误(例如Mikael Jackson而不是Michael Jackson)和简短形式(例如M. Jackson)。如果含糊不清,它应该归还所有可能的人(例如,#34;乔治布什"应该返回父子,可能还有其他同音异义词)。
此related question有一些有趣的答案,包括使用Aho-Corasick algorithm。有许多语言的库,包括in Python。但是,它似乎不支持模糊搜索(即容忍拼写错误)。
我想我可以扩展词汇量以包含每个名称的所有可能的拼写,但这会使词汇量太大,所以我宁愿避免这种情况(如果可能的话)(此外,我可能希望将此解决方案扩展到超过只是人们在某一点上。)
我快速浏览了Lucene / ElasticSearch,但它似乎不支持这个用例(除非我错过了它)。
有什么想法吗?