Ada beberapa opsi entity yang mengubah perilaku pencocokan entity dan ekstraksi data. Opsi ini sudah dikonfigurasi sebelumnya untuk entity sistem, sehingga Anda tidak dapat mengubahnya untuk entity sistem. Namun, Anda dapat mengubahnya untuk entitas kustom Anda sendiri. Anda dapat membuat berbagai jenis entity, bergantung pada opsi yang dipilih:
- Entitas peta
- Mencantumkan entity
- Entity gabungan (jenis khusus entity daftar)
- Entity Regexp
Ada opsi lain yang tidak menentukan jenis entity, tetapi memengaruhi perilaku pencocokan entity:
Dokumen ini menjelaskan setiap opsi tersebut.
Tempat menemukan data ini
Saat membangun agen, penggunaan Konsol Dialogflow CX paling umum digunakan (buka dokumentasi, open console). Petunjuk di bawah berfokus pada penggunaan konsol. Untuk mengakses data opsi entitas:
- Buka Konsol Dialogflow CX.
- Pilih project Google Cloud Anda.
- Pilih agen Anda.
- Pilih tab Kelola.
- Klik Jenis Entitas.
- Lihat opsi berikut untuk entitas yang sudah ada
(beberapa di antaranya mungkin hanya dapat dilihat setelah memperluas Opsi lanjutan):
- Hanya entitas (tanpa sinonim)
- Entitas Regexp
- Menambahkan entitas secara otomatis
- Pencocokan tidak rapi
- Menyamarkan log
- Pengecualian entitas
Jika Anda membangun agen menggunakan API, bukan konsol,
lihat jenis EntityType
.
Nama kolom API mirip dengan nama kolom konsol.
Petunjuk di bawah ini menyoroti perbedaan penting
antara konsol dan API.
Pilih protokol dan versi untuk referensi EntityType:
Protokol | V3 | V3beta1 |
---|---|---|
REST | Resource EntityType | Resource EntityType |
RPC | Antarmuka EntityType | Antarmuka EntityType |
C++ | EntityTypesClient | Tidak tersedia |
C# | EntityTypesClient | Tidak tersedia |
Go | EntityTypesClient | Tidak tersedia |
Java | EntityTypesClient | EntityTypesClient |
Node.js | EntityTypesClient | EntityTypesClient |
PHP | Tidak tersedia | Tidak tersedia |
Python | EntityTypesClient | EntityTypesClient |
Ruby | Tidak tersedia | Tidak tersedia |
Entitas peta
Entity peta menyediakan peta dari nilai referensi ke sinonim untuk setiap nilai referensi. Setiap entri entity peta berisi satu nilai referensi dan daftar sinonim. Anda juga dapat menetapkan pola DTMF untuk setiap entitas.
Misalnya, setiap baris berikut adalah entri entity untuk jenis entity
size
:
Entity | Sinonim | Pola DTMF |
---|---|---|
S | S, kecil, kecil, kecil | |
M | M, sedang, rata-rata | |
L | L, besar, sangat besar, besar |
Perhatikan bahwa nilai referensi disertakan dalam daftar sinonim untuk setiap entri entity di atas. Agar cocok, nilai referensi harus disertakan sebagai sinonim itu sendiri. Saat Anda pertama kali memasukkan nilai referensi dengan konsol, nilai tersebut akan otomatis ditambahkan sebagai sinonim.
Jika salah satu sinonim cocok untuk bagian input pengguna akhir, nilai referensi yang terkait akan diekstrak untuk pencocokan tersebut dan digunakan untuk me-resolve nilai parameter terkait.
Nilai referensi dapat dihilangkan dari daftar sinonim. Hanya saja, parameter ini tidak cocok dengan bagian input pengguna akhir, tetapi digunakan sebagai nilai yang diekstrak saat salah satu sinonimnya dicocokkan. Ini akan diinginkan jika Anda menggunakan string khusus untuk nilai referensi yang tidak diketik atau diucapkan oleh pengguna akhir.
Banyak entity sistem merupakan entity peta.
Misalnya, entitas sistem @sys.date
cocok dengan input tanggal umum
seperti "1 Januari 2015" atau "Tanggal satu Januari 2015".
Kedua input tersebut dipetakan ke nilai referensi dalam format ISO-8601:
"2015-01-01T12:00:00-03:00".
Untuk membuat entity peta:
- Dengan menggunakan konsol, hapus centang pada opsi Regexp entity, lalu hapus centang pada opsi Entity only.
- Dengan menggunakan API,
tetapkan kolom
EntityType.kind
keKIND_MAP
.
Mencantumkan entity
Entity daftar menyediakan daftar entri entity nilai tunggal.
Klausa ini tidak memiliki nilai referensi dan sinonim.
Misalnya, setiap baris berikut adalah entri entity
untuk jenis entity material
:
Nilai |
---|
fabric |
kayu |
logam |
Jika ada nilai yang cocok untuk bagian input pengguna akhir, nilai tersebut akan diekstrak untuk kecocokan tersebut dan digunakan untuk me-resolve nilai parameter terkait.
Banyak entity sistem merupakan entity daftar.
Misalnya, entity sistem @sys.color
cocok dengan input warna umum
seperti "merah" atau "biru".
Jika warna dicocokkan, nilai yang diekstrak tidak dipetakan ke nilai referensi apa pun.
Misalnya, nuansa merah, seperti "scarlet" atau "crimson", tidak dipetakan ke "red" dan diekstrak sebagai nilai aslinya "scarlet" dan "crimson".
Untuk membuat entity daftar:
- Dengan menggunakan konsol, hapus centang opsi Regexp entity, lalu centang opsi Entity only.
- Dengan menggunakan API,
tetapkan kolom
EntityType.kind
keKIND_LIST
.
Entitas gabungan
Entity gabungan adalah jenis entity daftar khusus. Entri entity untuk entity daftar biasanya berisi kata atau frasa sederhana, tetapi juga dapat berisi jenis entity lainnya. Jika jenis entity direferensikan dalam jenis entity lain, referensi tersebut disebut alias. Jika entity daftar berisi alias untuk jenis entity lainnya, entity ini disebut entity gabungan.
Saat membuat alias, Anda harus memberikan nama jenis entity yang direferensikan dan nama properti pilihan Anda. Saat entity gabungan dicocokkan saat runtime, nilai yang diekstrak akan ditampilkan sebagai objek JSON, dengan nama properti alias yang digunakan sebagai nama properti JSON. Format untuk memasukkan alias adalah:
@entity-name:property-name
Misalnya, Anda dapat membuat jenis entity place
yang cocok dengan kota atau negara bagian dengan entri entity berikut:
Nilai |
---|
@sys.geo-city:kota |
@sys.geo-state:state |
Jika input pengguna akhir berisi bagian "Nashville",
jenis entity place
akan cocok.
Nilai yang diekstrak akan ditampilkan sebagai:
{"city": "Nashville"}
.
Anda juga dapat menggunakan beberapa alias entitas dalam entri entitas.
Pertimbangkan jenis entity kustom move
berikut yang berisi
alias ke jenis entity direction
dan jenis entity sistem @sys.number
:
Jenis entitas peta kustom arah:
Nilai referensi | Sinonim |
---|---|
teruskan | maju, maju |
kembali | mundur, mundur, mundur |
Pindahkan jenis entitas daftar kustom:
Nilai |
---|
@sys.number:steps langkah @direction:direction |
Jika entity move
dicocokkan
dengan input pengguna akhir yang berisi "lima langkah mundur",
entity move
akan dicocokkan.
Nilai yang diekstrak akan ditampilkan sebagai:
{"steps": 5, "direction": "back"}
.
Banyak entitas sistem yang merupakan entitas gabungan.
Misalnya, entity sistem @sys.unit-currency
digunakan untuk mencocokkan jumlah uang dengan nama mata uang.
Pencocokan ini cocok dengan input pengguna akhir, seperti "50 euro" atau "dua puluh dolar lima sen".
Nilai yang diekstrak akan ditampilkan sebagai objek JSON seperti:
{"amount": 50, "currency": "EUR"}
Entity Regexp
Dengan entitas ekspresi reguler, Anda dapat memberikan ekspresi reguler untuk pencocokan. Untuk informasi selengkapnya, lihat Entity Regexp.
Untuk membuat entity regexp:
- Dengan menggunakan konsol, centang opsi Regexp entity.
- Dengan menggunakan API,
tetapkan kolom
EntityType.kind
keKIND_REGEXP
.
Ekspansi otomatis (tambahkan entitas secara otomatis)
Anda dapat mengaktifkan perluasan otomatis untuk jenis entitas kustom. Jika diaktifkan, agen Anda dapat mengenali nilai yang belum diberikan secara eksplisit. Misalnya, pertimbangkan jenis entitas daftar belanja:
Nilai |
---|
roti |
butter |
susu |
apel |
es krim |
Jika input pengguna akhir adalah "Saya perlu membeli wortel", "wortel" akan dicocokkan untuk jenis entitas ini, meskipun tidak disediakan. Agen mengenali bahwa "wortel" secara kontekstual mirip dengan nilai lainnya.
Anda harus mengikuti praktik terbaik saat mempertimbangkan perluasan otomatis:
- Mengaktifkan perluasan otomatis tidak menjamin ekstraksi entity. Untuk daftar terbatas, Anda harus memberikan daftar lengkap, bukan memberikan daftar sebagian dan mengaktifkan perluasan otomatis.
- Jika Anda mengaktifkan perluasan otomatis di lebih dari satu entitas, hal ini dapat menyebabkan konflik dan hasil klasifikasi yang tidak terduga.
- Untuk memastikan kualitas ekstraksi parameter yang lebih baik, penting untuk menyediakan beragam data pelatihan yang mencakup semua kasus penggunaan saat entity tertentu dapat ditemukan dalam traffic agen yang diharapkan. Dengan contoh yang tidak cukup, perluasan entitas otomatis mungkin tidak berfungsi seperti yang diharapkan.
Untuk mengaktifkan perluasan otomatis:
- Dengan menggunakan konsol, centang opsi Otomatis tambahkan entitas.
- Dengan menggunakan API,
tetapkan kolom
EntityType.autoExpansionMode
keAUTO_EXPANSION_MODE_DEFAULT
.
Pencocokan fuzzy
Anda dapat mengaktifkan pencocokan fuzzy untuk entity kustom. Jika pencocokan fuzzy diaktifkan, pengurutan kata-kata dalam nilai atau sinonim tidak akan menjadi masalah. Untuk mengetahui informasi selengkapnya, lihat Pencocokan kabur.
Untuk mengaktifkan pencocokan fuzzy:
- Menggunakan konsol, centang opsi Fuzzy matching.
- Dengan menggunakan API,
tetapkan kolom
EntityType.enableFuzzyExtraction
ketrue
.
Samarkan di log
Jika Anda mengaktifkan penyamaran entity, semua parameter value yang diekstrak runtime untuk jenis entity akan disamarkan saat logging.
Sebagai alternatif, Anda dapat menyamarkan parameter individual.
Pengecualian entitas
Anda dapat menambahkan pengecualian entitas, yang merupakan frasa yang tidak boleh dicocokkan. Misalnya, jika Anda memiliki jenis entity ukuran dengan entity raksasa (kata sifat), Anda dapat mempertimbangkan untuk menambahkan raksasa (kata benda) sebagai pengecualian.