我有10页的txt文件,其中我必须搜索一系列10,000个单词来检查文件内容中存在多少个单词。
我正在使用AhoCorasic算法进行搜索。但是,为了检查每个单词是否存在,我在列表中添加了10,000个术语。那就是我必须迭代10,000次才能知道每个单词是否存在。 (10,000可以增长到n)
上述方法的问题是 - > CPU必须循环10,000次,并且完成任务所需的时间更长。
我正在寻找替代方法,我可以一次提供所有10,000个单词(以避免循环)并获得每个单词的结果。
有没有办法实现这一点。或者,如果有任何其他替代Ahocorasic搜索来实现上述情况。
答案 0 :(得分:0)
反转搜索:在文本中创建一组单词,然后查找源材料中的术语是否为O(1)。不过,正如其他人所说,如果你需要做更复杂的匹配而不是简单的术语存在,我还建议使用Lucene。