Membersihkan kata-kata makian (dan ucapannya) dengan sangat cepat dalam string
Saat ini terdapat masalah kinerja dengan versi terbaru (0.7.0). Disarankan untuk menggunakan versi stabil terakhir 0.6.1.
Terinspirasi dari paket senonoh Ben Friedland, perpustakaan ini jauh lebih cepat daripada yang asli, dengan menggunakan perbandingan string, bukan regex.
Ini mendukung ejaan yang dimodifikasi (seperti p0rn
, h4NDjob
, handj0b
dan b*tCh
).
Paket ini bekerja dengan Python 3.5+
dan PyPy3
.
pip3 install better_profanity
Hanya karakter Unicode dari kategori Ll
, Lu
, Mc
dan Mn
yang ditambahkan. Lebih lanjut tentang kategori Unicode dapat ditemukan di sini.
Belum semua bahasa didukung, seperti bahasa Mandarin .
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 ****.
Semua ejaan kata yang diubah di profanity_wordlist.txt akan dibuat. Misalnya, kata handjob
akan dimuat ke dalam:
'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'
Pemetaan lengkap perpustakaan dapat ditemukan di profanity.py.
Secara default, profanity
menggantikan setiap kata makian dengan 4 tanda bintang ****
.
from better_profanity import profanity
if __name__ == "__main__" :
text = "You p1ec3 of sHit."
censored_text = profanity . censor ( text )
print ( censored_text )
# You **** of ****.
Fungsi .censor()
juga menyembunyikan kata-kata yang dipisahkan tidak hanya oleh spasi kosong
tetapi juga pembagi lainnya, seperti _
, ,
dan .
. Kecuali @, $, *, ", '
.
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 contoh karakter pada parameter kedua di .censor()
akan digunakan untuk menggantikan kata makian.
from better_profanity import profanity
if __name__ == "__main__" :
text = "You p1ec3 of sHit."
censored_text = profanity . censor ( text , '-' )
print ( censored_text )
# You ---- of ----.
Fungsi .contains_profanity()
mengembalikan True
jika ada kata dalam string tertentu yang memiliki kata dalam daftar kata.
from better_profanity import profanity
if __name__ == "__main__" :
dirty_text = "That l3sbi4n did a very good H4ndjob."
profanity . contains_profanity ( dirty_text )
# True
List
Fungsi load_censor_words
mengambil List
string sebagai kata-kata yang disensor. Daftar yang disediakan akan menggantikan daftar kata default.
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! :)
Fungsi `load_censor_words_from_file mengambil nama file, yaitu file teks dan setiap kata dipisahkan oleh baris.
from better_profanity import profanity
if __name__ == "__main__" :
profanity . load_censor_words_from_file ( '/path/to/my/project/my_wordlist.txt' )
Fungsi load_censor_words
dan load_censor_words_from_file
mengambil argumen kata kunci whitelist_words
untuk mengabaikan kata-kata dalam daftar kata.
Ini paling baik digunakan ketika hanya ada beberapa kata yang ingin Anda abaikan dalam daftar kata.
# 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
, dan oleh karena itu, kata tersebut tidak akan disaring. Masalah ini diangkat di #5. python3 tests.py
Silakan baca CONTRIBUTING.md untuk detail tentang kode etik kami, dan proses pengajuan permintaan penarikan kepada kami.
Proyek ini dilisensikan di bawah Lisensi MIT - lihat file LICENSE.md untuk detailnya