你是多么喜欢有头脑的人来解决过滤亵渎的基本挑战,显然人们不可能解决每一个场景,但最好让一个人在最基本的水平上作为第一道防线.
在Obj-c我得到了
NSString *tokens = [text componentsSeparatedByString:@" "];
Run Code Online (Sandbox Code Playgroud)
然后我遍历每个令牌以查看是否在每个令牌中找到任何关键字(我在列表中有大约400个).
意识到误报也是一个问题,如果这个词是一个完美的匹配,它被标记为亵渎,否则如果发现超过3个亵渎的单词没有完美的匹配,它也被标记为亵渎.
稍后我将使用更准确地解决问题的网络服务,但我真的只需要一些基本的东西.因此,如果你写下阴茎这个词,那就是顽皮顽皮,写得不好.
我正在写我的反垃圾邮件/恶意过滤器,如果可能,我需要,
匹配(检测)仅由混合字符形成的单词,如:fr1&nd $而不是朋友
这是可能的正则表达式!?
最好的祝福!
我们有一个大型应用程序(仅有40,000多条评论)我们正在移交给另一家公司,但需要确保我们的代码注释是犹太教的.我找到不合适的代码注释的计划如下... 1 - 获取亵渎词的黑名单2 - 在eclispe的代码搜索中使用正则表达式来查看我们的应用程序中是否有任何这些词,并手动检查每个案例.
对于第1项,我看过一些进行过滤的应用程序或Web服务,但是有人知道在线某处的简单单词列表吗?
对于第2项,如何在eclispe中搜索单词hamburger OR pizza?
我正在编写一个非常基本的评论系统,并希望实现一个简单,高效的坏词过滤器.
我知道与坏词过滤器有关的问题并且意识到基本上不可能写出一个能让拼写错误和暗示出来的词,但我只是想写一个非常简单的词来保持正确拼写的粗俗词拼写.
我找到了一个大约400个单词的错误单词列表,并将其放入preg_replace()模式中:
/(these|are|bad|words|like|ass)/
Run Code Online (Sandbox Code Playgroud)
问题是它取代了模式中任何出现的字符,即使它们位于单词的中间.因此,例如,assist将被替换为ist.
第二个问题:不是用空字符串替换坏字,或者用固定宽度的字符串****替换,例如,有没有办法用一串具有相同长度的替换字的星号替换它?
在构建一个轻量级的工具来检测被亵渎的用法时,我注意到在单词边界末尾检测特殊字符非常困难。
使用一个字符串元组,构建一个OR'd单词边界正则表达式:
import re
PHRASES = (
'sh\\*t', # easy
'sh\\*\\*', # difficult
'f\\*\\*k', # easy
'f\\*\\*\\*', # difficult
)
MATCHER = re.compile(
r"\b(%s)\b" % "|".join(PHRASES),
flags=re.IGNORECASE | re.UNICODE)
Run Code Online (Sandbox Code Playgroud)
问题是,在*单词边界旁边无法检测到\b。
print(MATCHER.search('Well f*** you!')) # Fail - Does not find f***
print(MATCHER.search('Well f***!')) # Fail - Does not find f***
print(MATCHER.search('f***')) # Fail - Does not find f***
print(MATCHER.search('f*** this!')) # Fail - Does not find f***
print(MATCHER.search('secret code is 123f***')) # Pass - Should not match …Run Code Online (Sandbox Code Playgroud) 我有一个形成的评论列表.客户要求我们使用亵渎过滤器在发布之前检查评论.我有一个ProfanityFilter.cs类.唯一的问题是我不确定如何整合这两者.
简单地说,如何让评论在发布之前点击过滤器.
提前致谢!
以下是形成评论列表的代码:
public void ProcessRequest (HttpContext context)
{
// ****************************************
if (context.Request["postform"] == "1")
{
videomessage myVideoMessage = new videomessage();
myVideoMessage.video_id = context.Request["video_id"];
myVideoMessage.first_name_submitter = context.Request["first_name_submitter"];
myVideoMessage.last_initial_submitter = context.Request["last_initial_submitter"];
myVideoMessage.message = context.Request["message"];
myVideoMessage.status = "0";
myVideoMessage.Save();
}
// ****************************************
// ****************************************
StringBuilder myStringBuilder = new StringBuilder();
// PULL VIDEOMESSAGES FOR VIDEO_ID
videomessage[] myCommentsList = new videomessage().Listing("video_id", context.Request["video_id"], "entry_date" , "DESC");
// FORM COMMENTS IF MORE THAN ONE COMMENT EXISTS
foreach (videomessage tmpMessage in myCommentsList)
{
if (tmpMessage.status == …Run Code Online (Sandbox Code Playgroud) 如何创建好的坏词聊天过滤器?例如,让用户不要输入Poop并向他们发送警告.
然而,它也应该过滤pooopppp,P00p,Po0p,P0o0o0op,(或他们尝试使用的任何技巧)等.
profanity ×7
regex ×5
filter ×4
java ×2
php ×2
.net ×1
bukkit ×1
c# ×1
eclipse ×1
iphone ×1
match ×1
objective-c ×1
preg-replace ×1
web-services ×1