นี่คือการนำ Keras ไปใช้สำหรับงานจำแนกประโยคโดยใช้ CNN
ชุดข้อมูลสำหรับงานข้างต้นได้มาจากโครงการเกณฑ์มาตรฐานความเข้าใจภาษาธรรมชาติ
ข้อความที่ใช้ในการฝึกอบรมแบ่งออกเป็น 6 หมวดหมู่ ได้แก่ AddToPlaylist, BookRestaurant, GetWeather , RateBook , SearchCreativeWork, SearchScreeningEvent แต่ละหมวดหมู่มีเกือบ 2,000 ประโยค
ในการเตรียมชุดข้อมูลจากไดเร็กทอรีของโปรเจ็กต์หลัก ให้เปิดเทอร์มินัลแล้วพิมพ์:
$ python prepare_data.py
ตรวจสอบ Intent_Classification_Keras_Glove.ipynb สำหรับส่วนการสร้างโมเดลและการฝึกอบรม ด้านล่างนี้คือภาพรวมของโมเดล
แม้ว่า RNN เช่น LSTM และ GRU จะใช้กันอย่างแพร่หลายสำหรับงานการสร้างแบบจำลองภาษา แต่ CNN ก็ได้รับการพิสูจน์แล้วว่าสามารถฝึกอบรมได้ค่อนข้างเร็วกว่าเนื่องจากการขนานข้อมูลในขณะฝึกอบรมและให้ผลลัพธ์ที่ดีกว่า LSTM นี่คือการเปรียบเทียบสั้นๆ ระหว่างวิธีการต่างๆ ในการแก้ปัญหาการจำแนกประโยค ดังที่เห็นได้ว่า TextCNN ให้ผลลัพธ์ที่ดีที่สุดและยังฝึกได้เร็วขึ้นอีกด้วย ฉันสามารถบรรลุความแม่นยำ 99% ในชุดข้อมูลการฝึกอบรมและการตรวจสอบภายในหนึ่งนาทีหลังจาก 3 ยุคเมื่อฝึกฝนบน CPU i7 ปกติ
การจำแนกประเภทเจตนาและการรับรู้เอนทิตีที่มีชื่อเป็นสองส่วนที่สำคัญที่สุดในขณะที่สร้างแชทบอตที่มุ่งเน้นเป้าหมาย
มีแพ็คเกจ Python โอเพ่นซอร์สมากมายสำหรับการสร้างแชทบอท Rasa ก็เป็นหนึ่งในนั้น สิ่งที่ยอดเยี่ยมเกี่ยวกับ Rasa ก็คือทุกส่วนของสแต็กสามารถปรับแต่งได้อย่างเต็มที่และเปลี่ยนได้อย่างง่ายดาย แม้ว่า Rasa จะมีการสนับสนุนงานการจำแนกประเภท Intent ที่ยอดเยี่ยม แต่เรายังสามารถระบุโมเดลของเราเองสำหรับงานได้ โปรดดูข้อมูลเพิ่มเติมที่ Processing Pipeline
การใช้การฝังคำที่ได้รับการฝึกอบรมล่วงหน้าในโมเดล Keras
โครงข่ายประสาทเทียมสำหรับการจำแนกประโยค
การวิเคราะห์ความไวของ (และคำแนะนำของผู้ปฏิบัติงาน) โครงข่ายประสาทเทียมแบบ Convolutional สำหรับการจำแนกประโยค
การประเมินเชิงประจักษ์ของเครือข่าย Convolutional และเครือข่ายที่เกิดซ้ำทั่วไปสำหรับการสร้างแบบจำลองลำดับ