资源简介
net过滤脏字的代码,一般用于处理论坛等言论的敏感词过滤,我主要用到了代码内的TrieFilter工具类,其他工具类若有需求可以自行研究
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace FilterTest
{
///
/// http://www.cnblogs.com/xingd/archive/2008/02/01/1061800.html上的方法
///
public class BadWordsFilter
{
private HashSet hash = new HashSet();
private byte[] fastCheck = new byte[char.MaxValue];
private byte[] fastLength = new byte[char.MaxValue];
private BitArray charCheck = new BitArray(char.MaxValue);
private BitArray endCheck = new BitArray(char.MaxValue);
private int maxWordLength = 0;
private int minWordLength = int.MaxValue;
public BadWordsFilter()
{
}
public void AddKey(string word)
{
maxWordLength = Math.Max(maxWordLength word.Length);
minWordLength = Math.Min(minWordLength word.Length);
for (int i = 0; i < 7 && i < word.Length; i++)
{
fastCheck[word[i]] |= (byte)(1 << i);
}
for (int i = 7; i < word.Length; i++)
{
fastCheck[word[i]] |= 0x80;
}
if (word.Length == 1)
{
charCheck[word[0]] = true;
}
else
{
fastLength[word[0]] |= (byte)(1 << (Math.Min(7 word.Length - 2)));
endCheck[word[word.Length - 1]] = true;
hash.Add(word);
}
}
public string Filter(string text string mask)
{
throw new NotImplementedException();
}
public bool HasBadWord(string text)
{
int index = 0;
while (index < text.Length)
{
int count = 1;
if (index > 0 || (fastCheck[text[index]] & 1) == 0)
{
while (index < text.Length - 1 && (fastCheck[text[++index]] & 1) == 0) ;
}
char begin = text[index];
if (minWordLength == 1 && charCheck[begin])
{
return true;
}
for (int j = 1; j <= Math.Min(maxWordLength text.Length - index - 1); j++)
{
char current = text[index + j];
if ((fastCheck[current] & 1) == 0)
{
++count;
}
if ((fastCheck[current] & (1 << Math.Min(j 7))) == 0)
{
break;
}
if (j + 1 >= minWordLength)
{
if ((fastLength[begin] & (1 << Math.Min(j - 1 7))) > 0 && endCheck[current])
{
string sub = text.Substring(index j + 1);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-09-12 10:14 FilterTest\
目录 0 2017-09-12 10:14 FilterTest\Backup\
目录 0 2017-09-12 10:14 FilterTest\Backup\FilterTest\
文件 65391 2011-08-25 22:53 FilterTest\Backup\FilterTest\BadWord.txt
文件 3341 2011-09-01 13:51 FilterTest\Backup\FilterTest\BadWordsFilter.cs
文件 3031 2011-08-25 23:15 FilterTest\Backup\FilterTest\CodeTimer.cs
文件 2916 2011-09-01 13:43 FilterTest\Backup\FilterTest\FilterTest.csproj
文件 168 2011-09-01 13:43 FilterTest\Backup\FilterTest\FilterTest.csproj.user
文件 3002 2011-09-01 13:43 FilterTest\Backup\FilterTest\HashFilter.cs
文件 2938 2011-09-01 13:50 FilterTest\Backup\FilterTest\Program.cs
目录 0 2017-09-12 10:14 FilterTest\Backup\FilterTest\Properties\
文件 1376 2011-09-01 13:33 FilterTest\Backup\FilterTest\Properties\AssemblyInfo.cs
文件 1285 2011-08-29 07:34 FilterTest\Backup\FilterTest\Talk.txt
文件 5634 2011-09-01 13:46 FilterTest\Backup\FilterTest\TrieFilter.cs
文件 920 2011-09-01 13:33 FilterTest\Backup\FilterTest.sln
目录 0 2017-09-12 10:15 FilterTest\FilterTest\
文件 3341 2011-09-01 13:51 FilterTest\FilterTest\BadWordsFilter.cs
文件 3031 2011-08-25 23:15 FilterTest\FilterTest\CodeTimer.cs
文件 4405 2017-04-11 14:38 FilterTest\FilterTest\FilterTest.csproj
文件 498 2017-04-11 14:38 FilterTest\FilterTest\FilterTest.csproj.user
文件 3002 2011-09-01 13:43 FilterTest\FilterTest\HashFilter.cs
文件 4608 2017-04-12 18:31 FilterTest\FilterTest\Program.cs
目录 0 2017-09-12 10:14 FilterTest\FilterTest\Properties\
文件 1376 2011-09-01 13:33 FilterTest\FilterTest\Properties\AssemblyInfo.cs
文件 1285 2011-08-29 07:34 FilterTest\FilterTest\Talk.txt
文件 5688 2017-04-11 14:38 FilterTest\FilterTest\TrieFilter.cs
文件 161 2017-04-11 14:38 FilterTest\FilterTest\app.config
目录 0 2017-09-12 10:14 FilterTest\FilterTest\bin\
目录 0 2017-09-12 10:14 FilterTest\FilterTest\bin\Debug\
文件 1607406 2017-04-12 11:15 FilterTest\FilterTest\bin\Debug\BadWord.txt
文件 14848 2017-04-12 18:33 FilterTest\FilterTest\bin\Debug\FilterTest.exe
............此处省略20个文件信息
- 上一篇:土地报备坐标信息转换
- 下一篇:Multisim12官方简体中文汉化包
相关资源
- 基于用户的协同过滤和基于内容的混
- 论文研究-一种绕过应用防火墙过滤规
- 皮尔森相关系数 之用户推荐的协同过
- 敏感词过滤+最新敏感词库
- 一个简单的LINUX防火墙
- 我的构架::::用包过滤技术实现
- vue自定义过滤器,例如给文字加颜色
- 最新屏蔽字敏感词库
-
Item ba
sed collaborative filtering recommen - windows内科安全与驱动开发,minifilte
- TestCenter过滤器的使用
- 十万最新版敏感词.rar
- 微信敏感词库大全.txt.zip
- 过滤无效密码,过滤密码小于八位
- 验证用户有没有登陆的过滤器
- 脏话过滤代码和几千个敏感词汇.zip
- 无线433远距离/低电量时的杂波过滤方
- linux下使用原始套接字抓包并发现网络
- 敏感词txt.zip
- 基于双隶属度模糊支持向量机的邮件
- 17 机器学习案例——基于朴素贝叶斯
- springboot+shiro代码demo
- 基于管道过滤器风格的单词排序程序
- 数据包过滤研究与实现
- 机器学习朴素贝叶斯垃圾邮件过滤器
- 基于协同过滤算法的电子商务网站个
- 加入过滤器的双均线策略
- 文件浏览 打开sdcard文件夹。只显示文
- 2018最新敏感词库JasonYSU.rar
- 透明加密minifilter
评论
共有 条评论