word_sensitive

A library for sensitive string matching, the implementation language is rust, and the algorithm used is ac

How to use?

```rust use wordsensitive::trie; let mut tree = trie::Trie::default(); tree.addkeyword("aaa".asbytes().tovec()); tree.addkeyword("aab".asbytes().tovec()); tree.addkeyword("aac".asbytes().tovec()); tree.addkeyword("aba".asbytes().tovec()); tree.addkeyword("abb".asbytes().tovec()); tree.addkeyword("abc".asbytes().tovec()); tree.addkeyword("aca".asbytes().tovec()); tree.addkeyword("acb".asbytes().tovec()); tree.addkeyword("acc".asbytes().tovec()); tree.addkeyword("baa".asbytes().tovec()); tree.addkeyword("bab".asbytes().tovec()); tree.addkeyword("bac".asbytes().tovec()); tree.addkeyword("bba".asbytes().tovec()); tree.addkeyword("bbb".asbytes().tovec()); tree.addkeyword("bbc".asbytes().tovec()); tree.addkeyword("bca".asbytes().tovec()); tree.addkeyword("bcb".asbytes().tovec()); tree.addkeyword("bcc".asbytes().tovec()); tree.addkeyword("caa".asbytes().tovec()); tree.addkeyword("cab".asbytes().tovec()); tree.addkeyword("cac".asbytes().tovec()); tree.addkeyword("cba".asbytes().tovec()); tree.addkeyword("cbb".asbytes().tovec()); tree.addkeyword("cbc".asbytes().tovec()); tree.addkeyword("cca".asbytes().tovec()); tree.addkeyword("ccb".asbytes().tovec()); tree.addkeyword("ccc".asbytes().tovec()); tree.build(); let matches = tree.query("abcabcbcca".asbytes().asref()); asserteq!(matches[0], "abc".asbytes().asref()); asserteq!(matches[1], "bca".asbytes().asref()); asserteq!(matches[2], "cab".asbytes().asref()); asserteq!(matches[3], "abc".asbytes().asref()); asserteq!(matches[4], "bcb".asbytes().asref()); asserteq!(matches[5], "cbc".asbytes().asref()); asserteq!(matches[6], "bcc".asbytes().asref()); asserteq!(matches[7], "cca".asbytes().as_ref());

```

Add keywords from file

rust use word_sensitive::trie; let mut tree = trie::Trie::default(); tree.add_key_word_from_file("key_words/keywords.txt").unwrap(); tree.build(); let matches = tree.query("回民吃猪肉".as_bytes().as_ref()); assert_eq!(matches[0], "回民".as_bytes().as_ref()); assert_eq!(matches[1], "回民吃猪肉".as_bytes().as_ref());