使用Aho-Corasick,可以在构建初始树后添加字符串



我想在大量文档中搜索字符串。我有一个预定义的字符串列表,我想在每个文档中找到这些字符串。每个文档的开头都有一个标题,后面跟着文本,标题中还有我想在标题下面的文本中搜索的附加字符串。

在文档的每次迭代中,是否可以在从主列表创建初始树后添加标题字符串?或者修改原始数据结构以包含新字符串?

如果这样做不可行,是否有更合适的替代搜索方法?

如果每个文档都有自己的一组字符串要搜索,那么似乎只需要构建一个全局Aho-Corasick匹配器,然后再构建第二个逐文档匹配器。然后,在处理文档中的字符时,将每个字符输入到两个匹配的自动机中,并以这种方式报告所有匹配项。这样就不需要向主自动机添加新字符串,也不需要在完成后删除它们。此外,经济放缓幅度应该很小。

希望这能有所帮助!

最新更新