Ada beberapa opsi entitas yang mengubah perilaku pencocokan entitas dan ekstraksi data. Opsi ini telah 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:
- Entity peta
- Entitas daftar
- Entity komposit (jenis khusus entity daftar)
- Entity Regexp
Ada juga dua opsi yang tidak menentukan jenis entity, tetapi memengaruhi perilaku pencocokan entity:
Dokumen ini menjelaskan setiap opsi tersebut.
Tempat menemukan data ini
Saat membuat agen, hal yang paling umum adalah menggunakan konsol Dialogflow ES (kunjungi dokumentasi, buka konsol). Petunjuk di bawah berfokus pada penggunaan konsol. Untuk mengakses data opsi entitas:
- Buka konsol Dialogflow ES.
- Pilih agen.
- Pilih Entities di menu sidebar kiri.
- Pilih tab Custom 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 ada:
- Menentukan sinonim
- Entity Regexp (khusus entity kustom)
- Izinkan perluasan otomatis (khusus entitas kustom)
- Pencocokan fuzzy (khusus entity kustom)
Jika Anda mem-build agen menggunakan API, bukan konsol, lihat referensi EntityTypes. Nama kolom API mirip dengan nama kolom konsol. Petunjuk di bawah ini menyoroti perbedaan penting antara konsol dan API.
Entitas peta
Entity peta menyediakan peta dari nilai referensi
ke sinonim untuk setiap nilai referensi.
Setiap entri entitas 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, sedikit |
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 Anda pertama kali 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 diekstrak untuk pencocokan dan digunakan untuk me-resolve nilai parameter terkait.
Nilai referensi dapat dihilangkan dari daftar sinonim. Artinya, ekspresi ini tidak cocok dengan bagian ekspresi pengguna akhir, tetapi digunakan sebagai nilai yang diekstrak saat salah satu sinonimnya cocok. Hal ini diinginkan saat Anda menggunakan string khusus untuk nilai referensi yang tidak diketik atau diucapkan oleh pengguna akhir.
Banyak entity sistem adalah entity peta.
Misalnya, entity sistem @sys.date
cocok dengan input tanggal umum
seperti "1 Januari 2015" atau "Pertama Januari 2015".
Kedua input tersebut dipetakan ke nilai referensi dalam format ISO-8601:
"2015-01-01T12:00:00-03:00".
Untuk membuat entitas peta:
- Dengan menggunakan konsol, hapus centang pada opsi Entitas Regexp dan centang opsi Tentukan sinonim.
- Dengan menggunakan API,
tetapkan
kolom
kind
EntityType
keKIND_MAP
.
Mencantumkan entity
Entity daftar memberikan daftar entri entity nilai tunggal.
Nilai 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 ekspresi pengguna akhir, nilai tersebut akan diekstrak untuk pencocokan dan digunakan untuk me-resolve nilai parameter terkait.
Banyak entity sistem adalah entity daftar.
Misalnya, entity sistem @sys.color
cocok dengan input warna umum
seperti "merah" atau "biru".
Saat 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 pada opsi Entitas Regexp dan hapus centang pada opsi Tentukan sinonim.
- Dengan menggunakan API,
tetapkan
kolom
kind
EntityType
keKIND_LIST
.
Entitas gabungan
Entity komposit 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 ke jenis entity lain, entity tersebut disebut entity komposit.
Saat membuat alias, Anda memberikan nama jenis entity yang dirujuk 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 dengan entri entity berikut:
Nilai |
---|
@sys.geo-city:city |
@sys.geo-state:state |
Jika ekspresi pengguna akhir berisi bagian "Nashville",
jenis entity place
akan dicocokkan.
Nilai yang diekstrak 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 rute:
Nilai referensi | Sinonim |
---|---|
teruskan | meneruskan |
kembali | kembali, mundur, ke belakang |
Memindahkan jenis entitas daftar kustom:
Nilai |
---|
@sys.number:steps langkah @direction:direction |
Jika entity move
cocok
dengan ekspresi pengguna akhir yang berisi "lima langkah mundur",
entity move
akan dicocokkan.
Nilai yang diekstrak ditampilkan sebagai:
{"steps": 5, "direction": "back"}
.
Banyak entitas sistem adalah entitas gabungan.
Misalnya, entity sistem @sys.unit-currency
digunakan untuk mencocokkan jumlah uang dengan nama mata uang.
Ekspresi ini cocok dengan ekspresi pengguna akhir seperti "50 euro" atau "dua puluh dolar dan lima sen".
Nilai yang diekstrak ditampilkan sebagai objek JSON seperti:
{"amount": 50, "currency": "EUR"}
Entitas Regexp
Dengan entity ekspresi reguler, Anda dapat memberikan ekspresi reguler untuk pencocokan. Untuk informasi selengkapnya, lihat Entitas Regexp.
Untuk membuat entity ekspresi reguler:
- Dengan menggunakan konsol, periksa opsi Entitas Regexp.
- Dengan menggunakan API,
tetapkan
kolom
kind
EntityType
keKIND_REGEXP
.
Perluasan otomatis
Anda dapat mengaktifkan perluasan otomatis untuk jenis entity kustom. Jika diaktifkan, agen Anda dapat mengenali nilai yang belum diberikan secara eksplisit. Misalnya, pertimbangkan jenis entity 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 lainnya.
Anda harus mengikuti praktik terbaik saat mempertimbangkan perluasan otomatis:
- Mengaktifkan perluasan otomatis tidak menjamin ekstraksi entitas. 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, Anda harus menyediakan data pelatihan yang beragam yang mencakup semua kasus penggunaan tempat entitas tertentu dapat ditemukan dalam traffic agen yang diharapkan. Dengan contoh yang tidak memadai, perluasan entitas otomatis mungkin tidak berfungsi seperti yang diharapkan.
Untuk mengaktifkan perluasan otomatis:
- Menggunakan konsol, centang opsi Izinkan perluasan otomatis.
- Dengan menggunakan API,
tetapkan
kolom
autoExpansionMode
EntityType
keAUTO_EXPANSION_MODE_DEFAULT
.
Pencocokan fuzzy
Anda dapat mengaktifkan pencocokan fuzzy untuk entity kustom. Dengan pencocokan fuzzy yang diaktifkan, urutan kata dalam nilai atau sinonim tidak masalah. Untuk mengetahui informasi selengkapnya, lihat Pencocokan fuzzy.
Untuk mengaktifkan pencocokan fuzzy:
- Menggunakan konsol, periksa opsi Pencocokan fuzzy.
- Dengan menggunakan API,
tetapkan
kolom
enableFuzzyExtraction
EntityType
ketrue
.