Blitzschnelle Reinigung von Schimpfwörtern (und deren Leetspeak) in Zeichenfolgen
Derzeit gibt es ein Leistungsproblem mit der neuesten Version (0.7.0). Es wird empfohlen, die letzte stabile Version 0.6.1 zu verwenden.
Inspiriert von der Paket-Schimpfigkeit von Ben Friedland ist diese Bibliothek deutlich schneller als das Original, da sie einen String-Vergleich anstelle von Regex verwendet.
Es unterstützt modifizierte Schreibweisen (wie p0rn
, h4NDjob
, handj0b
und b*tCh
).
Dieses Paket funktioniert mit Python 3.5+
und PyPy3
.
pip3 install better_profanity
Es werden nur Unicode-Zeichen der Kategorien Ll
, Lu
, Mc
und Mn
hinzugefügt. Weitere Informationen zu Unicode-Kategorien finden Sie hier.
Es werden noch nicht alle Sprachen unterstützt, beispielsweise Chinesisch .
from better_profanity import profanity
if __name__ == "__main__" :
profanity . load_censor_words ()
text = "You p1ec3 of sHit."
censored_text = profanity . censor ( text )
print ( censored_text )
# You **** of ****.
Alle geänderten Schreibweisen von Wörtern in profanity_wordlist.txt werden generiert. Das Wort handjob
würde beispielsweise geladen werden in:
'handjob' , 'handj*b' , 'handj0b' , 'handj@b' , 'h@ndjob' , 'h@ndj*b' , 'h@ndj0b' , 'h@ndj@b' ,
'h*ndjob' , 'h*ndj*b' , 'h*ndj0b' , 'h*ndj@b' , 'h4ndjob' , 'h4ndj*b' , 'h4ndj0b' , 'h4ndj@b'
Die vollständige Zuordnung der Bibliothek finden Sie in profanity.py.
Standardmäßig werden bei profanity
alle Schimpfwörter durch 4 Sternchen ****
ersetzt.
from better_profanity import profanity
if __name__ == "__main__" :
text = "You p1ec3 of sHit."
censored_text = profanity . censor ( text )
print ( censored_text )
# You **** of ****.
Die Funktion .censor()
verbirgt auch Wörter, die nicht nur durch ein Leerzeichen getrennt sind
aber auch andere Teiler wie _
, ,
und .
. Außer @, $, *, ", '
.
from better_profanity import profanity
if __name__ == "__main__" :
text = "...sh1t...hello_cat_fuck,,,,123"
censored_text = profanity . censor ( text )
print ( censored_text )
# "...****...hello_cat_****,,,,123"
4 Instanzen des Zeichens im zweiten Parameter in .censor()
werden verwendet, um die Schimpfwörter zu ersetzen.
from better_profanity import profanity
if __name__ == "__main__" :
text = "You p1ec3 of sHit."
censored_text = profanity . censor ( text , '-' )
print ( censored_text )
# You ---- of ----.
Die Funktion .contains_profanity()
gibt True
zurück, wenn für ein beliebiges Wort in der angegebenen Zeichenfolge ein Wort in der Wortliste vorhanden ist.
from better_profanity import profanity
if __name__ == "__main__" :
dirty_text = "That l3sbi4n did a very good H4ndjob."
profanity . contains_profanity ( dirty_text )
# True
List
Die Funktion load_censor_words
akzeptiert eine List
von Zeichenfolgen als zensierte Wörter. Die bereitgestellte Liste ersetzt die Standardwortliste.
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! :)" ))
# Have a **** day! :)
Die Funktion „load_censor_words_from_file“ verwendet einen Dateinamen, bei dem es sich um eine Textdatei handelt, und jedes Wort ist durch Zeilen getrennt.
from better_profanity import profanity
if __name__ == "__main__" :
profanity . load_censor_words_from_file ( '/path/to/my/project/my_wordlist.txt' )
Die Funktionen load_censor_words
und load_censor_words_from_file
verwenden ein Schlüsselwortargument whitelist_words
um Wörter in einer Wortliste zu ignorieren.
Es wird am besten verwendet, wenn es nur wenige Wörter gibt, die Sie in der Wortliste ignorieren möchten.
# Use the default wordlist
profanity . load_censor_words ( whitelist_words = [ 'happy' , 'merry' ])
# or with your custom words as a List
custom_badwords = [ 'happy' , 'jolly' , 'merry' ]
profanity . load_censor_words ( custom_badwords , whitelist_words = [ 'merry' ])
# or with your custom words as a text file
profanity . load_censor_words_from_file ( '/path/to/my/project/my_wordlist.txt' , whitelist_words = [ 'merry' ])
from better_profanity import profanity
if __name__ == "__main__" :
custom_badwords = [ 'happy' , 'jolly' , 'merry' ]
profanity . add_censor_words ( custom_badwords )
print ( profanity . contains_profanity ( "Happy you, fuck!" ))
# **** you, ****!
profanity . censor ( 'I just have sexx' )
# returns 'I just have sexx'
profanity . censor ( 'jerkk off' )
# returns 'jerkk off'
s & m
, und wird daher nicht herausgefiltert. Dieses Problem wurde in #5 angesprochen. python3 tests.py
Bitte lesen Sie CONTRIBUTING.md für Einzelheiten zu unserem Verhaltenskodex und dem Verfahren zur Übermittlung von Pull-Anfragen an uns.
Dieses Projekt ist unter der MIT-Lizenz lizenziert – Einzelheiten finden Sie in der Datei LICENSE.md