# AhoCorasickDoubleArrayTrie **Repository Path**: mirrors_toolgood/AhoCorasickDoubleArrayTrie ## Basic Information - **Project Name**: AhoCorasickDoubleArrayTrie - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-10-22 - **Last Updated**: 2026-03-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # NReco.Text.AhoCorasickDoubleArrayTrie Very fast C# implementation of Aho Corasick algorithm based on Double Array Trie: efficient text search of many substrings with O(n) complexity. NuGet | Ubuntu 14.04 --- | --- [![NuGet Release](https://img.shields.io/nuget/v/NReco.Text.AhoCorasickDoubleArrayTrie.svg)](https://www.nuget.org/packages/NReco.Text.AhoCorasickDoubleArrayTrie/) | [![Travis CI](https://img.shields.io/travis/nreco/AhoCorasickDoubleArrayTrie/master.svg)](https://travis-ci.org/nreco/AhoCorasickDoubleArrayTrie) * very fast: can be used for efficient substring search of thousands keywords with O(n) complexity. * trie represented with double array approach to minimize memory usage * automata state can be effectively saved/loaded to binary stream (say, file) * supports case-insensitive search ## How to use ``` // note: keywords may be provided as enumeration of KeyValuePair var keywords = new Dictionary() { {"are", 1}, {"is", 1}, {"he", 2}, {"she", 2}, {"it", 2}, {"we", 2} }; var matcher = new AhoCorasickDoubleArrayTrie( keywords ); var text = "we are all champions"; matcher.ParseText(text, (hit) => { Console.WriteLine("Matched: {0} = {1}", text.Substring(hit.Begin, hit.Length), hit.Value ); }); ``` ## License Licensed under the Apache License, Version 2.0 (see LICENSE file). This C# implementation is a port of hankcs's https://github.com/hankcs/AhoCorasickDoubleArrayTrie (java) that were licensed under the Apache 2.0 License (see http://www.apache.org/licenses/LICENSE-2.0). Copyright 2017-2019 Vitaliy Fedorchenko (port to C#, improvements) and contributors