ฉันดีใจที่ได้ประกาศการเปิดตัวแพ็คเกจ Python ครั้งแรกของฉันคือ englishidioms
แพ็คเกจนี้เป็นเครื่องมือที่ทรงพลังสำหรับการระบุสำนวนภาษาอังกฤษวลีและคำกริยาวลีภายในประโยคโดยมีฐานข้อมูลการแสดงออกที่ไม่ซ้ำกัน 22,209
ความเป็นมา: เป็นส่วนหนึ่งของโครงการการประมวลผลภาษาธรรมชาติส่วนบุคคล (NLP) ฉันพบว่าจำเป็นต้องมีแพ็คเกจ Python ที่สามารถรับรู้การแสดงออกของสำนวนภายในประโยคภาษาอังกฤษ ด้วยความประหลาดใจของฉันฉันไม่พบวิธีแก้ปัญหาที่เหมาะสมดังนั้นฉันจึงตัดสินใจที่จะสร้างตั้งแต่เริ่มต้น
การติดตั้ง: คุณสามารถติดตั้งแพ็คเกจได้อย่างง่ายดายโดยใช้ PIP: pip install englishidioms
วิธีใช้:
>>> from englishidioms import find_idioms
>>> sentence = "The plan didn't work, but I'll give you an a for effort for trying."
>>> results = find_idioms(sentence, limit=1)
>>> print(results)
[{'phrase': '*an A for effort', 'definition': 'acknowledgement for having tried to do something, even if it was not successful. (*Typically: get ~; give someone ~.) _ The plan didn’t work, but I’ll give you an A for effort for trying.'}]
ข้อโต้แย้ง
sentence
(STR) - ประโยคภาษาอังกฤษที่คุณต้องการวิเคราะห์ (จำเป็น)limit
(int) - จำนวนสูงสุดของผลลัพธ์ที่สั่งซื้อโดยจุดจับคู่ (ค่าเริ่มต้น: 10)html
(BOOL) - กลับวลีและคำจำกัดความในมาร์กอัป HTML เพื่อรักษารูปแบบดั้งเดิมจากพจนานุกรม (ค่าเริ่มต้น: เท็จ)span
(bool) - ส่งคืนการจับคู่ช่วงในประโยค (ค่าเริ่มต้น: เท็จ)entry_range
bool) - ส่งคืนพจนานุกรมเริ่มต้น/สิ้นสุดบรรทัดสำหรับการดีบัก (ค่าเริ่มต้น: เท็จ)entry_id
(บูล) - ส่งคืนรหัสรายการพจนานุกรมในวลี.JSONสำหรับการดีบัก (ค่าเริ่มต้น: เท็จ)มันทำงานอย่างไร (ง่ายขึ้น):
แพ็คเกจนี้ได้รับการพัฒนาโดยการแยกวิเคราะห์พจนานุกรมทั้งหมดใน "พจนานุกรม McGraw-Hill ของสำนวนอเมริกันและคำกริยาวลี" ด้วยการใช้ไลบรารี Python เช่น Python-Docx และใช้ประโยชน์จากการจัดรูปแบบที่กำหนดไว้ล่วงหน้าฉันจะแยกประเด็นสำคัญจากแต่ละรายการ ประเด็นสำคัญเหล่านี้รวมถึง:
ค่าคงที่: คลาสคงที่ของคำที่เป็นแกนหลักของการแสดงออกของสำนวน ตัวแปร: คลาสตัวแปรของคำที่สามารถจับคู่ได้อย่างกว้างขวาง ค่าคงที่ทางเลือก: คำหรือวลีเพิ่มเติมเพิ่มเติมภายในนิพจน์สำนวนเดียว คำกริยา: คำกริยาที่มักจะนำหน้าวลีสำนวน
ตัวอย่างเช่นพิจารณารายการพจนานุกรม:
*A (ตาย) ringer (สำหรับ ใครบางคน ) รูปที่คล้ายกันมากในลักษณะที่ปรากฏกับคนอื่น (*โดยทั่วไป: เป็น ~; ดูเหมือน ~.) _ คุณแน่ใจว่าเป็นคนที่ตายแล้วสำหรับพี่ชายของฉัน _ เขาไม่ได้เป็นคนสั่นสำหรับชัคเหรอ?
สำหรับรายการนี้เราระบุ:
ทุกการโทรไปยังวิธี 'find_idioms' อัลกอริทึมการค้นหาจะตรวจสอบประเด็นสำคัญเหล่านี้ในรายการพจนานุกรม 22,209 รายการและจับคู่กับประโยคที่กำหนดโดยพิจารณาจากการเปลี่ยนแปลงทางไวยากรณ์และลำดับคำ จากนั้นจะส่งคืนรายการรายการที่ตรงกัน
ผลงาน:
ฉันทดสอบแพ็คเกจนี้ในประโยค 40,442 ประโยคจากหนังสือและตรวจพบรายการพจนานุกรมที่ตรงกันใน 91% ของกรณี นอกจากนี้เวลาดำเนินการเฉลี่ยสำหรับการประมวลผลประโยคอยู่ที่ประมาณ 3 วินาที
รายละเอียดโครงการ
โครงการนี้แบ่งออกเป็นหลายขั้นตอนสำคัญ:
1. การรับข้อมูล:
เราเริ่มต้นด้วยการได้รับวัสดุแหล่งที่มาจาก "พจนานุกรม McGraw-Hill ของสำนวนอเมริกันและคำกริยาวลี" คุณสามารถเข้าถึงสำเนาของทรัพยากรนี้ในรูปแบบ PDF ได้ที่นี่
ต่อไปเราจะแปลง PDF เป็นรูปแบบที่ใช้งานได้มากขึ้นเอกสาร DOCX ที่เรียกว่า 'Clean-output.docx' เราฟอร์แมตมันจากเลย์เอาต์สองคอลัมน์เป็นข้อความคอลัมน์เดียว โปรดทราบว่ารายละเอียดทางเทคนิคของกระบวนการแปลงนี้ไม่ได้กล่าวถึงในเอกสารนี้
2. การเตรียมข้อมูล:
เราผ่านชุดของสิบสองขั้นตอนในการประมวลผลและปรับแต่งข้อมูลจาก 'clean-output.docx' และบันทึกใน 'phrases.json' แต่ละขั้นตอนได้รับการจัดการโดยโมดูล Python เฉพาะ:
สิ่งสำคัญคือการเรียกใช้โมดูลเหล่านี้ในลำดับที่ระบุเพื่อสร้าง 'phrases.json' เวอร์ชันสุดท้ายซึ่งเป็นฐานข้อมูลที่ครอบคลุมสำหรับข้อมูลจาก 'clean-output.docx' บน Windows CMD คุณสามารถเรียกใช้ตามลำดับโดยใช้คำสั่งนี้:
python A_breakitup.py && python A_splitrandom.py && python B_breakitup.py && python C_readit.py && python D_readit.py && python E_tidyup.py && python F_tidyup.py && python FF_manualoverride.py && python G_asterisk.py && python H_hyphenated_words.py && python I_getpatterns.py && python J_getwordforms.py && python K_getexamples.py
3. ฟังก์ชั่นหลัก:
หัวใจของโครงการคือโมดูล 'L_ALGORITHM.PY' มันใช้ 'วลี. json' เพื่อจับคู่การแสดงออกของสำนวนกับประโยคภาษาอังกฤษ โมดูลนี้มีความสำคัญสำหรับแพ็คเกจทำให้สามารถระบุสำนวนวลีและคำกริยาวลีในประโยค
หัวใจของโครงการคือโมดูล 'L_ALGORITHM.PY' ซึ่งตั้งอยู่ในไดเรกทอรี 'EnglishIDIOMS' มันใช้ 'วลี. json' เพื่อจับคู่การแสดงออกของสำนวนกับประโยคภาษาอังกฤษ การรักษา 'l_algorithm.py' และ 'phrases.json' ในไดเรกทอรี 'EnglishIdioms' มีวัตถุประสงค์สองประการ:
ขนาดแพ็คเกจลดลง: โดยการแยกส่วนประกอบหลักเหล่านี้เราทำให้แพ็คเกจเล็กลงในแง่ของพื้นที่ดิสก์ ซึ่งหมายความว่าผู้ใช้จะต้องติดตั้งส่วนประกอบที่จำเป็นเท่านั้นทำให้แพ็คเกจมีน้ำหนักเบาและมีประสิทธิภาพมากขึ้น
การพึ่งพาที่ย่อเล็กสุด: การรวมกันของ 'L_ALGORITHM.PY' และ 'phrases.json' ต้องใช้การพึ่งพาภายนอกน้อยลงเมื่อเทียบกับแพ็คเกจทั้งหมด สิ่งนี้ทำให้กระบวนการติดตั้งง่ายขึ้นสำหรับผู้ใช้ปลายทางลดความจำเป็นในการติดตั้งไลบรารีและข้อกำหนดเพิ่มเติมที่อาจไม่จำเป็นสำหรับการใช้งานเฉพาะ
ไดเรกทอรี 'EnglishIdioms' ยังมีทรัพยากร NLTK ที่จำเป็นสามตัวที่จำเป็นเพื่อเรียกใช้ 'L_ALGORITHM.PY'
ด้วยการใช้วิธีการที่มีความคล่องตัวนี้เรามั่นใจได้ว่าผู้ใช้สามารถเข้าถึงฟังก์ชั่นหลักของแพ็คเกจได้อย่างรวดเร็วและง่ายดายโดยไม่ต้องใช้ค่าใช้จ่ายใด ๆ
4. การตรวจสอบและทดสอบ:
เพื่อให้แน่ใจว่าคุณภาพข้อมูลและประสิทธิภาพของอัลกอริทึมการค้นหาใน 'l_algorithm.py' เราใช้สามโมดูลเพิ่มเติม:
โปรดทราบว่าสำหรับผู้ใช้ปลายทางที่ต้องการใช้แพ็คเกจเฉพาะ 'l_algorithm.py' และ 'phrases.json' เท่านั้น โมดูลอื่น ๆ ส่วนใหญ่สำหรับการประมวลผลข้อมูลและการตรวจสอบในระหว่างการพัฒนา
วิธีการมีส่วนร่วม:
โครงการทั้งหมดเป็นโอเพ่นซอร์สและมีอยู่ใน GitHub อย่าลังเลที่จะสำรวจรหัสทำการปรับปรุงและมีส่วนร่วมในการพัฒนา
ข้อจำกัดความรับผิดชอบ: แพ็คเกจ Python นี้ได้รับการออกแบบมาเพื่อให้ผู้ใช้สามารถเข้าถึงคอลเลกชันของสำนวนและคำกริยาวลีที่ปรากฏใน "พจนานุกรม McGraw-Hill ของสำนวนอเมริกันและคำกริยาวลี" โปรดทราบว่าแพ็คเกจนี้ไม่ได้รับการรับรองหรือได้รับอนุญาตจาก McGraw-Hill Companies, Inc. ซึ่งเป็นผู้ถือลิขสิทธิ์ของพจนานุกรม
ประกาศลิขสิทธิ์: "พจนานุกรม McGraw-Hill ของสำนวนอเมริกันและคำกริยาวลี" เป็นเนื้อหาที่มีลิขสิทธิ์และการใช้งานอยู่ภายใต้เงื่อนไขลิขสิทธิ์ที่กำหนดโดย McGraw-Hill Companies, Inc. แพคเกจนี้ขึ้นอยู่กับเนื้อหาที่ได้มาจากสำเนาส่วนตัวของ หนังสือ.
การใช้งานที่ตั้งใจไว้: แพ็คเกจ Python นี้มีวัตถุประสงค์เพื่อการศึกษาและการวิจัยเท่านั้นและสำหรับการใช้งานส่วนตัวไม่ใช่เชิงพาณิชย์ มันไม่ได้มีไว้สำหรับแอปพลิเคชันเชิงพาณิชย์
ความรับผิดชอบของผู้ใช้: โดยการใช้แพ็คเกจ Python นี้คุณรับทราบว่าคุณต้องปฏิบัติตามกฎหมายลิขสิทธิ์และข้อกำหนดการใช้งานที่ระบุไว้ในงานต้นฉบับ คุณได้รับอนุญาตให้ใช้แพ็คเกจนี้เพื่อวัตถุประสงค์ส่วนตัวที่ไม่ใช่เชิงพาณิชย์เท่านั้น แอปพลิเคชันเชิงพาณิชย์หรือการแจกจ่ายเอาท์พุทของแพ็คเกจนี้อาจต้องได้รับความยินยอมเป็นลายลักษณ์อักษรล่วงหน้าจากผู้จัดพิมพ์ บริษัท McGraw-Hill Companies, Inc. ได้รับการสนับสนุนอย่างมากว่าผู้ใช้ที่ตั้งใจจะใช้แพ็คเกจนี้เป็นประจำพิจารณาซื้อสำเนาส่วนตัวของตนเอง "พจนานุกรม McGraw-Hill ของสำนวนอเมริกันและคำกริยาวลี" เพื่อสนับสนุนผู้เขียนและปฏิบัติตามกฎหมายลิขสิทธิ์
สนับสนุนผู้แต่ง: หากคุณตั้งใจจะใช้เนื้อหาของแพ็คเกจนี้เพื่อวัตถุประสงค์ทางการค้าฉันขอแนะนำอย่างยิ่งให้คุณได้รับสิทธิ์และใบอนุญาตที่จำเป็นจาก McGraw-Hill Companies, Inc. เพื่อเข้าถึงสำนวนและคำกริยาวลีทั้งหมดให้พิจารณาพิจารณา การซื้อสำเนาส่วนตัวของคุณเองเกี่ยวกับ "พจนานุกรม McGraw-Hill ของสำนวนอเมริกันและคำกริยาวลี"
ความรับผิด: ผู้สร้างและผู้ดูแลแพ็คเกจ Python นี้จะไม่รับผิดชอบต่อการละเมิดลิขสิทธิ์หรือการใช้แพ็คเกจในทางที่ผิด ผู้ใช้มีหน้าที่รับผิดชอบในการปฏิบัติตามข้อกำหนดทางกฎหมายและลิขสิทธิ์ทั้งหมดเมื่อใช้แพ็คเกจนี้
ฉันสนับสนุนการใช้งานด้านจริยธรรมและถูกต้องตามกฎหมายของแพ็คเกจนี้โดยเคารพสิทธิของผู้ถือลิขสิทธิ์และผู้แต่ง โปรดใช้อย่างรับผิดชอบ