算法小白,求一个文本模糊匹配关键词的算法方案或思路

望_mm 2020-08-07 03:26:12
背景:
1、人工维护一个关键词库(目前不到10W个),关键词特点:支持多国语言(英文居多),普遍长度较长(平均长度42)
2、给定一段文本,文本长度普遍在500-1000之间,文本无法确定语种也可能是多语种混杂,所以要所有关键字都匹配一遍

要求:
1、从文本中找出所有出现的关键词,并给出关键词所在位置(用于高亮显示)
2、关键词匹配时不区分大小写
3、关键词匹配时允许错几个字符(如关键词长度在30-50之间的,允许2个字符匹配错误)

举例说明:
关键词:Caffeine,允许错1个字符
可以匹配到文本中的如下内容:caffein、caffeina、caffeine等
...全文
18025 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
bk树看一下
Yofoo 2020-08-18
  • 打赏
  • 举报
回复
把词拆分做关键字(索引, key), 如caffein 可以拆分成caf, fei, ein, 然后做索引 匹配的时候同样Caffeine分别搜索, caf, fei, ine
tanta 2020-08-11
  • 打赏
  • 举报
回复
建议楼主研究下自动状态机。因为你这有允许错误的要求,需要进行一定的变形。
望_mm 2020-08-10
  • 打赏
  • 举报
回复
不懂嵌入式数据库跟这个需求有什么关系,请详细说一下
遇见女神 2020-08-08
  • 打赏
  • 举报
回复
弄个嵌入式数据库就好
望_mm 2020-08-07
  • 打赏
  • 举报
回复
自己简单写了一个暴力匹配的方法,一个字符一个字符的遍历文本,然后和关键词的首字母进行匹配过滤,上面说的数据量,完整匹配时速度还可以接受,增加了允许错几个字符的处理后速度暴增到2-3分钟,完全无法接受,求大神指点

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧