如何在文本段中找到关键词?

问题描述 投票:0回答:1

我正在尝试找到一个快速(毫秒或秒)的解决方案,用于输入一个输入的文本块和一个大的列表(1100万)特定的单词/短语进行测试。所以我想看看输入段落中的单词/短语是什么?

我们使用Javascript并将SQL,MongoDB和DynamoDB作为现有数据存储,我们可以将此解决方案集成到其中。

我已经完成了对这个问题的搜索,但只能查找文本中是否存在单词。而不是相反。

欢迎所有想法!

javascript database caching indexing full-text-search
1个回答
0
投票

在这些情况下,您希望尽可能多地消除不必要的数据。假设订单很重要:

  1. 首先,确保在短语上聚集的短语数据库上建立B树索引。这将加快范围查找时间。
  2. n = 2(或1,如果你进入那个)
  3. 将文本块拆分为长度为n的短语,并对字典中以任何短语对开头的短语('My Phrase%')执行查询。由于索引,这将不会执行45.21亿字符串比较。
  4. 记住完全匹配的短语
  5. n = n + 1
  6. 使用简化字典从步骤3重复,直到缩减字典为空

你也可以在这里和那里进行小的优化,这取决于你正在寻找的匹配类型,例如,不匹配标点符号,只有特定字长的短语等等。无论如何,我希望时间瓶颈这里是磁盘访问,而不是实际的比较。

此外,我很确定我将此算法基于现有算法,但我不记得它的名字所以奖励积分给任何可以命名它的人。我认为它与数据仓库/挖掘和计算频率和模式有关?

© www.soinside.com 2019 - 2024. All rights reserved.