Ada beberapa opsi entity yang mengubah perilaku pencocokan entity dan ekstraksi data. Opsi ini telah dikonfigurasi sebelumnya untuk entity sistem, sehingga Anda tidak dapat mengubahnya untuk entitas sistem. Namun, Anda dapat mengubahnya untuk entity kustom Anda sendiri. Anda dapat membuat berbagai jenis entity, bergantung pada opsi yang dipilih:
- Entitas peta
- Entitas daftar
- Entitas gabungan (jenis entitas daftar khusus)
- Entity Regexp
Ada juga dua opsi yang tidak menentukan jenis entity, tetapi memengaruhi perilaku pencocokan entity:
Dokumen ini menjelaskan setiap opsi tersebut.
Di mana data ini dapat ditemukan
Saat membangun agen, cara yang paling umum adalah menggunakan Konsol Dialogflow ES (buka dokumentasi, buka konsol). Petunjuk di bawah berfokus pada penggunaan konsol. Untuk mengakses data opsi entitas:
- Buka Dialogflow ES Console.
- Pilih agen.
- Pilih Entity di menu sidebar kiri.
- Pilih tab Kustom untuk entity kustom yang ditentukan untuk agen Anda atau tab System untuk entity sistem yang digunakan oleh agen Anda.
- Lihat opsi kotak centang berikut untuk entitas yang sudah ada:
- Menentukan sinonim
- Entity Regexp (khusus entitas kustom)
- Izinkan ekspansi otomatis (khusus entitas kustom)
- Fuzzy matching (khusus entitas kustom)
Jika Anda membangun agen menggunakan API, bukan konsol, lihat referensi EntityType. Nama kolom API mirip dengan nama kolom konsol. Petunjuk di bawah menyoroti perbedaan penting antara konsol dan API.
Entity 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.
Misalnya, setiap baris berikut adalah entri entity
untuk jenis entity size
:
Nilai referensi | Sinonim |
---|---|
S | S, kecil, mungil, 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 nilai referensi dicocokkan, nilai tersebut harus disertakan sebagai sinonim itu sendiri. Saat pertama kali Anda memasukkan nilai referensi dengan konsol, nilai tersebut akan otomatis ditambahkan sebagai sinonim.
Jika salah satu sinonim cocok untuk bagian ekspresi pengguna akhir, nilai referensi terkait akan diekstrak untuk pencocokan dan digunakan untuk me-resolve parameter value terkait.
Nilai referensi dapat dihilangkan dari daftar sinonim. Hal ini hanya berarti bahwa ekspresi tersebut tidak cocok dengan bagian ekspresi pengguna akhir, tetapi digunakan sebagai nilai yang diekstrak saat salah satu sinonimnya cocok. Ini akan lebih disukai 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 centang opsi Tentukan sinonim.
- Dengan menggunakan API,
tetapkan kolom
EntityType
kind
keKIND_MAP
.
Entity daftar
Entity daftar menyediakan daftar entri entity nilai tunggal.
Kata kunci tersebut 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 ekspresi pengguna akhir, nilai tersebut diekstrak untuk kecocokan dan digunakan untuk me-resolve parameter value yang 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 akan dipetakan ke nilai referensi mana 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 pada opsi Regexp entity, lalu hapus centang pada opsi Tentukan sinonim.
- 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. Ketika entitas daftar berisi alias untuk jenis entitas lain, entity ini disebut entitas gabungan.
Saat membuat alias, Anda harus memberikan nama jenis entity yang direferensikan dan nama properti yang Anda pilih. 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/provinsi dengan entri entity berikut:
Nilai |
---|
@sys.geo-city:kota |
@sys.geo-state:state |
Jika ekspresi 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 untuk jenis entity direction
dan jenis entity sistem @sys.number
:
Jenis entitas peta kustom arah:
Nilai referensi | Sinonim |
---|---|
teruskan | maju, maju |
kembali | mundur, mundur, mundur |
Memindahkan jenis entitas daftar kustom:
Nilai |
---|
@sys.number:steps langkah @direction:direction |
Jika entity move
dicocokkan dengan ekspresi pengguna akhir yang berisi "lima langkah mundur", entity move
akan dicocokkan.
Nilai yang diekstrak akan ditampilkan sebagai:
{"steps": 5, "direction": "back"}
.
Banyak entity sistem merupakan entity gabungan.
Misalnya, entity sistem @sys.unit-currency
digunakan untuk mencocokkan jumlah uang dengan nama mata uang.
Nilai ini cocok dengan ekspresi pengguna akhir seperti "50 euro" atau "dua puluh dolar dan lima sen".
Nilai yang diekstrak akan ditampilkan sebagai objek JSON seperti:
{"amount": 50, "currency": "EUR"}
Entity Regexp
Dengan entity regexp, Anda dapat memberikan ekspresi reguler untuk pencocokan. Untuk mengetahui informasi selengkapnya, lihat Entity Regexp.
Untuk membuat entity regexp:
- Menggunakan konsol, centang opsi Entity Regexp.
- Dengan menggunakan API,
tetapkan kolom
EntityType
kind
keKIND_REGEXP
.
Ekspansi 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 ekspresi pengguna akhir adalah "Saya perlu membeli beberapa wortel", "wortel" akan dicocokkan untuk jenis entity ini, meskipun tidak disediakan. Agen mengenali bahwa "wortel" secara kontekstual mirip dengan nilai lain.
Anda harus mengikuti praktik terbaik saat mempertimbangkan perluasan otomatis:
- Mengaktifkan perluasan otomatis tidak menjamin ekstraksi entity. Untuk daftar terbatas, sebaiknya berikan daftar lengkap, bukan memberikan daftar sebagian dan mengaktifkan perluasan otomatis.
- Jika Anda mengaktifkan ekspansi otomatis di lebih dari satu entity, 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. Jika tidak ada contoh yang memadai, perluasan entity otomatis mungkin tidak berfungsi seperti yang diharapkan.
Untuk mengaktifkan perluasan otomatis:
- Dengan menggunakan konsol, centang opsi Izinkan perluasan otomatis.
- 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, urutan kata dalam nilai atau sinonim tidak akan menjadi masalah. Untuk mengetahui informasi selengkapnya, lihat Pencocokan buram.
Untuk mengaktifkan pencocokan fuzzy:
- Menggunakan konsol, centang opsi Fuzzy matching.
- Dengan menggunakan API,
tetapkan kolom
EntityType
enableFuzzyExtraction
ketrue
.