Coba IDE online!
Chatito membantu Anda menghasilkan kumpulan data untuk melatih dan memvalidasi model chatbot menggunakan DSL sederhana.
Jika Anda membuat chatbot menggunakan model komersial, kerangka kerja sumber terbuka, atau menulis model pemrosesan bahasa alami Anda sendiri, Anda memerlukan contoh pelatihan dan pengujian. Chatito ada di sini untuk membantu Anda.
Proyek ini berisi:
IDE obrolan online
Spesifikasi Chatito DSL
Pengurai DSL AST dalam format pegjs
Generator diimplementasikan dalam paket TypeScript + npm
Untuk spesifikasi dan dokumentasi bahasa selengkapnya, silakan merujuk ke dokumen spesifikasi DSL.
Overfitting merupakan masalah yang bisa dicegah jika kita menggunakan Chatito dengan benar. Ide di balik alat ini adalah untuk menemukan titik temu antara augmentasi data dan deskripsi kemungkinan kombinasi kalimat. Hal ini tidak dimaksudkan untuk menghasilkan kumpulan data deterministik yang mungkin sesuai dengan model kalimat tunggal. Dalam kasus tersebut, Anda dapat memiliki kendali atas jalur pembuatan hanya mengambil sampel sesuai kebutuhan.
Plugin penyorotan sintaksis Visual Studio Code Terima kasih kepada Yuri Golobokov atas karyanya dalam hal ini.
Cetak Biru AI: Cara membangun dan menerapkan proyek bisnis AI menerapkan contoh chatbot lengkap yang praktis menggunakan chatito di bab 7.
3 langkah untuk mengonversi data pelatihan chatbot antara Penyedia NLP yang berbeda merinci cara sederhana untuk mengonversi format data ke adaptor yang tidak diterapkan. Anda dapat menggunakan kumpulan data yang dihasilkan dengan penyedia seperti DialogFlow, Wit.ai, dan Watson.
Aida-nlp adalah perpustakaan pembelajaran mendalam NLP eksperimental kecil untuk klasifikasi teks dan NER. Dibangun dengan Tensorflow.js, Keras, dan Chatito. Diimplementasikan dalam JS dan Python.
Bahasanya tidak bergantung pada format keluaran yang dihasilkan dan karena setiap model dapat menerima parameter dan pengaturan yang berbeda, ini adalah format data yang diterapkan saat ini, jika penyedia Anda tidak terdaftar, di bagian Alat dan sumber daya terdapat informasi lebih lanjut tentang cara mendukung lebih banyak format.
CATATAN: Sampel tidak diacak di antara maksud untuk memudahkan peninjauan dan karena beberapa adaptor mengalirkan sampel langsung ke file dan disarankan untuk membagi maksud dalam file yang berbeda untuk memudahkan peninjauan dan pemeliharaan.
Rasa adalah kerangka pembelajaran mesin sumber terbuka untuk percakapan otomatis berbasis teks dan suara. Pahami pesan, adakan percakapan, dan sambungkan ke saluran perpesanan dan API. Chatito dapat membantu Anda membuat kumpulan data untuk komponen Rasa NLU.
Salah satu perilaku khusus adaptor Rasa adalah ketika kalimat definisi slot hanya berisi satu alias, dan alias tersebut mendefinisikan argumen 'sinonim' dengan 'benar', kumpulan data Rasa yang dihasilkan akan memetakan alias tersebut sebagai sinonim. misalnya:
%[some intent]('training': '1') @[some slot] @[some slot] ~[some slot synonyms] ~[some slot synonyms]('synonym': 'true') synonym 1 synonym 2
Dalam contoh ini, kumpulan data Rasa yang dihasilkan akan berisi entity_synonyms
dari synonym 1
dan pemetaan synonym 2
ke some slot synonyms
.
Flair Kerangka kerja yang sangat sederhana untuk NLP yang canggih. Dikembangkan oleh Penelitian Zalando. Ini menyediakan penyematan terlatih yang canggih (GPT, BERT, RoBERTa, XLNet, ELMo, dll...) untuk banyak bahasa yang langsung dapat digunakan. Adaptor ini mendukung kumpulan data text classification
dalam format FastText dan kumpulan data named entity recognition
dalam dua kolom kata beranotasi BIO, seperti yang didokumentasikan dalam dokumentasi flair corpus. Kedua format data ini sangat umum dan terdapat pada banyak penyedia atau model lainnya.
Dataset NER memerlukan pemrosesan tokenisasi kata yang saat ini dilakukan menggunakan tokenizer sederhana.
CATATAN: Adaptor Flair hanya tersedia untuk paket NodeJS NPM CLI, bukan untuk IDE.
LUIS adalah bagian dari layanan Kognitif Microsoft. Chatito mendukung pelatihan model LUIS NLU melalui titik akhir ucapan berlabel penambahan batch, dan api pengujian batchnya.
Untuk melatih model LUIS, Anda perlu memposting ucapan secara berkelompok ke API yang relevan untuk pelatihan atau pengujian.
Masalah referensi: #61
Snips NLU adalah kerangka kerja sumber terbuka hebat lainnya untuk NLU. Salah satu perilaku khusus adaptor Snips adalah Anda dapat menentukan tipe entitas untuk slot. misalnya:
%[date search]('training':'1') for @[date] @[date]('entity': 'snips/datetime') ~[today] ~[tomorrow]
Pada contoh sebelumnya, semua nilai @[date]
akan diberi tag dengan tag entitas snips/datetime
.
Gunakan format default jika Anda berencana melatih model kustom atau jika Anda menulis adaptor kustom. Ini adalah format yang paling fleksibel karena Anda dapat membuat anotasi Slots
dan Intents
dengan argumen entitas khusus, dan semuanya akan muncul pada keluaran yang dihasilkan, jadi misalnya, Anda juga dapat menyertakan logika pembuatan dialog/respons dengan DSL. Misalnya:
%[some intent]('context': 'some annotation') @[some slot] ~[please?] @[some slot]('required': 'true', 'type': 'some type') ~[some alias here]
Entitas khusus seperti 'konteks', 'wajib', dan 'tipe' akan tersedia di output sehingga Anda dapat menangani argumen khusus ini sesuai keinginan.
Chatito mendukung Node.js >= v8.11
.
Instal dengan benang atau npm:
npm i chatito --save
Kemudian buat file definisi (misalnya: trainClimateBot.chatito
) dengan kode Anda.
Jalankan generator npm:
npx chatito trainClimateBot.chatito
Kumpulan data yang dihasilkan harus tersedia di sebelah file definisi Anda.
Berikut ini opsi generator npm selengkapnya:
npx chatito <pathToFileOrDirectory> --format=<format> --formatOptions=<formatOptions> --outputPath=<outputPath> --trainingFileName=<trainingFileName> --testingFileName=<testingFileName> --defaultDistribution=<defaultDistribution> --autoAliases=<autoAliases>
<pathToFileOrDirectory>
jalur ke file .chatito
atau direktori yang berisi file chatito. Jika itu adalah sebuah direktori, akan mencari semua file *.chatito
di dalamnya secara rekursif dan menggunakannya untuk menghasilkan kumpulan data. misalnya: lightsChange.chatito
atau ./chatitoFilesFolder
<format>
Opsional. default
, rasa
, luis
, flair
atau snips
.
<formatOptions>
Opsional. Jalur ke file .json yang dapat digunakan oleh setiap adaptor secara opsional
<outputPath>
Opsional. Direktori tempat menyimpan kumpulan data yang dihasilkan. Menggunakan direktori saat ini sebagai default.
<trainingFileName>
Opsional. Nama file set data pelatihan yang dihasilkan. Jangan lupa menambahkan ekstensi .json di bagian akhir. Menggunakan <format>
_dataset_training.json sebagai nama file default.
<testingFileName>
Opsional. Nama file himpunan data pengujian yang dihasilkan. Jangan lupa menambahkan ekstensi .json di bagian akhir. Menggunakan <format>
_dataset_testing.json sebagai nama file default.
<defaultDistribution>
Opsional. Distribusi frekuensi default jika tidak ditentukan pada tingkat entitas. Standarnya adalah regular
dan dapat diatur ke even
.
<autoAliases>
Opsional. Perilaku generaor saat menemukan alias yang tidak terdefinisi. Opsi yang valid adalah allow
, warn
, restrict
. Defaultnya adalah 'mengizinkan'.
Rodrigo Pimentel
sr.rodrigopv[at]gmail