开源软件名称:toolgood/ToolGood.Words开源软件地址:https://github.com/toolgood/ToolGood.Words开源编程语言:JavaScript 69.5%开源软件介绍:ToolGood.Words一款高性能非法词(敏感词)检测组件,附带繁体简体互换,支持全角半角互换,获取拼音首字母,获取拼音字母,拼音模糊搜索等功能。
csharp 文件夹说明:
非法词(敏感词)检测(字符串搜索)非法词(敏感词)检测类:
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); 非法词(敏感词)检测(字符串搜索)(支持通配符)非法词(敏感词)检测类: 支持部分正则表达式类型: string s = ".[中美]国|国人|zg人";
string test = "我是中国人";
WordsMatch wordsSearch = new WordsMatch();
wordsSearch.SetKeywords(s.Split('|'));
var b = wordsSearch.ContainsAny(test);
Assert.AreEqual(true, b);
var f = wordsSearch.FindFirst(test);
Assert.AreEqual("是中国", f.Keyword);
var alls = wordsSearch.FindAll(test);
Assert.AreEqual("是中国", alls[0].Keyword);
Assert.AreEqual(".[中美]国", alls[0].MatchKeyword);
Assert.AreEqual(1, alls[0].Start);
Assert.AreEqual(3, alls[0].End);
Assert.AreEqual(0, alls[0].Index);//返回索引Index,默认从0开始
Assert.AreEqual("国人", alls[1].Keyword);
Assert.AreEqual(2, alls.Count);
var t = wordsSearch.Replace(test, '*');
Assert.AreEqual("我****", t); 繁体简体互换、全角半角互换、数字转成中文大写、拼音操作 // 转成简体
WordsHelper.ToSimplifiedChinese("我愛中國");
WordsHelper.ToSimplifiedChinese("我愛中國",1);// 港澳繁体 转 简体
WordsHelper.ToSimplifiedChinese("我愛中國",2);// 台湾正体 转 简体
// 转成繁体
WordsHelper.ToTraditionalChinese("我爱中国");
WordsHelper.ToTraditionalChinese("我爱中国",1);// 简体 转 港澳繁体
WordsHelper.ToTraditionalChinese("我爱中国",2);// 简体 转 台湾正体
// 转成全角
WordsHelper.ToSBC("abcABC123");
// 转成半角
WordsHelper.ToDBC("abcABC123");
// 数字转成中文大写
WordsHelper.ToChineseRMB(12345678901.12);
// 中文转成数字
WordsHelper.ToNumber("壹佰贰拾叁亿肆仟伍佰陆拾柒万捌仟玖佰零壹元壹角贰分");
// 获取全拼
WordsHelper.GetPinyin("我爱中国");//WoAiZhongGuo
WordsHelper.GetPinyin("我爱中国",",");//Wo,Ai,Zhong,Guo
WordsHelper.GetPinyin("我爱中国",true);//WǒÀiZhōngGuó
// 获取首字母
WordsHelper.GetFirstPinyin("我爱中国");//WAZG
// 获取全部拼音
WordsHelper.GetAllPinyin('传');//Chuan,Zhuan
// 获取姓名
WordsHelper.GetPinyinForName("单一一")//ShanYiYi
WordsHelper.GetPinyinForName("单一一",",")//Shan,Yi,Yi
WordsHelper.GetPinyinForName("单一一",true)//ShànYīYī 拼音分支ToolGood.Words.Pinyin 追求更快的加载速度(目前只有C#代码)。 拼音匹配
string s = "北京|天津|河北|辽宁|吉林|黑龙江|山东|江苏|上海|浙江|安徽|福建|江西|广东|广西|海南|河南|湖南|湖北|山西|内蒙古|宁夏|青海|陕西|甘肃|新疆|四川|贵州|云南|重庆|西藏|香港|澳门|台湾";
PinyinMatch match = new PinyinMatch();
match.SetKeywords(s.Split('|').ToList());
var all = match.Find("BJ");
Assert.AreEqual("北京", all[0]);
Assert.AreEqual(1, all.Count);
all = match.Find("北J");
Assert.AreEqual("北京", all[0]);
Assert.AreEqual(1, all.Count);
all = match.Find("北Ji");
Assert.AreEqual("北京", all[0]);
Assert.AreEqual(1, all.Count);
all = match.Find("S");
Assert.AreEqual("山东", all[0]);
Assert.AreEqual("江苏", all[1]);
var all2 = match.FindIndex("BJ");
Assert.AreEqual(0, all2[0]);
Assert.AreEqual(1, all.Count); 性能对比执行10万次性能对比,结果如下: 注:C#自带正则很慢,
在 Find All测试中, (检测出的文本中有敏感词汇,就不显示了,大家可自行调试查看)。
插曲:在细查
其他语言实现Lua版本作者:wenlifan 地址:https://github.com/wenlifan/SensitiveWordFilter 广告一下《ToolGood 内容审核系统》正式发布,Windows、Linux双平台,内存占用小于100M。 开源代码:https://github.com/toolgood/ToolGood.TextFilter SqlOnline 正式发布,SQL在线编辑器,主打数据安全,Windows、Linux双平台。 源码:https://github.com/toolgood/ToolGood.SqlOnline 探讨敏感信息过滤:敏感信息过滤研究会,Q群:128994346 敏感词相关文章5、ToolGood.Words算法过滤敏感词优化原理 (收费30元,一顿KFC) 6、ToolGood.TextFilter开源代码优化详解 (收费300元) 与IllegalWordsSearch算法进行对比,阐述了ToolGood.TextFilter过滤算法优化点,如何减少内存使用量。 还有一小部分未写好,心急的人可以先买,我会持续更新。 7、正则转DFA算法(C#版、JAVA版) (收费30元,一顿KFC) ToolGood.TextFilter的一个核心算法就使用到正则转DFA。 8、JAVA版ToolGood.TextFilter 9、C#版图片鉴黄(收费30元,一顿KFC) |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论