Skip to main content

A Python library to clean English swear words in strings

Project description

better_profanity

A Python library to clean swear words in strings.

release python license

Inspired from package profanity of Ben Friedland, this library only supports English language and is much faster than the original one, by using string comparison instead of regex.

Requirements

To make use of Python static tying, this package only works with Python 3.6+.

Note for non-English words

Due to the library's algorithm, it (now) only supports ASCII characters.

Words, such as аушвиц and หญิงชาติชั่ว, will fail to be checked.

Usage

By default, on the first .censor() call, profanity initializes a set of words, from profanity_wordlist.txt, to be used to compare against the input texts. This set of words will be stored in memory (~5MB+).

1. Censor swear words from a text

By default, profanity replaces each swear words with 4 asterisks ****.

from better_profanity import profanity

if __name__ == "__main__":
    text = "You p1ec3 of sHit."

    censored_text = profanity.censor(text)
    print(censored_text)    # You **** of ****.

2. Censor swear words with custom character

4 instances of 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)    # You ---- of ----.

3. Check if the string contains any swear words

from better_profanity import profanity

if __name__ == "__main__":
    dirty_text = "That l3sbi4n did a very good H4ndjob."

    profanity.contains_profanity(dirty_text) # True

4. Censor swear words with a custom wordlist

The provided list of words will replace the default wordlist.

4 instances of 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."

    custom_badwords = ['happy', 'jolly', 'merry']
    profanity.load_censor_words(custom_badwords)

    print(profanity.contains_profanity("Fuck you!"))
    # Fuck you

    print(profanity.contains_profanity("Have a merry day! :)"))
    # Have a **** day! :)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

better_profanity-0.2.tar.gz (5.4 kB view hashes)

Uploaded Source

Built Distribution

better_profanity-0.2-py3-none-any.whl (7.8 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page