C# 敏感字检测

这是今天提到的一个需求,于是做了一个小demo。把过程记录下来。

第一步 新建项目

比如 demo1 这里是用网站形式

第二步下载敏感词类库ToolGood.Words.dll

方案一 可以先去网络搜索,查找开源的代码库,然后把代码下载下来,自己编译。

方案二 用nuget下载

第三步创建测试方法

C# 复制代码
  [HttpPost]
        public ActionResult GetTestMinGan(ProductInfo model)
        {
            // 创建敏感词过滤器对象
            var filter = new WordsSearch();

            // 添加敏感词
            List<string> words = new List<string>() { "磁性", "带电", "液体", "膏状", "粉末", "颗粒", "食品", "仿牌", "电子", "气体", "动物", "植物", "鲜活类物品", "酒精类", "枪械形状物品", "货币", "金融票据", "腐蚀品", "药品类", "毒品", "烟草", "危险物品", "易燃易爆" };
            filter.SetKeywords(words);

            // 检测文本是否包含敏感词
            string text = model.ProductName;
            bool containsSensitiveWords = filter.ContainsAny(text);

            // 输出结果
            if (containsSensitiveWords)
            {
                return Content("文本中包含敏感词");
            }
            else
            {
              return  Content("文本中不包含敏感词");
            }

        }

实体类 ProductInfo

C# 复制代码
  public class  ProductInfo
    {
        public string ProductName{get;set;}
    }

第四步测试

其他

这是gpt平台回答的 ToolGood.Words 是一个C#的敏感词过滤库,可以用于快速判断一段文本中是否包含敏感词。以下是引入和使用 ToolGood.Words 的示例代码:

c# 复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using ToolGood.Words;

class Program
{
    static void Main()
    {
        // 创建敏感词过滤器对象
        var filter = new WordsSearch();

        // 添加敏感词
        List<string> words = new List<string>() { "敏感词1", "敏感词2", "敏感词3" };
        filter.SetKeywords(words);

        // 检测文本是否包含敏感词
        string text = "这是一段包含敏感词1和敏感词2的文本";
        bool containsSensitiveWords = filter.ContainsAny(text);

        // 输出结果
        if (containsSensitiveWords) {
            Console.WriteLine("文本中包含敏感词");
        } else {
            Console.WriteLine("文本中不包含敏感词");
        }
    }
}

以上代码中,我们首先创建了一个 WordsSearch 对象,这个对象代表一个敏感词过滤器。然后,我们使用 SetKeywords() 方法给敏感词过滤器添加敏感词。

接着,我们定义了一段文本 text。使用 ContainsAny() 方法检测这段文本中是否包含任意一个敏感词。如果包含敏感词,则输出 "文本中包含敏感词",否则输出 "文本中不包含敏感词"。

当然,还有许多其它方法可以实现自定义敏感词库、检测详细的敏感词信息等功能。你可以根据具体需求查看 ToolGood.Words 的文档来使用它提供的功能。

总结

这个库使用起来是非常简单的。关于敏感词存放位置。这个根据需求来,既可以是文件,也可以是数据库,当然也可以写死在代码里。根据自己的需求来。

相关推荐
codeGoogle3 小时前
自研 IM 还是选择第三方 SDK?企业开发者应该如何权衡?
前端·后端·程序员
DLYSB_5 小时前
API 网关流量洪峰与突发 CC 攻击:我用 Go 写了个“现场物理防御哨兵”,把故障响应压缩到秒级
开发语言·后端·golang·报警灯
markinmarkin5 小时前
Spring 中Bean 的作用域有哪些?
java·后端·spring
橙子家6 小时前
使用方法 ToDictionary() 来优化查询时间复杂度:O(N*M) -> O(1*M)【C# 基础】
后端
IT_陈寒7 小时前
我又被JavaScript的隐式类型转换坑了
前端·人工智能·后端
用户8356290780517 小时前
Python Word 转 PDF 和 PDF 转 Word 指南
后端·python
用户8356290780517 小时前
如何使用 Python 加密和保护 Word 文档
后端·python
他们叫我秃子8 小时前
前端开发转 Go 全栈(五):终于遇到熟人了,Go 的闭包和高阶函数原来这么像 JavaScript
前端·后端·go
SomeB1oody8 小时前
【RustyML入门】2.6. 线性判别分析
开发语言·后端·机器学习·rust·教程
妙码生花8 小时前
从 PHP 到 AI + Golang,程序员自救转型手记(五十七):AI时代对组件封装的新理解、agInput 统一入口,动态表单预备
前端·后端·go