تنظيف سريع للغاية للكلمات البذيئة (وأحاديثها) في السلاسل
توجد حاليًا مشكلة في الأداء مع الإصدار الأحدث (0.7.0). يوصى باستخدام الإصدار المستقر الأخير 0.6.1.
مستوحاة من الألفاظ النابية لحزمة بن فريدلاند، هذه المكتبة أسرع بكثير من المكتبة الأصلية، وذلك باستخدام مقارنة السلسلة بدلاً من التعبير العادي.
وهو يدعم التهجئة المعدلة (مثل p0rn
و h4NDjob
و handj0b
و b*tCh
).
تعمل هذه الحزمة مع Python 3.5+
و PyPy3
.
pip3 install better_profanity
تتم إضافة أحرف Unicode فقط من الفئات Ll
و Lu
و Mc
و Mn
. يمكن العثور على المزيد عن فئات Unicode هنا.
ليست كل اللغات مدعومة حتى الآن، مثل الصينية .
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 ****.
سيتم إنشاء جميع التهجئة المعدلة للكلمات في ملف profanity_wordlist.txt. على سبيل المثال، سيتم تحميل كلمة handjob
إلى:
'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'
يمكن العثور على الخريطة الكاملة للمكتبة على موقع profanity.py.
بشكل افتراضي، تستبدل profanity
كل كلمة بذيئة بأربع علامات نجمية ****
.
from better_profanity import profanity
if __name__ == "__main__" :
text = "You p1ec3 of sHit."
censored_text = profanity . censor ( text )
print ( censored_text )
# You **** of ****.
تعمل الدالة .censor()
أيضًا على إخفاء الكلمات المفصولة ليس فقط بمسافة فارغة
ولكن أيضًا فواصل أخرى، مثل _
و ,
و .
. باستثناء @, $, *, ", '
.
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 مثيلات للحرف في المعلمة الثانية في .censor()
لاستبدال الكلمات البذيئة.
from better_profanity import profanity
if __name__ == "__main__" :
text = "You p1ec3 of sHit."
censored_text = profanity . censor ( text , '-' )
print ( censored_text )
# You ---- of ----.
الدالة .contains_profanity()
تُرجع True
إذا كانت أي كلمة في السلسلة المحددة تحتوي على كلمة موجودة في قائمة الكلمات.
from better_profanity import profanity
if __name__ == "__main__" :
dirty_text = "That l3sbi4n did a very good H4ndjob."
profanity . contains_profanity ( dirty_text )
# True
List
تأخذ وظيفة load_censor_words
List
من السلاسل ككلمات خاضعة للرقابة. ستحل القائمة المقدمة محل قائمة الكلمات الافتراضية.
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! :)
الوظيفة `load_Censor_words_from_file تأخذ اسم ملف، وهو ملف نصي ويتم فصل كل كلمة بأسطر.
from better_profanity import profanity
if __name__ == "__main__" :
profanity . load_censor_words_from_file ( '/path/to/my/project/my_wordlist.txt' )
تستخدم الدالة load_censor_words
و load_censor_words_from_file
وسيطة الكلمة الرئيسية whitelist_words
لتجاهل الكلمات الموجودة في قائمة الكلمات.
من الأفضل استخدامه عندما لا يكون هناك سوى عدد قليل من الكلمات التي ترغب في تجاهلها في قائمة الكلمات.
# 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
، وبالتالي لن تتم تصفيتها. وقد أثيرت هذه المشكلة في رقم 5. python3 tests.py
يرجى قراءة CONTRIBUTING.md للحصول على تفاصيل حول قواعد السلوك لدينا، وعملية إرسال طلبات السحب إلينا.
تم ترخيص هذا المشروع بموجب ترخيص MIT - راجع ملف LICENSE.md للحصول على التفاصيل