关于.NET脏字过滤的算法代码

原创 2007年10月06日 14:49:00

 关于.NET脏字过滤的算法代码。我这里测试的时候,RegEx要快一倍左右。但是还是不太满意,应为我们网站上脏字过滤用的相当多,对效率已经有了一些影响,经过一番思考后,自己做了一个算法。在自己的机器上测试了一下,使用原文中的脏字库,0x19c的字符串长度,1000次循环,文本查找耗时1933.47ms,RegEx用了1216.719ms,而我的算法只用了244.125ms.

  主要算法如代码所示

以下是引用片段:
  private static Dictionary dic = new Dictionary();
  private static BitArray fastcheck = new BitArray(char.MaxValue);
  static void Prepare()
  {
  string[] badwords = // read from file
  foreach (string word in badwords)
  {
  if (!dic.ContainsKey(word))
  {
  dic.Add(word, null);
  maxlength = Math.Max(maxlength, word.Length);
  int value = word[0];
  fastcheck[word[0]] = true;
  }
  }
  }


  使用的时候 以下是引用片段:
  int index = 0;
  while (index < target.Length)
  {
  if (!fastcheck[target[index]])
  {
  while (index < target.Length - 1 && !fastcheck[target[++index]]) ;
  }
  for (int j = 0; j < Math.Min(maxlength, target.Length - index); j++)
  {
  string sub = target.Substring(index, j);
  if (dic.ContainsKey(sub))
  {
  sb.Replace(sub, "***", index, j);
  index += j;
  break;
  }
  }
  index++;
  }


  我们在遇到问题的时候不要一味地去借用别人的代码,有时候动动脑筋说不定有意外的惊喜!  

过滤过敏字,脏字

过滤过敏字,首先是一个过敏字文件 dirtywords.txt; 里面的书写格式:    你好|不好|好的    中间用"|"隔开 我是在shopNC使用的:故而BasePath就是项目根目录常量...
  • du384652412
  • du384652412
  • 2014年11月21日 08:31
  • 244

推荐系统实践--基于用户的协同过滤算法

推荐系统实践--基于用户的协同过滤算法 http://www.cnblogs.com/qwj-sysu/p/4368874.html 基于邻域的算法是推荐系统中最基...
  • zdy0_2004
  • zdy0_2004
  • 2015年03月26日 16:57
  • 2378

推荐引擎之协同过滤算法——深度剖析及源码实现

在当今这个信息爆炸的大数据互联网时代,信息的爆炸使得人们按照传统方式寻找需要的信息会显得乏力而不准确。除了应用先进的搜索技术使得用户主动搜索外,个性化的推荐技术也能准确地将信息定位到用户,并取得非常好...
  • yangmuted
  • yangmuted
  • 2015年09月04日 17:09
  • 3289

基于item协同过滤算法实现

基于item协同过滤算法:利用的是item组成相似性矩阵,这里我们是基于电影协同过滤算法实现 现在要给所有的用户推荐电影 首先我们要计算电影之间的相似度,相似度用皮尔逊相关来求电影之间的相似性。 ...
  • jcm666666
  • jcm666666
  • 2016年03月28日 15:18
  • 1115

利用Tire树过滤脏字

ps1: 本文不打算讨论trie树的基础知识, 如果不懂,自行百度, 网上很多。 ps2:公司游戏的聊天系统中要屏蔽大量脏字,在网上搜索了一下, 发现可以用trie树解决。 数据结构定义: 树的边ed...
  • WJ_1062
  • WJ_1062
  • 2015年09月26日 14:05
  • 297

基于用户的协同过滤推荐算法

基于用户的协同过滤推荐技术
  • UserName_wuxiaofei
  • UserName_wuxiaofei
  • 2016年04月20日 20:31
  • 466

基于用户的协同过滤算法原理分析及代码实现

我所采用的数据集:MovieLens数据集ml-100k。 先进行原理分析,再讲代码实现。 基于用户的协同过滤算法主要包括两个步骤: (1)找到和目标用户兴趣相似的用户集合; (2)找到这个集...
  • Flying_sfeng
  • Flying_sfeng
  • 2017年02月18日 15:44
  • 2953

基于物品的协同过滤算法:理论说明,代码实现及应用

基于物品的协同过滤算法:理论说明,代码实现及应用标签: 爬虫 Python主要参考资料: 项亮. 推荐系统实践[M]. 北京:人民邮电出版社, 2012.转载请注明出处:sss0.一些碎碎念从4月中...
  • xuelabizp
  • xuelabizp
  • 2016年07月04日 20:25
  • 5974

[推荐算法]UserCF,基于用户的协同过滤算法

UserCF:UserCollaborationFilter,基于用户的协同过滤 算法核心思想:在一个在线推荐系统中,当用户A需要个性化推荐时,可以先找到和他有相似兴趣的其它用户,然后把那些用户喜...
  • yeruby
  • yeruby
  • 2015年03月08日 21:41
  • 10216

[推荐算法]基于用户的协同过滤算法

什么是推荐算法 推荐算法最早在1992年就提出来了,但是火起来实际上是最近这些年的事情,因为互联网的爆发,有了更大的数据量可以供我们使用,推荐算法才有了很大的用武之地。 最开始,所以我...
  • ygrx
  • ygrx
  • 2013年11月12日 14:12
  • 66444
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于.NET脏字过滤的算法代码
举报原因:
原因补充:

(最多只允许输入30个字)