การปรับปรุงประสิทธิภาพของโมเดลภาษาผ่านคำศัพท์อัจฉริยะ
โปรเจ็กต์นี้ออกแบบมาเพื่อสำรวจการใช้การประมวลผลล่วงหน้า Billion Word Corpus ด้วยป้ายกำกับ Part-Of-Speech และ Named-Entities เพื่อสร้างคำศัพท์ที่ "ชาญฉลาดยิ่งขึ้น" การใช้เทคนิคเหล่านี้เป็นไปได้ที่จะได้คะแนนความฉงนสนเท่ห์ที่ดีกว่าการใช้คำที่มีตัวบนสุดในคลังข้อมูลเพียงอย่างเดียว
สำหรับคำอธิบายแบบเต็มของการประมวลผลและผลกระทบต่อคะแนนความฉงนสนเท่ห์ที่ได้รับ โปรดดูการปรับปรุงประสิทธิภาพของโมเดลภาษาด้วยคำศัพท์ที่ชาญฉลาดยิ่งขึ้น
โครงการนี้มีสคริปต์ถึง
โปรเจ็กต์ได้รับการออกแบบเพื่อใช้ในสถานที่และไม่มีการติดตั้ง pip เพียงดาวน์โหลดซอร์สจาก GitHub ตั้งค่าตัวเลือกการกำหนดค่า และรันสคริปต์ที่มีหมายเลขตามลำดับ โปรดทราบว่าโค้ดนี้ออกแบบมาสำหรับผู้วิจัย ดังนั้นคาดว่าจะจำเป็นต้องตรวจสอบโค้ดในสคริปต์ที่กำลังเรียกใช้และแก้ไขตัวเลือกตามความจำเป็นเพื่อให้ได้ผลลัพธ์ที่เฉพาะเจาะจง
สคริปต์ของไดเร็กทอรีหลักจะขึ้นหน้าด้วยตัวเลขเพื่อระบุลำดับที่จะรันสคริปต์เหล่านี้ สคริปต์ส่วนใหญ่ในไดเร็กทอรีหลักเป็นชุดที่ค่อนข้างสั้นของการเรียกฟังก์ชันไลบรารีที่เกี่ยวข้อง ก่อนที่จะรันแต่ละสคริปต์ อย่าลืมเปิดสคริปต์ขึ้นมาและตั้งค่าพารามิเตอร์การกำหนดค่าใดๆ เพื่อให้ได้ผลลัพธ์ที่คุณต้องการ
ตัวเลือกการกำหนดค่าส่วนกลางที่ใช้โดยสคริปต์หลายตัวได้รับการตั้งค่าไว้ใน ./configs/config.py อย่าลืมเข้าไปในไฟล์นี้และแก้ไขเส้นทางไปยังข้อมูลของคุณก่อนที่จะเรียกใช้สคริปต์ใดๆ ด้านล่าง
00_StanfordCoreNLPServer.py : เริ่มตัวแยกวิเคราะห์ Stanford Core NLP โดยใช้ไฟล์การกำหนดค่า ./configs/snlp_server.py สคริปต์จะบล็อกในขณะที่เซิร์ฟเวอร์กำลังทำงาน หากคุณต้องการ คุณสามารถเริ่มเซิร์ฟเวอร์ได้ด้วยตนเอง สคริปต์นี้มีไว้เพื่อความสะดวกเท่านั้น
10_ExtractUniqueSents.py : แยกประโยคที่ไม่ซ้ำกันจาก Billion Word Corpus ก่อนที่จะแยกวิเคราะห์ ใกล้ด้านบนของไฟล์คือคำแนะนำบางประการเกี่ยวกับวิธีดาวน์โหลดและตั้งค่าคลังข้อมูลดิบ
12_STParseBWCorpus.py : เรียกใช้ประโยคที่ไม่ซ้ำกันทั้งหมดผ่าน Stanford Parser โปรดทราบว่าขั้นตอนนี้ใช้เวลานานมาก (อาจถึงหนึ่งวันเต็ม) และได้รับประโยชน์อย่างมากจากโปรเซสเซอร์แบบ Multi-core ดูหมายเหตุในไฟล์เกี่ยวกับรันไทม์
14_RemoveDuplicates.py : วินาทีจะผ่านข้อมูลเพื่อลบประโยคที่ซ้ำกันที่เกิดขึ้นหลังจากการแยกวิเคราะห์/การทำให้เป็นมาตรฐาน
20_CreateEnglishDictionary.py : จำเป็นสำหรับการสร้างคำศัพท์อัจฉริยะ
22_CreateVocab.py : สคริปต์นี้สร้างคำศัพท์ประเภทต่างๆ มีบล็อก if/elif ขนาดใหญ่ในไฟล์เพื่อให้ผู้ใช้สามารถเลือกประเภทคำศัพท์ที่จะสร้างได้
24_IndexVocab.py : สร้างข้อมูลคลังข้อมูลที่จัดทำดัชนีซึ่งใช้สำหรับการฝึกโมเดลภาษา อีกครั้งที่มีบล็อก if/elif ขนาดใหญ่อยู่ที่นี่ ซึ่งผู้ใช้จำเป็นต้องตั้งค่าเพื่อเลือกประเภทคำศัพท์ที่จะใช้
30_TrainBasicLM.py : ตั้งค่าและดำเนินการฝึกอบรมโมเดล มีกลุ่มข้อความที่นี่อีกครั้งเพื่อให้ผู้ใช้สามารถเลือกคำศัพท์ที่จะฝึกฝนได้ นอกจากนี้ ผู้ใช้จำเป็นต้องเลือกไฟล์ที่มีพารามิเตอร์การกำหนดค่าโมเดล พารามิเตอร์การกำหนดค่าโมเดลจะถูกจัดเก็บไว้ในไดเร็กทอรีการกำหนดค่าภายใต้ชื่อไฟล์ เช่น L1_2048_512.py
32_TestPerplexity : รันการทดสอบความงุนงงกับโมเดลที่ได้รับการฝึก เลือกโมเดลที่จะทดสอบที่ด้านล่างของสคริปต์
34_NextWordPrediction.py : อนุญาตให้ผู้ใช้ป้อนส่วนแรกของประโยคและเรียกโมเดลเพื่อทำนายคำถัดไป กำหนดค่าโมเดลที่จะใช้ในส่วนหลักของสคริปต์
โค้ดบางส่วนได้รับการดัดแปลงจากชุดเครื่องมือจำลองภาษาของมหาวิทยาลัยซาร์ลันด์ ดู TF-NNLM-TK
โค้ดดังกล่าวเป็นส่วนหนึ่งซึ่งอิงตามโมเดลตัวอย่าง TensorflowPTB-LM