go-away
go-away copied to clipboard
Support profanity levels
Add support for multiple level of profanity detection.
e.g.
func IdProfane(s string, level int) bool {
// ...
}
func IsProfane(s string) bool {
return IsProfane(s, 1)
}
Where
level | description | example |
---|---|---|
1 | low filter | fuck , bitch |
2 | moderate filter | boobs , ass |
3 | strict filter | adult , blood , period |
* Level 2 inherits from level 1 and level 3 inherits from level 2
Note that the strict filter would have a lot of false positive, but its goal would be to prevent as much bad things from getting by as possible, even at the cost of those false positives.
The point here is that by default, the level 1 filter should be used, but if you don't trust where the strings are coming from at all, then you can scale the filter's strictness based on the level of trust.
You could even let users censor based on the kind of profanity: hateful speech, simple vulgarity, etc. like https://github.com/finnbear/rustrict/blob/master/src/profanity.csv does.