การติดตั้ง • การถอนการติดตั้ง • วิธีการใช้ Chatette ? • Chatette กับ Chatito ? • การพัฒนา • เครดิต
Chatette เป็นโปรแกรม Python ที่สร้างชุดข้อมูลการฝึกอบรมสำหรับ Rasa NLU ที่กำหนดไฟล์เทมเพลต หากคุณต้องการสร้างชุดข้อมูลตัวอย่างขนาดใหญ่สำหรับงานการทำความเข้าใจภาษาธรรมชาติโดยไม่ต้องปวดหัวมากเกินไป Chatette คือโปรเจ็กต์สำหรับคุณ
โดยเฉพาะอย่างยิ่ง Chatette ใช้ภาษาเฉพาะโดเมน ( DSL ) ที่ช่วยให้คุณสามารถกำหนดเทมเพลตเพื่อสร้างประโยคจำนวนมาก ซึ่งจากนั้นจะถูกบันทึกในรูปแบบอินพุตของ Rasa NLU
DSL ที่ใช้นั้นใกล้เคียงกับโปรเจ็กต์ Chatito ที่ยอดเยี่ยมที่สร้างโดย Rodrigo Pimentel ( หมายเหตุ: จริงๆ แล้ว DSL เป็นชุดที่เหนือกว่าของ Chatito v2.1.x สำหรับ Rasa NLU ไม่ใช่สำหรับอะแดปเตอร์ที่เป็นไปได้ทั้งหมด )
โหมดโต้ตอบก็มีให้เช่นกัน:
หากต้องการเรียกใช้ Chatette คุณจะต้องติดตั้ง Python Chatette ทำงานได้กับทั้ง Python 2.7 และ 3.x (>= 3.4)
Chatette พร้อมใช้งานบน PyPI และสามารถติดตั้งได้โดยใช้ pip
:
pip install chatette
หรือ คุณสามารถโคลนพื้นที่เก็บข้อมูล GitHub และติดตั้งข้อกำหนดได้:
pip install -r requirements/common.txt
จากนั้นคุณสามารถติดตั้งโปรเจ็กต์ (เป็นแพ็คเกจที่แก้ไขได้) โดยใช้ pip โดยดำเนินการคำสั่งต่อไปนี้จากไดเร็กทอรี Chatette/chatette/
:
pip install -e .
จากนั้นคุณสามารถรันโมดูลได้โดยใช้คำสั่งด้านล่างในไดเร็กทอรีที่ลอกแบบมา
คุณสามารถใช้ pip เพื่อถอนการติดตั้ง Chatette :
pip uninstall chatette
ข้อมูลที่ Chatette ใช้และสร้างจะถูกโหลดและบันทึกลงในไฟล์ คุณจะมี:
ไฟล์อินพุต หนึ่งหรือหลายไฟล์ที่มีเทมเพลต ไม่จำเป็นต้องมีนามสกุลไฟล์เฉพาะ ไวยากรณ์ของ DSL เพื่อสร้างเทมเพลตเหล่านั้นมีอธิบายไว้ในวิกิ
ไฟล์เอาต์พุตหนึ่งหรือหลายไฟล์ ซึ่งจะถูกสร้างขึ้นโดย Chatette และจะมีตัวอย่างที่สร้างขึ้น ไฟล์เหล่านั้นสามารถจัดรูปแบบเป็น JSON (ตามค่าเริ่มต้น) หรือใน Markdown และสามารถป้อนไปยัง Rasa NLU ได้โดยตรง นอกจากนี้ยังสามารถใช้รูปแบบ JSONL ได้อีกด้วย
เมื่อติดตั้ง Chatette และคุณสร้างไฟล์เทมเพลตแล้ว ให้รันคำสั่งต่อไปนี้:
python -m chatette < path_to_template >
โดยที่ python
เป็นล่าม Python ของคุณ (ระบบปฏิบัติการบางระบบใช้ python3
เป็นนามแฝงของล่าม Python 3.x)
คุณสามารถระบุชื่อของไฟล์เอาต์พุตได้ดังนี้:
python -m chatette < path_to_template > -o < output_directory_path >
ถูกระบุโดยสัมพันธ์กับไดเร็กทอรีที่สคริปต์กำลังถูกเรียกใช้งาน ไฟล์เอาต์พุตจะถูกบันทึกเป็นไฟล์ .json
ที่มีหมายเลขอยู่ใน
และ
หากคุณไม่ได้ระบุเส้นทางสำหรับไดเร็กทอรีเอาต์พุต ค่าเริ่มต้นจะเป็น output
อาร์กิวเมนต์ของโปรแกรมอื่นๆ และอธิบายไว้ในวิกิ
TL; DR: จุดขายหลัก : การจัดการกับโปรเจ็กต์ขนาดใหญ่โดยใช้ Chatette ได้ง่ายกว่า และคุณสามารถเปลี่ยน โปรเจ็กต์ Chatito ส่วนใหญ่ให้เป็น Chatette ได้โดยไม่ต้องดัดแปลงใดๆ
คำถามที่ถูกต้องตามกฎหมายอย่างสมบูรณ์คือ:
ทำไม Chatette ถึงมีอยู่ ในเมื่อ Chatito บรรลุวัตถุประสงค์เดียวกันแล้ว?
จริงๆ แล้วทั้งสองโครงการมีเป้าหมายที่แตกต่างกัน:
Chatito มุ่งหวังที่จะเป็น DSL ทั่วไปแต่ทรงพลัง ซึ่งควรจะอ่านได้ชัดเจนมาก แม้ว่ามันจะสมบูรณ์แบบสำหรับโปรเจ็กต์ขนาดเล็ก แต่เมื่อโปรเจ็กต์มีขนาดใหญ่ขึ้น ความเรียบง่ายของ DSL ของมันอาจกลายเป็นภาระ: ไฟล์เทมเพลตของคุณมีขนาดใหญ่มากจนคุณหลงเข้าไปในไฟล์นั้น
Chatette กำหนด DSL ที่ซับซ้อนมากขึ้นเพื่อให้สามารถจัดการโปรเจ็กต์ขนาดใหญ่ได้ และพยายามทำงานร่วมกับ Chatito ให้ได้มากที่สุด ต่อไปนี้คือรายการฟีเจอร์โดยสรุปที่ Chatette มีและ Chatito ไม่มี:
เนื่องจาก DSL ของ Chatette เป็นชุดที่เหนือกว่าของ Chatito ไฟล์อินพุตที่ใช้สำหรับ Chatito ส่วนใหญ่จึงใช้งานได้กับ Chatette อย่างสมบูรณ์ (ไม่ใช่วิธีอื่น) ดังนั้นจึงเป็นเรื่องง่ายที่จะเริ่มใช้ Chatette หากคุณเคยใช้ Chatito มาก่อน
ดังตัวอย่าง ข้อมูล Chatito นี้:
// This template defines different ways to ask for the location of toilets (Chatito version)
%[ask_toilet]('training': '3')
~[sorry?] ~[tell me] where the @[toilet#singular] is ~[please?]?
~[sorry?] ~[tell me] where the @[toilet#plural] are ~[please?]?
~[sorry]
sorry
Sorry
excuse me
Excuse me
~[tell me]
~[can you?] tell me
~[can you?] show me
~[can you]
can you
could you
would you
~[please]
please
@[toilet#singular]
toilet
loo
@[toilet#plural]
toilets
สามารถป้อนเป็นอินพุตให้กับ Chatette ได้โดยตรง แต่เทมเพลต Chatette นี้จะให้ผลลัพธ์เดียวกัน:
// This template defines different ways to ask for the location of toilets (Chatette version)
%[&ask_toilet](3)
~[sorry?] ~[tell me] where the @[toilet#singular] is [please?]?
~[sorry?] ~[tell me] where the @[toilet#plural] are [please?]?
~[sorry]
sorry
excuse me
~[tell me]
~[can you?] [tell|show] me
~[can you]
[can|could|would] you
@[toilet#singular]
toilet
loo
@[toilet#plural]
toilets
เวอร์ชัน Chatito นั้นอ่านง่ายกว่ามาก แต่เวอร์ชัน Chatette นั้นสั้นกว่า ซึ่งอาจมีประโยชน์มากเมื่อต้องรับมือกับเทมเพลตจำนวนมากและการทำซ้ำที่อาจเกิดขึ้น
ระวังว่าเช่นเคยกับการเรียนรู้ของเครื่อง การมีข้อมูลมากเกินไปอาจทำให้โมเดลของคุณทำงานได้ดีน้อยลงเนื่องจากมีการติดตั้งมากเกินไป แม้ว่าสคริปต์นี้สามารถใช้เพื่อสร้างตัวอย่างได้นับพันตัวอย่าง แต่ก็ไม่แนะนำสำหรับงานแมชชีนเลิร์นนิง
Chatette ตั้งชื่อตาม Chatito : -ette ในภาษาฝรั่งเศสอาจแปลเป็น -ita หรือ -ito ในภาษาสเปน โปรดทราบว่า e ตัวสุดท้ายใน Chatette จะไม่ออกเสียง (ดังเช่นในกรณี "หมายเหตุ")
สำหรับนักพัฒนา คุณสามารถโคลน repo และติดตั้งข้อกำหนดการพัฒนา: pip install -r requirements/develop.txt
จากนั้น ติดตั้งโมดูลตามที่สามารถแก้ไขได้: pip install -e
เรียกใช้ pylint: tox -e pylint
เรียกใช้ pycodestyle: tox -e pycodestyle
รัน pytest: tox -e pytest
ข้อจำกัดความรับผิดชอบ: นี่เป็นโปรเจ็กต์เสริมที่ฉันไม่ได้จ่ายเงิน อย่าคาดหวังให้ฉันทำงานตลอด 24 ชั่วโมงทุกวัน
ขอบคุณมากสำหรับพวกเขา!