Instalasi • Uninstallasi • Bagaimana cara menggunakan Chatette ? • Chatette vs Chatito ? • Pembangunan • Kredit
Chatette adalah program Python yang menghasilkan kumpulan data pelatihan untuk file templat Rasa NLU yang diberikan. Jika Anda ingin membuat kumpulan data besar yang berisi contoh data untuk tugas Pemahaman Bahasa Alami tanpa terlalu pusing, Chatette adalah proyek yang cocok untuk Anda.
Secara khusus, Chatette mengimplementasikan Bahasa Khusus Domain ( DSL ) yang memungkinkan Anda menentukan templat untuk menghasilkan kalimat dalam jumlah besar, yang kemudian disimpan dalam format masukan Rasa NLU .
DSL yang digunakan hampir merupakan superset dari proyek luar biasa Chatito yang dibuat oleh Rodrigo Pimentel. ( Catatan: DSL sebenarnya adalah superset dari Chatito v2.1.x untuk Rasa NLU, bukan untuk semua adaptor yang memungkinkan. )
Mode interaktif juga tersedia:
Untuk menjalankan Chatette , Anda harus menginstal Python. Chatette bekerja dengan Python 2.7 dan 3.x (>= 3.4).
Chatette tersedia di PyPI, dan karenanya dapat diinstal menggunakan pip
:
pip install chatette
Alternatifnya , Anda dapat mengkloning repositori GitHub dan menginstal persyaratannya:
pip install -r requirements/common.txt
Anda kemudian dapat menginstal proyek (sebagai paket yang dapat diedit) menggunakan pip, dengan menjalankan perintah berikut dari direktori Chatette/chatette/
:
pip install -e .
Anda kemudian dapat menjalankan modul dengan menggunakan perintah di bawah ini di direktori kloning.
Anda cukup menggunakan pip untuk menghapus instalasi Chatette :
pip uninstall chatette
Data yang digunakan dan dihasilkan Chatette dimuat dari dan disimpan ke file. Dengan demikian Anda akan memiliki:
Satu atau beberapa file masukan yang berisi templat. Tidak diperlukan ekstensi file tertentu. Sintaks DSL untuk membuat templat tersebut dijelaskan di wiki.
Satu atau beberapa file keluaran , yang akan dihasilkan oleh Chatette dan akan berisi contoh yang dihasilkan. File-file tersebut dapat diformat dalam JSON (secara default) atau dalam Markdown dan dapat langsung dimasukkan ke Rasa NLU . Dimungkinkan juga untuk menggunakan format JSONL .
Setelah Chatette diinstal dan Anda membuat file templat, jalankan perintah berikut:
python -m chatette < path_to_template >
di mana python
adalah juru bahasa Python Anda (beberapa sistem operasi menggunakan python3
sebagai alias juru bahasa Python 3.x).
Anda dapat menentukan nama file keluaran sebagai berikut:
python -m chatette < path_to_template > -o < output_directory_path >
ditentukan relatif terhadap direktori tempat skrip dijalankan. File keluaran kemudian akan disimpan dalam file .json
bernomor di
dan
. Jika Anda tidak menentukan jalur untuk direktori keluaran, yang default adalah output
.
Argumen program lainnya dan dijelaskan di wiki.
TL;DR: nilai jual utama : lebih mudah menangani proyek besar menggunakan Chatette, dan Anda dapat mengubah sebagian besar proyek Chatito menjadi proyek Chatette tanpa modifikasi apa pun.
Pertanyaan yang sah adalah:
Mengapa Chatette ada padahal Chatito sudah memenuhi tujuan yang sama?
Kedua proyek tersebut sebenarnya memiliki tujuan yang berbeda:
Chatito bertujuan untuk menjadi DSL yang generik namun kuat, yang harus tetap mudah dibaca. Meskipun baik-baik saja untuk proyek-proyek kecil, ketika proyek-proyek menjadi lebih besar, kesederhanaan DSL -nya mungkin menjadi beban: file template Anda menjadi sangat besar, sampai-sampai Anda tersesat di dalamnya.
Chatette mendefinisikan DSL yang lebih kompleks agar dapat mengelola proyek yang lebih besar dan mencoba untuk tetap dapat dioperasikan dengan Chatito . Berikut adalah daftar lengkap fitur yang dimiliki dan tidak dimiliki Chatette :
Karena DSL Chatette adalah superset dari Chatito , file input yang digunakan untuk Chatito sering kali dapat digunakan sepenuhnya dengan Chatette (bukan sebaliknya). Oleh karena itu, mudah untuk mulai menggunakan Chatette jika Anda pernah menggunakan Chatito sebelumnya.
Sebagai contoh, data Chatito ini:
// 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
dapat langsung diberikan sebagai masukan ke Chatette , tetapi templat Chatette ini akan memberikan hasil yang sama:
// 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
Versi Chatito bisa dibilang lebih mudah dibaca, namun versi Chatette lebih pendek, yang mungkin sangat berguna ketika berhadapan dengan banyak template dan potensi pengulangan.
Berhati-hatilah, seperti halnya pembelajaran mesin, memiliki terlalu banyak data dapat menyebabkan performa model Anda kurang baik karena overfitting. Meskipun skrip ini dapat digunakan untuk menghasilkan ribuan contoh, skrip ini tidak disarankan untuk tugas pembelajaran mesin.
Chatette dinamai Chatito : -ette dalam bahasa Prancis dapat diterjemahkan menjadi -ita atau -ito dalam bahasa Spanyol. Perhatikan bahwa e terakhir di Chatette tidak diucapkan (seperti halnya dalam "catatan").
Untuk pengembang, Anda dapat mengkloning repo dan menginstal persyaratan pengembangan: pip install -r requirements/develop.txt
Kemudian, instal modul yang dapat diedit: pip install -e
Jalankan pylint: tox -e pylint
Jalankan pycodestyle: tox -e pycodestyle
Jalankan pytest: tox -e pytest
Penafian: Ini adalah proyek sampingan yang tidak saya bayar, jangan harap saya mengerjakannya 24/7.
Terima kasih banyak kepada mereka!