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 details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

Details for the file better_profanity-0.2.tar.gz.

File metadata

  • Download URL: better_profanity-0.2.tar.gz
  • Upload date:
  • Size: 5.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.18.4 setuptools/40.5.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.3

File hashes

Hashes for better_profanity-0.2.tar.gz
Algorithm Hash digest
SHA256 a19d37a9a843b82cdc2b1fdfe5cee18dfebd56f07231526c1f6ff865e1a1138f
MD5 a0c5f5173467578602c23ceecb9ed395
BLAKE2b-256 ac7d72b78a12fec4ec2e8d803e70d0078b76d0a928de1fc159273d04b3dd764f

See more details on using hashes here.

File details

Details for the file better_profanity-0.2-py3-none-any.whl.

File metadata

  • Download URL: better_profanity-0.2-py3-none-any.whl
  • Upload date:
  • Size: 7.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.18.4 setuptools/40.5.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.3

File hashes

Hashes for better_profanity-0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 974e5920770469fd1b0e8cb84bd60c5f5fe1faa69a912276e1dd89304168567b
MD5 2449fc6eaed43d946db49c03b4fa98cc
BLAKE2b-256 a37013660cc0702cc7c7779fea87e7c49930b8f849651b16b45faff546156d74

See more details on using hashes here.

Supported by

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