Database 段落中多词短语的模糊匹配算法
首先,我不是在寻找实际的模糊匹配算法。我们同时使用了Dice系数和Levenshtein距离。我正在寻找最聪明的方法来利用这些算法 目标: 我试图在文本的一段中,按照城市名称出现的顺序来检测城市名称。我们有大约100万个地点名称的列表。我想搜索一段文字,并检测其中一个位置是否存在,然后存储该城市。位置名称可以是单个或多个单词 示例段落: 嗨,妈妈!山姆和我正在考虑在加拿大进行公路旅行 下个月。我们知道我们已经可以住在魁北克的约翰家了 城市。我知道你在加拿大旅行过很多次,所以我想 你的建议 就像我说的,我们从魁北克市开始,然后可能开车去 前往哈利法克斯前的米拉米奇。两天后我们想去 布雷顿角。最后,我们想查看Advocate Harbor 芬迪湾、迪格比和圣伊丽莎白码头等 马上跟你说 预期结果Database 段落中多词短语的模糊匹配算法,database,string,algorithm,search,fuzzy-search,Database,String,Algorithm,Search,Fuzzy Search,首先,我不是在寻找实际的模糊匹配算法。我们同时使用了Dice系数和Levenshtein距离。我正在寻找最聪明的方法来利用这些算法 目标: 我试图在文本的一段中,按照城市名称出现的顺序来检测城市名称。我们有大约100万个地点名称的列表。我想搜索一段文字,并检测其中一个位置是否存在,然后存储该城市。位置名称可以是单个或多个单词 示例段落: 嗨,妈妈!山姆和我正在考虑在加拿大进行公路旅行 下个月。我们知道我们已经可以住在魁北克的约翰家了 城市。我知道你在加拿大旅行过很多次,所以我想 你的建议 就像我
- 加拿大
- 魁北克市
- 加拿大
- 米拉米奇
- 哈利法克斯
- 布雷顿角
- 倡导者港
- 芬迪湾
- 迪格比
- 圣伊丽莎白码头
这是我目前的方法,但速度非常慢,效率非常低。有没有一种聪明的方法可以完成我想要的任务?我认为一些字符串匹配算法非常适合你 以下是他们的清单:
在您的情况下,我认为您需要多个模式字符串匹配一个,例如是否可以将段落视为一行字符串,并使用某种字符串匹配算法?例如匹配多个模式(在您的案例中的位置)是的,这正是我要寻找的。它不做模糊匹配,但效果很好。将此作为答案提交,我会将其标记为正确。谢谢。很高兴知道它有帮助:)这很有效!作为其他人的参考,我最终使用了这个gem中的Aho-Corasick实现: