在许多数据块中搜索多个单词

时间:2013-03-11 03:08:48

标签: c++ python

我必须在数据块中搜索大约100个单词(大约20000个块),每个块包含大约20个单词。应按照匹配数的降序返回块。蛮力技术非常麻烦,因为你必须逐个搜索所有100个单词,然后以复杂的方式组合相关搜索的数量。是否有其他算法允许同时搜索多个单词并存储匹配单词的数量?

谢谢

2 个答案:

答案 0 :(得分:1)

您可以使用Aho-Corasick算法一次搜索所有100个字。有几种可用的实现here in SOgithub

答案 1 :(得分:0)

为什么不考虑使用多线程来存储结果?创建一个大小等于块数的数组,然后每个线程计数一个块中的结果,然后线程将结果写入数组中的相应条目。稍后您按降序对数组进行排序,然后得到结果。