我正在尝试找到一种快速的(毫秒或秒)解决方案,以使其具有输入的文本块和大量(1100万个)特定单词/词组进行测试。所以我想看看输入段落中有哪些单词/短语?
我们使用Javascript,并将SQL,MongoDB和DynamoDB作为现有数据存储库,我们可以将该解决方案集成到其中。
我已经完成了有关此问题的搜索,但是只能查找文本中是否存在单词。并非如此。
欢迎所有想法!
答案 0 :(得分:0)
在这种情况下,您希望消除尽可能多的不必要数据。假设顺序很重要:
n = 2
(如果您喜欢的话,则为1)n
的短语,并对字典中以任何短语对('My Phrase%'
开头的短语进行查询。由于使用了索引,因此不会执行45.21亿个字符串比较。n = n + 1
您还可以根据要查找的匹配类型在此处和那里进行小的优化,例如,不使用标点符号匹配,仅匹配特定单词长度的短语等。无论如何,我希望时间瓶颈在于磁盘访问,而不是实际比较。
此外,我很确定我是基于现有算法创建此算法的,但是我不记得它的名字了,因此奖励指向任何可以命名它的人。我认为这与数据仓库/挖掘以及计算频率和模式有关吗?