? ใช้ Corpus Qingyun ภาษาจีนที่น่าสนใจ หุ่นยนต์แชทภาษาจีนที่เขียนโดย @Doragd: Snowman:
แม้ว่าเธอจะไม่ได้สมบูรณ์แบบขนาดนั้น :muscle: แต่ก็ไม่ได้ยอดเยี่ยมขนาดนั้น :paw_prints:
แต่เธอเขียนโค้ดด้วยตัวเอง:sparkling_heart: ดังนั้น
ฉันหวังว่าทุกคนจะสามารถให้ดาวมากขึ้นเพื่อสนับสนุน ผู้เริ่มต้น NLP นี้และเพื่อน ๆ ของเขา?
จริงๆ แล้วโครงงานนี้เป็นโมดูลย่อยของการออกแบบหลักสูตรวิศวกรรมซอฟต์แวร์ เป้าหมายของเราคือการพัฒนาระบบประมวลผลตั๋วบริการลูกค้าอัจฉริยะ
ขั้นตอนการทำงานจริงของระบบใบสั่งงานการบริการลูกค้าอัจฉริยะคือ: เมื่อบุคคลถามคำถามไปยังระบบ ระบบจะค้นหาฐานความรู้ก่อนเพื่อดูว่ามีคำถามที่เกี่ยวข้องหรือไม่ หากเป็นเช่นนั้น ระบบจะส่งคืนคำตอบให้กับคำถามนั้น หากบุคคลนั้นไม่พอใจในเวลานี้ เขาหรือเธอสามารถส่งคำสั่งงานได้โดยตรง หากไม่มีอยู่ในฐานความรู้ แชทบอทนี้จะถูกเรียกให้ตอบกลับอัตโนมัติ
สถานการณ์การให้บริการของระบบนี้คล้ายคลึงกับระบบบริการลูกค้าของ Tencent Cloud ลูกค้าส่วนใหญ่มาเพื่อปรึกษาปัญหาที่เกี่ยวข้อง (เซิร์ฟเวอร์คลาวด์ ชื่อโดเมน ฯลฯ) ดังนั้นฐานความรู้จึงเป็นการรวบรวมคำปรึกษาและการแก้ไขปัญหา (คำถาม คำตอบ) เกี่ยวกับคลาวด์เซิร์ฟเวอร์ ชื่อโดเมน ฯลฯ .
อินเทอร์เฟซส่วนหน้าของระบบและการโต้ตอบข้อความส่วนหน้าและส่วนหลังเสร็จสมบูรณ์โดยเพื่อนร่วมชั้นอีกคน @adjlyadv โดยใช้ React+Django เป็นหลัก
@Doragd มีหน้าที่รับผิดชอบในการรับฐานความรู้และการเขียน การฝึกอบรม และการทดสอบแชทบอท เนื้อหาของ repo นี้ก็เกี่ยวกับเรื่องนี้เช่นกัน
│ .gitignore
│ config.py #模型配置参数
│ corpus.pth #已经过处理的数据集
│ dataload.py #dataloader
│ datapreprocess.py #数据预处理
│ LICENSE
│ main.py
│ model.py
│ README.md
│ requirements.txt
│ train_eval.py #训练和验证,测试
│
├─checkpoints
│ chatbot_0509_1437 #已经训练好的模型
│
├─clean_chat_corpus
│ qingyun.tsv #语料库
│
├─QA_data
│ QA.db #知识库
│ QA_test.py #使用知识库时调用
│ stop_words.txt #停用词
│ __init__.py
│
└─utils
beamsearch.py #to do 未完工
greedysearch.py #贪婪搜索,用于测试
__init__.py
ติดตั้งการพึ่งพา
$ pip install -r requirements.txt
$ python datapreprocess.py
ประมวลผลคลังข้อมูลล่วงหน้าเพื่อสร้าง Corpus.pth ( อัปโหลด Corpus.pth ที่นี่ จึงสามารถข้ามขั้นตอนนี้ได้ )
พารามิเตอร์ที่ปรับเปลี่ยนได้:
# datapreprocess.py
corpus_file = 'clean_chat_corpus/qingyun.tsv' #未处理的对话数据集
max_voc_length = 10000 #字典最大长度
min_word_appear = 10 #加入字典的词的词频最小值
max_sentence_length = 50 #最大句子长度
save_path = 'corpus.pth' #已处理的对话数据集保存路径
เมื่อใช้ฐานความรู้ คุณต้องส่งพารามิเตอร์ use_QA_first=True
ในขณะนี้ สำหรับสตริงอินพุต คำถามและคำตอบที่ดีที่สุดจะถูกจับคู่ก่อนในฐานความรู้และส่งคืน เมื่อไม่พบแชทบอทจะถูกเรียกให้สร้างการตอบกลับโดยอัตโนมัติ
ฐานความรู้ที่นี่คือชุดคำถามและคำตอบที่พบบ่อย 100 ข้อซึ่งรวบรวมจากเอกสารอย่างเป็นทางการของ Tencent Cloud สำหรับการทดสอบเท่านั้น!
$ python main.py chat --use_QA_first=True
เนื่องจากความต้องการในการออกแบบหลักสูตร จึงได้มีการเพิ่มคู่คำถามและคำตอบของ Tencent Cloud แต่ไม่เกี่ยวข้องกับโครงการหุ่นยนต์แชท ดังนั้นเมื่อใช้โดยทั่วไป use_QA_first=False
พารามิเตอร์นี้จะมีค่าเริ่มต้นเป็น True
$ python main.py chat --use_QA_first=False
$ python main.py chat
exit
, quit
หรือ q
อธิบายในไฟล์ config.py
เมื่อคุณต้องการส่งผ่านพารามิเตอร์ใหม่ คุณเพียงแค่ต้องส่งผ่านพารามิเตอร์เหล่านั้นจากบรรทัดคำสั่ง ในรูปแบบของ
$ python main.py chat --model_ckpt= ' checkpoints/chatbot_0509_1437 ' --use_QA_first=False
คำสั่งข้างต้นระบุเส้นทางในการโหลดโมเดลที่ได้รับการฝึกอบรมและระบุว่าจะใช้ฐานความรู้หรือไม่
ชื่อคอร์ปัส | จำนวนคลังข้อมูล | คำอธิบายของแหล่งที่มาของคลังข้อมูล | ลักษณะของคอร์ปัส | ตัวอย่างคอร์ปัส | ไม่ว่าจะได้มีส่วนร่วมก็ตาม |
---|---|---|---|---|---|
ชิงหยุน (คลังข้อมูลชิงหยุน) | 10W | กลุ่มการสื่อสารแชทบอท | ค่อนข้างดี เป็นมิตรกับชีวิต | ถาม: ดูเหมือนว่าคุณจะรักเงินมาก A: โอ้จริงเหรอ? ถ้าอย่างนั้นคุณก็เกือบจะถึงที่นั่นแล้ว | เลขที่ |
$ python train_eval.py train [--options]
ส่วนการประเมินเชิงปริมาณยังไม่ได้เขียน ควรวัดจากความฉงนสนเท่ห์ ปัจจุบันทำได้เพียงสร้างประโยคและประเมินคุณภาพด้วยตนเอง
$ python train_eval.py eval [--options]