Niat
Penting
LUIS akan dihentikan pada 1 Oktober 2025 dan mulai 1 April 2023 Anda tidak akan dapat membuat sumber daya LUIS baru. Sebaiknya migrasikan aplikasi LUIS Anda ke pemahaman bahasa percakapan untuk mendapatkan manfaat dari dukungan produk berkelanjutan dan kemampuan multibahasa.
Niat mewakili tugas atau tindakan yang ingin dilakukan pengguna. Ini adalah maksud atau tujuan yang diungkapkan dalam ucapan pengguna.
Tentukan set niat yang sesuai dengan tindakan yang ingin diambil pengguna dalam aplikasi Anda. Misalnya, aplikasi perjalanan akan menentukan beberapa niat:
Niat aplikasi perjalanan | Contoh ucapan |
---|---|
BookFlight | "Pesankan penerbangan ke Rio minggu depan" "Terbangkan aku ke Rio pada tanggal 24" "Saya butuh tiket pesawat hari Minggu depan ke Rio de Janeiro" |
Pesan Pembuka | "Hai" "Halo" "Selamat pagi" |
CheckWeather | "Seperti apa cuaca di Boston?" "Tunjukkan ramalan cuaca untuk akhir pekan ini" |
Tidak | "Carikan saya resep biskuit" "Apakah Lakers menang?" |
Semua aplikasi datang dengan niat yang telah ditentukan sebelumnya, "Tidak ada", yang merupakan niat mundur.
Niat bawaan
LUIS menyediakan niat bawaan dan ungkapannya untuk setiap domain bawaannya. Niat dapat ditambahkan tanpa menambahkan seluruh domain. Menambahkan niat adalah proses penambahan niat dan ungkapannya ke aplikasi Anda. Baik nama niat maupun daftar ungkapan dapat diubah.
Kembalikan semua skor niat
Anda menetapkan ucapan untuk satu niat. Saat LUIS menerima ungkapan di titik akhir, secara default, LUIS menampilkan niat teratas untuk ungkapan tersebut.
Jika ingin skor untuk semua niat untuk ungkapan, Anda dapat memberikan bendera pada string kueri API prediksi.
Versi API prediksi | Bendera |
---|---|
V2 | verbose=true |
V3 | show-all-intents=true |
Niat dibandingkan dengan entitas
Niat merepresentasikan tindakan yang harus diambil aplikasi untuk pengguna, berdasarkan pada seluruh ucapan. Sebuah ucapan hanya dapat memiliki satu niat dengan skor tertinggi, tetapi dapat memiliki banyak entitas.
Buat niat saat intensi pengguna akan memicu tindakan dalam aplikasi klien, seperti panggilan ke fungsi checkweather() dari tabel di atas. Kemudian, buat entitas untuk mewakili parameter yang diperlukan untuk menjalankan tindakan.
Niat | Entity | Contoh ucapan |
---|---|---|
CheckWeather | { "type": "location", "entity": "Seattle" } { "type": "builtin.datetimeV2.date","entity": "tomorrow","resolution":"2018-05-23" } |
Seperti apa cuaca di Seattle tomorrow ? |
CheckWeather | { "type": "date_range", "entity": "this weekend" } | Tunjukkan ramalan cuaca untuk this weekend |
Niat tidak ada
Niat Tidak ada dibuat, tetapi sengaja dibiarkan kosong. Niat Tidak ada adalah niat yang diperlukan dan tidak dapat dihapus atau diganti namanya. Isi dengan ucapan yang berada di luar domain Anda.
Niat Tidak ada adalah niat fallback, dan harus memiliki 10% dari total ungkapan. Niat ini penting di setiap aplikasi karena digunakan untuk mengajarkan ungkapan LUIS yang tidak penting dalam domain aplikasi (area subjek). Jika Anda tidak menambahkan ucapan apa pun untuk niat Tidak ada, LUIS memaksa ucapan yang berada di luar domain ke dalam salah satu niat domain. Ini akan mengacaukan skor prediksi dengan mengajarkan LUIS niat yang salah untuk ucapan.
Saat ucapan diprediksi sebagai niat Tidak Ada, aplikasi klien dapat mengajukan lebih banyak pertanyaan atau memberikan menu untuk mengarahkan pengguna ke pilihan yang valid.
Niat negatif
Jika ingin menentukan niat negatif dan positif, seperti "Saya ingin mobil" dan "Saya tidak ingin mobil", Anda dapat membuat dua niat (satu positif dan satu negatif) dan menambahkan ucapan yang sesuai untuk masing-masing. Atau Anda dapat membuat satu niat dan menandai dua istilah positif dan negatif yang berbeda sebagai entitas.
Niat dan pola
Jika Anda memiliki contoh ucapan, yang dapat ditentukan sebagian atau keseluruhan sebagai ekspresi reguler, pertimbangkan untuk menggunakan entitas ekspresi reguler yang dipasangkan dengan pola.
Menggunakan entitas ekspresi reguler menjamin ekstraksi data sehingga polanya cocok. Pencocokan pola menjamin niat yang tepat dikembalikan.
Keseimbangan niat
Niat domain aplikasi harus memiliki keseimbangan ucapan di setiap niat. Misalnya, jangan memiliki sebagian besar niat dengan 10 ungkapan dan niat lain dengan 500 ungkapan. Ini tidak seimbang. Dalam situasi ini, Anda ingin meninjau niat dengan 500 ungkapan untuk melihat apakah banyak dari niat tersebut dapat diatur ulang menjadi pola.
Niat Tidak ada tidak termasuk dalam keseimbangan. Niat tersebut harus berisi 10% dari total ucapan di aplikasi.
Batas niat
Tinjau batas untuk memahami jumlah niat yang dapat Anda tambahkan ke model.
Tip
Jika Anda memerlukan lebih dari jumlah maksimum niat, pertimbangkan apakah sistem Anda menggunakan terlalu banyak niat dan tentukan apakah beberapa niat dapat digabungkan menjadi satu niat dengan entitas. Niat yang terlalu mirip dapat membuat LUIS lebih sulit untuk membedakan di antara mereka. Niat harus cukup bervariasi untuk mengambil tugas utama yang diminta pengguna, tetapi mereka tidak perlu mengambil setiap jalur yang diambil kode Anda. Misalnya, dua niat: BookFlight() dan FlightCustomerService() mungkin merupakan niat terpisah dalam aplikasi perjalanan, tetapi BookInternationalFlight() dan BookDomesticFlight() terlalu mirip. Jika sistem Anda perlu membedakannya, gunakan entitas atau logika lain daripada niat.
Minta bantuan untuk aplikasi dengan sejumlah besar niat
Jika mengurangi jumlah niat atau membagi niat ke beberapa aplikasi tidak berfungsi untuk Anda, hubungi dukungan. Jika langganan Azure Anda menyertakan layanan dukungan, hubungi dukungan teknis Azure.
Praktik Terbaik untuk Niat:
Menentukan niat yang berbeda
Pastikan kosakata untuk setiap niat khusus untuk niat tersebut dan tidak tumpang tindih dengan niat yang berbeda. Misalnya, jika Anda ingin memiliki aplikasi yang menangani pengaturan perjalanan seperti penerbangan maskapai dan hotel, Anda dapat memilih untuk memiliki area subjek ini sebagai niat terpisah atau niat yang sama dengan entitas untuk data tertentu di dalam ungkapan.
Jika kosakata antara dua niat sama, gabungkan niat, lalu gunakan entitas.
Pertimbangkan contoh ungkapan berikut:
- Memesan penerbangan
- Memesan hotel
"Pesan penerbangan" dan "pesan hotel" menggunakan kosakata yang sama, yaitu "pesan <kata benda>". Format ini sama sehingga ungkapan ini adalah niat yang sama dengan kata berbeda, yaitu penerbangan dan hotel sebagai entitas yang diekstrak.
Tambahkan fitur ke niat
Fitur menjelaskan konsep untuk suatu niat. Fitur dapat berupa daftar frasa kata-kata yang signifikan terhadap niat atau entitas yang signifikan terhadap niat tersebut.
Temukan sweet spot untuk niat
Gunakan data prediksi dari LUIS untuk menentukan apakah niat Anda tumpang tindih. Niat yang tumpang tindih akan membingungkan LUIS. Hasilnya adalah bahwa niat penilaian teratas terlalu dekat dengan niat lain. Karena LUIS tidak menggunakan jalur yang sama persis melalui data untuk pelatihan setiap waktu, niat yang tumpang tindih memiliki peluang untuk menjadi yang pertama atau kedua dalam pelatihan. Anda ingin skor ungkapan untuk setiap niat menjadi terpisah jauh sehingga perbedaan ini tidak terjadi. Perbedaan yang baik untuk niat akan menghasilkan niat terbaik yang diharapkan setiap saat.
Menyeimbangkan ungkapan di seluruh niat
Agar prediksi LUIS akurat, kuantitas contoh ungkapan dalam setiap niat (kecuali untuk niat Tidak Ada) harus relatif sama.
Jika Anda memiliki niat dengan 500 contoh ungkapan dan semua niat lainnya dengan 10 contoh ungkapan, niat dengan 500 ungkapan akan memiliki tingkat prediksi yang lebih tinggi.
Menambahkan contoh ungkapan ke niat tidak ada
Niat ini adalah niat fallback, yang menunjukkan segala sesuatu di luar aplikasi Anda. Tambahkan satu contoh ungkapan ke niat Tidak Ada untuk setiap 10 contoh ungkapan di seluruh aplikasi LUIS Anda.
Jangan menambahkan banyak contoh ungkapan ke niat
Setelah aplikasi diterbitkan, hanya tambahkan ungkapan dari pembelajaran aktif dalam proses siklus hidup pengembangan. Jika ungkapan terlalu mirip, tambahkan pola.
Jangan mencampur penentuan niat dan entitas
Buat niat untuk tindakan yang akan dilakukan bot Anda. Gunakan entitas sebagai parameter yang memungkinkan tindakan tersebut.
Misalnya, untuk bot yang akan memesan penerbangan maskapai, buat niat BookFlight. Jangan membuat niat untuk setiap maskapai atau setiap tujuan. Gunakan potongan data tersebut sebagai entitas dan tandai dalam contoh ungkapan.