Rencanakan aplikasi LUIS Anda

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.

Skema aplikasi Pemahaman Bahasa (LUIS) berisi niat dan entitas yang relevan dengan domain subjek Anda. Niat mengklasifikasikan ucapan pengguna, dan entitas mengekstrak data dari ucapan pengguna. Niat dan entitas yang relevan dengan domain subjek Anda. Niat ini mengklasifikasi ungkapan pengguna.

Aplikasi LUIS belajar dan berjalan paling efisien ketika Anda mengembangkannya secara berulang. Berikut siklus perulangan yang khas:

  1. Buat versi baru
  2. Edit skema aplikasi LUIS. Hal ini termasuk:
    • Niat dengan contoh ucapan
    • Entitas
    • Fitur
  3. Latih, uji, dan publikasikan
  4. Uji pembelajaran aktif dengan meninjau ungkapan yang dikirim ke titik akhir prediksi
  5. Kumpulkan data dari kueri titik akhir

Cuplikan layar memperlihatkan siklus penulisan

Identifikasi domain Anda

Aplikasi LUIS berpusat di sekitar domain subjek. Misalnya, Anda mungkin memiliki aplikasi perjalanan yang menangani pemesanan tiket, penerbangan, hotel, dan mobil sewaan. Aplikasi lain dapat menyediakan konten yang terkait dengan berolahraga, melacak upaya kebugaran, dan menetapkan sasaran. Mengidentifikasi domain tersebut membantu Anda menemukan kata atau frasa yang relevan dengan domain Anda.

Tip

LUIS menawarkan domain bawaan untuk banyak skenario umum. Periksa untuk melihat apakah Anda dapat menggunakan domain bawaan sebagai titik awal untuk aplikasi Anda.

Identifikasi niat Anda

Pikirkan tentang niat yang penting bagi tugas aplikasi Anda.

Mari kita ambil contoh aplikasi perjalanan, dengan fungsi untuk memesan penerbangan dan memeriksa cuaca di tempat tujuan pengguna. Anda dapat menentukan dua niat, BookFlight dan GetWeather untuk tindakan ini.

Dalam aplikasi yang lebih kompleks dengan lebih banyak fungsi, Anda akan memiliki lebih banyak niat, dan Anda harus menentukannya secara cermat sehingga niat tersebut tidak terlalu spesifik. Misalnya, BookFlight dan BookHotel mungkin seharusnya niat terpisah, tetapi BookInternationalFlight and BookDomesticFlight mungkin terlalu mirip.

Catatan

Ini adalah praktik terbaik dengan hanya menggunakan niat sebanyak yang Anda butuhkan untuk melakukan fungsi aplikasi Anda. Jika Anda menentukan terlalu banyak niat, menjadi lebih sulit bagi LUIS untuk mengklasifikasikan ucapan dengan benar. Jika terlalu sedikit yang Anda tentukan, niat mungkin sangat umum sehingga tumpang tindih.

Jika Anda tidak perlu mengidentifikasi niat pengguna secara keseluruhan, tambahkan semua contoh ucapan pengguna ke None niat. Jika aplikasi Anda berkembang menjadi membutuhkan lebih banyak niat, Anda dapat membuatnya nanti.

Buat contoh ucapan untuk setiap niat

Untuk memulainya, hindari membuat terlalu banyak ungkapan untuk setiap niat. Setelah Anda menentukan niat yang diperlukan untuk aplikasi, buat 15 hingga 30 contoh ungkapan per niat. Setiap ucapan harus berbeda dari ucapan yang diberikan sebelumnya. Sertakan berbagai jumlah kata, pilihan kata, tense kata kerja, dan tanda baca.

Untuk informasi selengkapnya, lihat memahami ucapan yang baik untuk aplikasi LUIS.

Identifikasi entitas Anda

Dalam contoh ucapan, identifikasikan entitas yang ingin Anda ekstrak. Untuk memesan penerbangan, Anda memerlukan informasi seperti tujuan, tanggal, maskapai penerbangan, kategori tiket, dan kelas perjalanan. Buat entitas untuk jenis data ini lalu tandai entitas dalam contoh ucapan. Entitas penting untuk mencapai niat.

Saat menentukan entitas mana yang akan digunakan dalam aplikasi Anda, ingat bahwa ada berbagai jenis entitas untuk mencatat hubungan antar jenis objek. Lihat Entitas di LUIS untuk mengetahui informasi selengkapnya tentang berbagai jenis.

Tip

LUIS menawarkan entitas bawaan untuk skenario umum pengguna percakapan. Pertimbangkan untuk menggunakan entitas bawaan sebagai titik awal pengembangan aplikasi Anda.

Niat versus entitas

Niat adalah hasil yang diinginkan dari seluruh ujuran sedangkan entitas adalah potongan data yang diekstrak dari ujaran. Biasanya niat terkait dengan tindakan, yang harus diambil oleh aplikasi klien. Entitas adalah informasi yang diperlukan untuk melakukan tindakan ini. Dari perspektif pemrograman, niat akan memicu panggilan metode dan entitas akan digunakan sebagai parameter untuk panggilan metode tersebut.

Ujaran ini harus memiliki niat dan mungkin memiliki entitas:

"Beli tiket pesawat dari Seattle ke Kairo"

Ujaran ini memiliki satu niat:

  • Membeli tiket pesawat

Ujaran ini mungkin memiliki beberapa entitas:

  • Lokasi Seattle (asal) dan Kairo (tujuan)
  • Jumlah satu tiket

Resolusi dalam ungkapan yang memiliki lebih dari satu fungsi atau niat

Dalam banyak kasus, terutama ketika bekerja dengan percakapan alami, pengguna memberikan ucapan yang dapat berisi lebih dari satu fungsi atau niat. Untuk mengatasinya, strategi umum adalah untuk memahami bahwa output dapat direpresentasikan dengan niat dan entitas. Representasi ini harus dapat dipetakan untuk tindakan aplikasi klien Anda, dan tidak perlu terpaku untuk niat.

Int-ent-ties adalah konsep bahwa tindakan (biasanya dipahami sebagai niat) mungkin dicatat sebagai entitas dalam output aplikasi, dan dipetakan ke tindakan tertentu. Negasi,misalnya, umumnya mengandalkan niat dan entitas untuk ekstraksi penuh. Pertimbangkan dua ungkapan berikut yang sangat mirip pilihan katanya, tetapi memiliki hasil yang berbeda:

  • "Mohon jadwalkan penerbangan saya dari Kairo ke Seattle"
  • "Batalkan penerbangan saya dari Kairo ke Seattle"

Alih-alih memiliki dua niat terpisah, sebaiknya buat niat tunggal dengan entitas pembelajaran mesin FlightAction. Entitas pembelajaran mesin ini harus mengekstrak detail tindakan untuk menjadwalkan dan membatalkan permintaan, serta lokasi asal atau tujuan.

Entitas FlightAction ini akan disusun dengan entitas pembelajaran mesin tingkat atas berikut, dan subentitas:

  • FlightAction
    • Tindakan
    • Asal
    • Tujuan

Untuk membantu ekstraksi, tambahkan fitur ke subentitas. Anda akan memilih fitur berdasarkan kosakata yang Anda harapkan untuk dilihat dalam ungkapan pengguna, dan nilai yang ingin Anda tampilkan dalam respons prediksi.

Praktik terbaik

Merencanakan Skema Anda

Sebelum mulai membuat skema aplikasi, Anda harus mengidentifikasi bagaimana dan di mana Anda ingin menggunakan aplikasi ini. Semakin teliti dan spesifik perencanaan Anda, semakin baik aplikasi.

  • Meneliti pengguna yang ditargetkan
  • Menentukan persona menyeluruh untuk merepresentasikan aplikasi Anda - suara, avatar, penanganan masalah (proaktif, reaktif)
  • Mengidentifikasi interaksi pengguna (seperti teks atau ungkapan), yang memberikan solusi yang ada atau membuat solusi baru untuk aplikasi ini
  • Perjalanan pengguna menyeluruh
    • Apa yang Anda harapkan untuk dilakukan dan tidak dilakukan aplikasi ini? Apa prioritas dari sesuatu yang harus dilakukan?
    • Apa kasus penggunaan utama?
  • Mengumpulkan data - pelajari pengumpulan dan penyiapan data

Jangan melatih dan menerbitkan dengan setiap contoh ungkapan

Tambahkan 10 atau 15 ungkapan sebelum melatih dan menerbitkan. Hal itu memungkinkan Anda melihat dampak pada akurasi prediksi. Menambahkan satu ungkapan mungkin tidak memiliki dampak yang nyata pada skor.

Jangan menggunakan LUIS sebagai platform pelatihan

LUIS khusus untuk domain model bahasa. Ini tidak dimaksudkan untuk berfungsi sebagai platform pelatihan bahasa alami yang umum.

Membuat aplikasi Anda secara berulang dengan versi

Setiap siklus penulisan harus dimuat dalam versi baru, yang dikloning dari versi lama.

Jangan menerbitkan terlalu cepat

Menerbitkan aplikasi terlalu cepat tanpa perencanaan yang tepat dapat menyebabkan beberapa masalah seperti:

  • Aplikasi Anda tidak akan berfungsi dalam skenario aktual pada tingkat performa yang dapat diterima.
  • Skema (niat dan entitas) mungkin tidak sesuai, dan jika Anda telah mengembangkan logika aplikasi klien setelah membuat skema, Anda mungkin perlu menulis ulang skema tersebut. Tindakan ini mungkin menyebabkan keterlambatan yang tak terduga dan biaya tambahan untuk proyek yang sedang Anda kerjakan.
  • Ungkapan yang Anda tambahkan ke model dapat menyebabkan bias terhadap contoh kumpulan ungkapan yang sulit untuk di-debug dan diidentifikasi. Ini juga akan menyulitkan penghapusan ambiguitas setelah Anda berkomitmen untuk skema tertentu.

Pantau performa aplikasi Anda

Pantau akurasi prediksi menggunakan kumpulan pengujian batch.

Simpan sekumpulan ungkapan terpisah yang tidak digunakan sebagai contoh ungkapan atau ungkapan titik akhir. Terus tingkatkan aplikasi untuk kumpulan pengujian Anda. Sesuaikan kumpulan pengujian agar mencerminkan ungkapan pengguna nyata. Gunakan kumpulan pengujian untuk mengevaluasi setiap perulangan atau versi aplikasi.

Jangan membuat daftar frasa dengan semua kemungkinan nilai

Berikan beberapa contoh dalam daftar frasa tetapi bukan setiap kata atau frasa. LUIS menggeneralisasi dan memperhitungkan konteks.

Langkah berikutnya

Niat