AhoCorasickTrie: Fast Searching for Multiple Keywords in Multiple Texts

Aho-Corasick is an optimal algorithm for finding many keywords in a text. It can locate all matches in a text in O(N+M) time; i.e., the time needed scales linearly with the number of keywords (N) and the size of the text (M). Compare this to the naive approach which takes O(N*M) time to loop through each pattern and scan for it in the text. This implementation builds the trie (the generic name of the data structure) and runs the search in a single function call. If you want to search multiple texts with the same trie, the function will take a list or vector of texts and return a list of matches to each text. By default, all 128 ASCII characters are allowed in both the keywords and the text. A more efficient trie is possible if the alphabet size can be reduced. For example, DNA sequences use at most 19 distinct characters and usually only 4; protein sequences use at most 26 distinct characters and usually only 20. UTF-8 (Unicode) matching is not currently supported.

Author
Matt Chambers [aut, cre], Tomas Petricek [aut, cph], Vanderbilt University [cph]
Date of publication
2016-07-29 06:40:52
Maintainer
Matt Chambers <matt.chambers42@gmail.com>
License
Apache License 2.0
Version
0.1.0
URLs

View on CRAN

Man pages

AhoCorasickSearch
Fast searching for one or more keywords in one or more texts
AhoCorasickSearchList
Fast searching for one or more keywords in a list of texts
AhoCorasickTrie
AhoCorasickTrie: fast searching for multiple keywords in...

Files in this package

AhoCorasickTrie
AhoCorasickTrie/tests
AhoCorasickTrie/tests/AhoCorasickTrieTests.R
AhoCorasickTrie/src
AhoCorasickTrie/src/AhoCorasickTrie.cpp
AhoCorasickTrie/src/RcppExports.cpp
AhoCorasickTrie/NAMESPACE
AhoCorasickTrie/R
AhoCorasickTrie/R/AhoCorasickTrie.R
AhoCorasickTrie/R/RcppExports.R
AhoCorasickTrie/MD5
AhoCorasickTrie/DESCRIPTION
AhoCorasickTrie/man
AhoCorasickTrie/man/AhoCorasickSearchList.Rd
AhoCorasickTrie/man/AhoCorasickTrie.Rd
AhoCorasickTrie/man/AhoCorasickSearch.Rd