การทำความสะอาดคำสาบานอย่างรวดเร็ว (และคำพูดของพวกเขา) ในสายอักขระ
ขณะนี้มีปัญหาด้านประสิทธิภาพของเวอร์ชันล่าสุด (0.7.0) ขอแนะนำให้ใช้เวอร์ชันเสถียรล่าสุด 0.6.1
ไลบรารีนี้ได้รับแรงบันดาลใจจากคำหยาบคายในแพ็กเกจของ Ben Friedland เร็วกว่าเวอร์ชันดั้งเดิมอย่างเห็นได้ชัด โดยใช้การเปรียบเทียบสตริงแทน regex
รองรับการสะกดคำที่แก้ไขแล้ว (เช่น 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
จะแทนที่คำสาบานแต่ละคำด้วยเครื่องหมายดอกจัน 4 อัน ****
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