不是很技术,但是......我必须在我们正在开发的新网站中实现一个坏词过滤器.所以我需要一个"好的"坏词列表来为我的数据库提供...任何提示/方向?环顾四周谷歌我找到了这个,这是一个开始,但仅此而已.
是的,我知道这种过滤器很容易逃脱......但客户端将是客户端!:-)
该网站将不得不过滤掉英语和意大利语单词,但对于意大利语,我可以让我的同事帮助我建立社区建立的"parolacce"列表:-) - 一封电子邮件即可.
谢谢你的帮助.
您是否了解任何开源/免费的.NET亵渎过滤器(确切地说是ASP.NET MVC)?我搜索谷歌,但我无法想出任何.如果可能的话,我想避免完全依靠我自己实现它.犯错误或忽略某些事情很容易.
我正在开发一个WordPress插件,用一个列表中随机的新单词取代评论中的坏词.
我现在有2个数组:一个包含坏词,另一个包含好词.
$bad = array("bad", "words", "here");
$good = array("good", "words", "here");
Run Code Online (Sandbox Code Playgroud)
由于我是初学者,我在某个时候陷入困境.
为了取代坏话,我一直在使用$newstring = str_replace($bad, $good, $string);.
我的第一个问题是我想要关闭案例的敏感性,所以我不会把这样的话放在这里,"bad", "Bad", "BAD", "bAd", "BAd", etc但是我需要新单词来保持原始单词的格式,例如,如果我写"Bad",它会被替换为"Words",但如果我输入"bad",它将被替换为"words"等.
我的第一个尝试是使用str_ireplace,但如果原始单词有大写字母,它会忘记.
第二个问题是我不知道如何处理类似这样的用户:"ba d","word s"等.我需要一个想法.
为了使随机选取一个字,我想我可以使用$new = $good[rand(0, count($good)-1)];,然后$newstring = str_replace($bad, $new, $string);.如果你有更好的主意,我会在这里倾听.
我的脚本的一般外观:
function noswear($string)
{
if ($string)
{
$bad = array("bad", "words");
$good = array("good", "words");
$newstring = str_replace($bad, $good, $string);
return $newstring;
}
echo noswear("I see bad words coming!");
Run Code Online (Sandbox Code Playgroud)
预先感谢您的帮助!
我想的是:
foreach (var word in paragraph.split(' ')) {
if (badWordArray.Contains(word) {
// do something about it
}
}
Run Code Online (Sandbox Code Playgroud)
但我确信有更好的方法.
提前致谢!
UPDATE 我不希望自动...删除淫秽我的web应用程序,我想如果我认为"糟糕"一词是用来通知.然后我会自己检查以确保它是合法的.一种自动标记系统.
去年,我正在开展一个圣诞节项目,允许客户通过256个字符的自由文本字段发送电子邮件给他们圣诞节请求.该项目通过在(非常大的)产品数据库中搜索与文本字段匹配的建议产品,但为那些找不到相关产品的客户提供了自由文本选项.
一个显而易见的问题是客户有机会向一些毫无戒心的客户发送明确的请求,公司的品牌围绕着它.
由于各种原因,该项目最终没有进行,亵渎方面是一个方面.
但是,我回过头来考虑这个项目,并想知道这里可以使用哪种验证方式.我知道clbuttic,我知道这是对这种性质的任何问题的标准回应.
我考虑的解决方案是:
所以有两个问题:
NB - 像"亵渎过滤器是邪恶的"这样的答案是无关紧要的.在这种半假设的情况下,我还没有决定实施亵渎过滤器,也没有决定是否实施亵渎过滤器.我只需要用我的编程技巧做到最好(如果可能的话,应该在LAMP堆栈上).
从给定的字符串中删除亵渎单词的正确方法是什么:
1)我有一个在字符串数组中要查找的100个单词的列表.2)处理部分单词的正确方法是什么?大多数人如何处理这个问题?例如,质量这个词.然后有时候一个部分词也很糟糕 - 假设foobar是一个非常亵渎的词我可能想要禁止foobar和foobar*和*foobar.
那么你把所有单词放在一个表达式中还是循环遍历列表?
解决问题的正确方法是什么?我正在使用Groovy/Grails,但欢迎任何现代语言示例.
有一个禁止的单词列表(或更一般的字符串)和另一个列表,让我们说用户邮件.我想从所有邮件中删除所有被禁止的单词.
琐碎的例子:
foreach(string word in wordsList)
{
foreach(string mail in mailList)
{
mail.Replace(word,String.Empty);
}
}
Run Code Online (Sandbox Code Playgroud)
我怎么能改进这个算法?
谢谢你的建议.我投了几个答案,但我没有给任何答案标记,因为它更像是讨论而不是解决方案.有些人错过了带有坏词的禁词.在我的情况下,我不必费心去识别'sh1t'或类似的东西.
在拉拉韦尔,我有一个$string和一个$blacklistArray
$string = 'Cassandra is a clean word so it should pass the check';
$blacklistArray = ['ass','ball sack'];
$contains = str_contains($string, $blacklistArray); // true, contains bad word
Run Code Online (Sandbox Code Playgroud)
结果$contains为true,因此将其标记为包含黑名单字(不正确)。这是因为下面的名称部分包含ass
Ç 屁股安德拉
但是,这是部分匹配,Cassandra并且不是一个坏词,因此不应对其进行标记。仅当字符串中的单词完全匹配时,才应对其进行标记。
任何想法如何做到这一点?
我正在使用RoR开发社交Web应用程序.我意识到防止用户在评论或帖子中插入粗鲁或亵渎的语言可能是一个好主意.
你知道任何解决方案或插件可以帮我防止这样的事吗?
我有一个包含几条Twitter推文的数组,想要删除此数组中包含以下单词之一的所有推文blacklist | blackwords | somemore
谁可以帮我解决这个案子?
我正在使用php和codeigniter框架构建一个Web应用程序,客户端的一个要求是在验证时实现"脏话"过滤器.有谁知道用PHP编写的任何预建解决方案?或者,一个详尽的诅咒词列表,我可以格式化成PHP语法数组并检查它们在用户输入中的存在?谢谢!
对于ASP.NET应用程序,自定义脏话删除/替换器的最佳实践实现方法是什么?
如果这是一个数据表解决方案,是否有免费资源来获取数据?(类似于查找可导入系统进行拼写检查的公共字典表)
我有一个形成的评论列表.客户要求我们使用亵渎过滤器在发布之前检查评论.我有一个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) profanity ×6
php ×5
c# ×4
.net ×2
filter ×2
validation ×2
algorithm ×1
arrays ×1
asp.net ×1
dictionary ×1
laravel ×1
laravel-5 ×1
laravel-5.5 ×1
list ×1
plugins ×1
preg-match ×1
preg-replace ×1
regex ×1
wordpress ×1