ToolGood.Words敏感词检测组件
ToolGood.Words是一款高性能非法词(敏感词)检测组件,附带繁体简体互换,支持全角半角互换,获取拼音首字母,获取拼音字母等功能。
非法词(敏感词)检测类有:StringSearch
、WordsSearch
、IllegalWordsSearch
、IllegalWordsQuickSearch
示例代码:
string s = "中国|国人|zg人"; string test = "我是中国人"; StringSearch iwords = new StringSearch(); iwords.SetKeywords(s.Split('|')); var b = iwords.ContainsAny(test); Assert.AreEqual(true, b); var f = iwords.FindFirst(test); Assert.AreEqual("中国", f); var all = iwords.FindAll(test); Assert.AreEqual("中国", all[0]); Assert.AreEqual("国人", all[1]); Assert.AreEqual(2, all.Count); var str = iwords.Replace(test, '*'); Assert.AreEqual("我是***", str);
性能对比:(10万次对比)
StringSearch.ContainsAny的效率是正则IsMatch的1.5W倍。
Regex.Matches的运行方式跟IQueryable的类似,只返回MatchCollection,还没有计算。
TrieFilter,FastFilter为其他网友算法,来源请看文档。
获取中文全拼:
自带多音词库,不带分词功能,特殊情况下会出现拼音错误。
var py = WordsHelper.GetPinYin("快乐,乐清"); Assert.AreEqual("KuaiLe,YueQing", py);
开源地址:
评论