Menentukan maksud, ucapan, dan entitas
Ucapan adalah frasa yang mungkin dimasukkan pengguna saat berinteraksi dengan aplikasi yang menggunakan model bahasa Anda. Niat merepresentasikan tugas atau tindakan yang ingin dilakukan oleh pengguna, atau versi sederhananya, merupakan makna dari suatu ucapan. Anda membuat model dengan mendefinisikan niat dan mengaitkannya dengan satu atau beberapa ucapan.
Misalnya, pertimbangkan daftar niat dan ucapan yang terkait berikut:
- GetTime:
- "Jam berapa sekarang?"
- "Jam berapa?"
- "Jam berapa ini"
- GetWeather:
- "Apa prakiraan cuaca hari ini?"
- "Apakah saya perlu bawa payung?"
- "Apakah akan turun salju?"
- TurnOnDevice
- "Hidupkan lampu"
- "Nyalakan lampu"
- "Nyalakan kipas angin"
- Tidak ada:
- "Halo"
- "Selamat tinggal"
Dalam model, Anda harus menentukan niat yang ingin dipahami model, jadi luangkan waktu untuk mempertimbangkan domain yang harus didukung model Anda dan jenis tindakan atau informasi yang mungkin diminta pengguna. Selain maksud yang Anda tetapkan, setiap model menyertakan maksud Tidak Ada yang harus Anda gunakan untuk mengidentifikasi secara eksplisit ucapan yang mungkin diajukan pengguna, tetapi tidak diperlukan tindakan khusus (misalnya, salam percakapan seperti "halo") atau yang berada di luar cakupan domain untuk model ini.
Setelah mengidentifikasi maksud yang harus didukung model Anda, penting untuk menangkap berbagai contoh ucapan yang berbeda untuk setiap maksud. Kumpulkan ucapan yang menurut Anda akan dimasukkan pengguna; termasuk ucapan yang memiliki makna yang sama tetapi dikonstruksikan dengan cara yang berbeda. Perhatikan panduan berikut:
- Pikirkan contoh yang bervariasi atau cara lain untuk mengatakan hal yang sama
- Variasikan panjang ucapan, dari ucapan yang pendek, sedang, atau panjang
- Variasikan letak kata benda atau subjek pada ucapan. Letakkan di bagian awal, akhir, atau di bagian tengah
- Gunakan tata bahasa yang benar dan tata bahasa yang salah dalam ucapan yang berbeda untuk memberikan contoh latihan data yang baik
- Ketepatan, konsistensi, dan kelengkapan data berlabel Anda adalah faktor kunci untuk menentukan performa model.
- Beri label dengan tepat: Selalu beri label setiap entitas ke jenis yang tepat. Hanya sertakan apa yang ingin Anda ekstrak, hindari data yang tidak perlu di label Anda.
- Beri label secara konsisten: Entitas yang sama harus memiliki label yang sama di semua ucapan.
- Beri label sepenuhnya: Beri label semua contoh entitas dalam semua ucapan Anda.
Entitas digunakan untuk menambahkan konteks tertentu ke niat. Misalnya, Anda mungkin mendefinisikan niat TurnOnDevice yang dapat diterapkan ke beberapa perangkat dan menggunakan entitas untuk mendefinisikan perangkat yang berbeda.
Pertimbangkan ucapan, niat, dan entitas berikut:
Ucapan | Niat | Entitas |
---|---|---|
Jam berapa? | GetTime | |
Pukul berapa sekarang di London? | GetTime | Lokasi (London) |
Bagaimana prakiraan cuaca di Paris? | GetWeather | Lokasi (Paris) |
Apakah saya perlu membawa payung malam ini? | GetWeather | Waktu (malam ini) |
Bagaimana prakiraan cuaca untuk Seattle besok? | GetWeather | Lokasi (Seattle), Waktu (besok) |
Nyalakan lampu. | TurnOnDevice | Perangkat (lampu) |
Nyalakan kipas angin. | TurnOnDevice | Perangkat (kipas angin) |
Anda dapat membagi entitas menjadi beberapa jenis komponen yang berbeda:
- Entitas yang dipelajari adalah jenis entitas yang paling fleksibel, dan harus digunakan dalam banyak kasus. Anda mendefinisikan komponen yang dipelajari dengan nama yang sesuai, dan kemudian mengaitkan kata atau frasa dengannya dalam ucapan pelatihan. Ketika Anda melatih model Anda, model tersebut belajar untuk mencocokkan elemen yang sesuai dalam ucapan dengan entitas.
- Entitas List berguna saat Anda membutuhkan entitas dengan sekumpulan kemungkinan nilai tertentu - misalnya, hari dalam seminggu. Anda dapat menyertakan sinonim dalam definisi daftar entitas, sehingga Anda dapat menentukan entitas DayOfWeek yang menyertakan nilai "Minggu", "Senin", "Selasa", dan sebagainya; yang masing-masing entitasnya memiliki sinonim seperti "Ming", "Sen", "Sel", dan sebagainya.
- Entitas bawaan berguna untuk jenis umum seperti angka, tanggal waktu, dan nama. Misalnya, ketika komponen bawaan ditambahkan, Anda akan secara otomatis mendeteksi nilai seperti "6" atau organisasi seperti "Microsoft". Anda dapat melihat artikel ini untuk daftar entitas bawaan yang didukung.