有效地从用户评论中删除顽皮的单词

时间:2010-10-25 23:16:32

标签: c# asp.net sql

我有一个ASP.NET应用程序,可以在SQL数据库中接受用户注释。我想确保我清除任何“顽皮”的字样,这样我就可以保持我的应用程序受人尊敬。问题是我发现这些词很多。 ;>

我的问题是,进行此处理的最有效方法是什么?我应该在SQL中有一个表并编写一个存储的proc来完成这项工作吗?我应该在Web服务器的内存中使用c#和Regex吗?还有其他选择吗?有没有其他人成功地进行过大规模的文本扫描?如果是,什么有用?

4 个答案:

答案 0 :(得分:9)

这是徒劳的任务。如果有人想发誓那么他们就会开始输入f ucksh*t等内容。

有效的节制是无可替代的。其他任何内容都可能会在您的网页上出现clbuttic错误

我记得某个地方有关社会问题的技术解决方案的引用,但我现在无法采购

答案 1 :(得分:2)

Scunthorpe Problem

我们应该试图在代码中解决这个问题。

答案 2 :(得分:0)

答案 3 :(得分:0)

这里有一些事情需要考虑:

  • 您希望以后能够在该黑名单中添加或删除单词吗?如果是这样,只有在显示消息之前执行此操作才有意义,但存储原始消息。
  • 您是否希望稍后获得该邮件的副本(例如出于法律原因或客户支持)?然后,在数据库中保持消息不变也是有意义的。

所以我会将消息保留在数据库中,并在呈现之前解析它。对我来说,看起来最有效的方法是:

  1. 将黑名单保留在数据库中的索引列(小写)中,并通过过滤它的存储过程返回注释
  2. 将黑名单保持在一些数据结构中的小写字母,以便在中间层的内存中高效访问(例如,词典)。
  3. 在这两种情况下,您只需浏览每个评论并对其进行过滤即可。后一种方法更容易实现,但意味着您必须在内存中保留一个列表,当您拥有一个非常大的黑名单时,该列表就会停止运行。

    (我实际上认为使用正则表达式毫无意义。)