在语料库中匹配多个字符串

matching multiple strings in a corpus

本文关键字:字符串 语料库      更新时间:2023-10-16

我需要匹配语料库上的大量字符串。然而,"字符串"不是字符列表,而是带有自定义重载==操作符的类的对象向量。

我决定使用Aho-Corasick字符串匹配算法来完成这项工作。不幸的是,我还没有找到它的任何开源实现,它可以与任意对象的序列容器(特别是向量)一起工作。幸运的是,我在这里找到了一段非常整洁的代码,它可以很好地处理普通字符串。通过一些工作,我可以将它重写为一个模板来解决我的问题。

但在这样做或从头开始编写算法之前,我想问你是否知道任何已经解决我的问题的库?

提前感谢,

蒂莫

您可以使用basic_string<T>,它具有字符串的所有方法,但不限于字符。

您链接到的代码中的CSuffixTrie类包含两个类型:

typedef std::wstring SearchString;
typedef wchar_t SearchChar;

如果你用你自己的类型替换那些类型,你应该已经完成了一半。你需要在你的向量上实现一个等价的substr,也许还有一些其他的字符串函数,但这应该不会有太多的工作。