Sintaks pola

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.

Sintaks pola adalah template untuk sebuah ucapan. Template harus berisi kata dan entitas yang ingin Anda cocokkan serta kata dan tanda baca yang ingin Anda abaikan. Hal ini bukan ekspresi reguler.

Perhatian

Pola hanya menyertakan induk entitas pembelajaran komputer, bukan subentitas. Entitas dalam pola dikelilingi oleh kurung kurawal, {}. Pola dapat mencakup entitas, dan entitas dengan peran. Pattern.any adalah entitas yang hanya digunakan dalam pola.

Sintaks pola mendukung sintaks berikut:

Fungsi Sintaks Tingkat berlapis Contoh
entitas {} - tanda kurung kurawal 2 Di mana formulir {entitas-nama}?
opsional [] - tanda kurung siku

Ada batas 3 pada level berlapis dari kombinasi opsional dan pengelompokan apa pun
2 Tanda tanya adalah opsional [?]
pengelompokan () - tanda kurung 2 adalah (a | b)
or | - batang vertikal (pipa)

Ada batas 2 pada batang vertikal (Atau) dalam satu grup
- Di mana bentuk ({form-name-short} | {form-name-long} | {form-number})
awal dan/atau akhir ujaran ^ - tanda sisipan - ^mulai ucapannya
ucapan selesai ^
^kecocokan literal yang ketat dari seluruh ucapan dengan entitas {number}^

Sintaks berlapis dalam pola

Sintaks opsional, dengan tanda kurung siku, dapat dilapisi dua tingkat. Misalnya: [[this]is] a new form. Contoh ini memungkinkan untuk ucapan-ucapan berikut:

Contoh ucapan opsional berlapis Penjelasan
hal ini formulis baru cocok dengan semua kata dalam pola
adalah formulir baru cocok dengan kata opsional luar dan kata non-opsional dalam pola in
formulir baru cocok dengan kata-kata yang diperlukan saja

Sintaks pengelompokan, dengan tanda kurung, dapat dilapisi dalam dua tingkat. Misalnya: (({Entity1:RoleName1} | {Entity1:RoleName2} ) | {Entity2} ). Fitur ini memungkinkan salah satu dari tiga entitas untuk dicocokkan.

Jika Entitas1 adalah Lokasi dengan peran seperti asal (Seattle) dan tujuan (Kairo) dan Entitas 2 adalah nama bangunan yang dikenal dari entitas daftar (RedWest-C), ucapan berikut akan memetakan pola ini:

Contoh ucapan pengelompokan berlapis Penjelasan
RedWest-C cocok dengan entitas pengelompokan luar
Seattle cocok dengan salah satu entitas pengelompokan dalam
Cairo cocok dengan salah satu entitas pengelompokan dalam

Batas berlapis untuk grup dengan sintaks opsional

Kombinasi pengelompokan dengan sintaks opsional memiliki batas 3 tingkat berlapis.

Diizinkan Contoh
Ya ( [ ( test1 | test2 ) ] | test3 )
No ( [ ( [ test1 ] | test2 ) ] | test3 )

Batas berlapis untuk grup dengan sintaks or-ing

Kombinasi pengelompokan dengan sintaks atau-ing memiliki batas 2 batang vertikal.

Diizinkan Contoh
Ya ( test1 | test2 | ( test3 | test4 ) )
No ( test1 | test2 | test3 | ( test4 | test5 ) )

Sintaks untuk menambahkan entitas ke templat pola

Untuk menambahkan entitas ke dalam template pola, apit nama entitas dengan kurung kurawal, seperti Who does {Employee} manage?.

Pola dengan entitas
Who does {Employee} manage?

Sintaks untuk menambahkan entitas dan peran ke template pola

Peran entitas dilambangkan sebagai {entity:role} dengan nama entitas diikuti dengan titik dua, lalu nama peran. Untuk menambahkan entitas dengan peran ke dalam template pola, apit nama entitas dan nama peran dengan kurung kurawal, seperti Book a ticket from {Location:Origin} to {Location:Destination}.

Pola dengan peran entitas
Book a ticket from {Location:Origin} to {Location:Destination}

Sintaks untuk menambahkan pattern.any ke template pola

Entitas Pattern.any memungkinkan Anda untuk menambahkan entitas dengan panjang yang bervariasi pada pola. Selama template pola diikuti, pattern.any bisa berapa pun panjangnya.

Untuk menambahkan entitas Pattern.any ke dalam template pola, kelilingi entitas Pattern.any dengan kurung kurawal, seperti How much does {Booktitle} cost and what format is it available in?.

Pola dengan Pola.entitas apa pun
How much does {Booktitle} cost and what format is it available in?
Judul buku dalam pola
Berapa biaya mencuri buku ini dan dalam format apa buku itu tersedia?
Berapa biaya ask ​​dan format apa yang tersedia?
Berapa harga Insiden Penasaran Anjing di Waktu Malam dan format apa yang tersedia?

Kata-kata judul buku tidak membingungkan LUIS karena LUIS tahu di mana judul buku berakhir, berdasarkan entitas Pattern.any.

Daftar eksplisit

buat Daftar Eksplisit melalui API penulisan untuk mengizinkan pengecualian saat:

  • Pola Anda berisi Pattern.any
  • Dan sintaks pola itu memungkinkan kemungkinan ekstraksi entitas yang salah berdasarkan ucapan.

Misalnya, Anda memiliki pola yang berisi sintaks opsional, [], dan sintaks entitas, {}, digabungkan dengan cara mengekstrak data secara tidak benar.

Perhatikan pola `[temukan] email tentang {subjek} [dari {person}]'.

Dalam ucapan berikut, entitas subjek dan orang diekstraksi dengan benar dan salah:

Ucapan Entity Ekstraksi yang benar
email tentang anjing dari Chris subjek = anjing
orang=Chris
email tentang pria dari La Mancha subjek = pria
orang=La Mancha
X

Pada tabel sebelumnya, subjeknya harus the man from La Mancha (judul buku) tetapi karena subjek menyertakan kata opsional from, judulnya salah diprediksi.

Untuk memperbaiki pengecualian pada pola ini, tambahkan the man from la mancha sebagai pencocokan daftar eksplisit untuk entitas {subject} menggunakan API penulisan untuk daftar eksplisit.

Sintaks untuk menandai teks opsional dalam ucapan template

Tandai teks opsional dalam ucapan menggunakan sintaks kurung siku ekspresi reguler, []. Teks opsional dapat melapisi tanda kurung siku hingga dua tanda kurung saja.

Pola dengan teks opsional Makna
[find] email about {subject} [from {person}] find dan from {person} bersifat opsional
`Bisakah Anda membantu saya [?] Tanda baca adalah opsional

Tanda baca (?, !, .) harus diabaikan dan Anda harus mengabaikannya menggunakan sintaks kurung siku dalam pola.

Langkah berikutnya

Pelajari lebih lanjut tentang pola:

Pahami bagaimana sentimen dikembalikan dalam respons .json.