首页 > 社交 > 科普中国

C#开源之敏感词检测过滤组件

常驻编辑 科普中国 2022-06-15 全角   中美   半角   台湾   北京   中文   中国   拼音   组件   敏感   繁体   简体

描述

一款高性能敏感词(非法词/脏字)检测过滤组件,附带繁体简体互换,支持全角半角互换,汉字转拼音,模糊搜索等功能。m0v拜客生活常识网

同时支持多种语言,C#、golang、java、javascript、pythonm0v拜客生活常识网

参数

来源:GitHub(3100) https://github.com/toolgood/ToolGood.Wordsm0v拜客生活常识网

示例

非法词(敏感词)检测类:StringMatch、StringMatchEx、WordsMatch、WordsMatchEx。m0v拜客生活常识网

支持部分正则表达式类型:.(点)?(问号) [](方括号) (|)(括号与竖线)m0v拜客生活常识网

 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);


m0v拜客生活常识网

繁体简体互换、全角半角互换、数字转成中文大写、拼音操作m0v拜客生活常识网

 // 转成简体
    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ī

PinyinMatch:方法有SetKeywords、SetIndexs、Find、FindIndex。m0v拜客生活常识网

PinyinMatch:方法有SetKeywordsFunc、SetPinyinFunc、SetPinyinSplitChar、Find。m0v拜客生活常识网

 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);

结尾

一款支持多语言的敏感词检测过滤组件,同时支持一些拼音、简繁体常规操作,主要针对一些中文语言语法的相关内容。m0v拜客生活常识网

相关阅读:

  • 中国驻美大使给在美投资中企提建议:不要对美国市场失去
  • 美经济年内或陷入衰退,耶伦敦促拜登取消对华加征关税,中
  • 吃得少,饭量小,可以活得更久?衰老的速度越慢?听听医生怎么
  • 谷爱凌向中国表忠心!中美混血少女情商真高,喷子这次还敢
  • 刚刚,拜登就“是否取消对华关税壁垒”在东京表态
  • 外媒:美特使克里称中美气候合作“一直在取得进展”
  • 中国驻美大使秦刚回应布林肯讲话:中美关系基本面是合作
  • 一个关于中美两国的数据,出现断崖式下跌!
  • 中美俄都关注的北冰洋,航母开过去需要哪些条件
  • 富士康选择在马来西亚建立电动汽车芯片工厂
    • 网站地图 |
    • 声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不做权威认证,如若验证其真实性,请咨询相关权威专业人士。