Building social media website or user generated text content or subject to pass profanity filter.
Profanity is a socially offensive use of language, which may also be called cursing, cussing, swearing, or expletives. Accordingly, profanity is language use that is sometimes deemed impolite, rude, indecent, or culturally offensive. - Wikipedia
Using better-profanity package
Its a python package which is used to censor bad words and custom listed words from the text.
pip install better-profanity
How does this works?
better-profanity package ships with predefined set of bad words by default. it used string comparison to match the given text with predefined words.
We can load custom set of wordlist using
Censor bad words
To censor the bad words we need to use
censor() method from the profanity package. It will filter the swear words from the text.
from better_profanity import profanity text = 'You piec3 of sHIT.' censored = profanity.censor(text) print(censored) # Output: You **** of ****.
Censor words with word dividers
better-profanity package mask the words separated not just the space but also dividers such as
_, , .
from better_profanity import profanity if __name__ == "__main__": text = "...sh1t...hello_cat_fuck,,,,123" censored_text = profanity.censor(text) print(censored_text) # Output: "...****...hello_cat_****,,,,123"
Censor words with custom character
The character in second parameter in
.censor() will be used to replace the swear words.
from better_profanity import profanity if __name__ == "__main__": text = "You p1ec3 of sHit." censored_text = profanity.censor(text, '-') print(censored_text) # Output: You ---- of ----.
Adding custom censor words
load_censor_words takes a
List of strings as censored words. The provided list will replace the default wordlist.
from better_profanity import profanity if __name__ == "__main__": custom_badwords = ['happy', 'jolly', 'merry'] profanity.load_censor_words(custom_badwords) print(profanity.contains_profanity("Have a merry day! :)")) # Output: Have a **** day! :)
We have seen how to use profanity filter with Python. If you like the post please share it in social media and with your friends.