Alice akan membantu pengembang menemukan objek dalam permintaan pengguna. NER dalam Dialog

Pada musim semi, kami meluncurkan platform Dialogs , yang memungkinkan Anda membuat keterampilan untuk Alice dan mengenali permintaan suara dari pengguna. Awalnya, pengembang keterampilan harus menguraikan kueri sendiri. Misalnya, cari alamat dalam teks. Sekarang platform mengambil alih bagian pekerjaan ini.

Hari ini kami akan memberi tahu pembaca Habr tentang pengakuan entitas yang dinamai (Named-entity recognition; NER) dan peluang baru untuk pengembang keterampilan.



Kami percaya bahwa masa depan adalah dengan antarmuka suara. Sudah sekarang dalam banyak kasus, pengguna lebih suka menggunakan suara daripada keyboard di layar. Misalnya saja saat mengendarai mobil. Atau untuk menemukan jawaban cepat untuk pertanyaan sederhana. Atau bermain di "kota" berbaring di sofa. Tetapi untuk skenario seperti itu bertambah jumlahnya, cukup mengenali suara dalam teks saja tidak cukup.

Antarmuka suara mirip dengan permintaan mesin pencari. Kami tidak selalu mengerti persis bagaimana merumuskan permintaan kami untuk menemukan apa yang kami butuhkan. Pada awal pembentukan Internet, ini adalah masalah besar, karena mesin pencari hanya mencari kemunculan kata yang tepat dari kueri. Begitu juga dengan suaranya. Jika kami tidak tahu tim mana yang diharapkan dari kami, maka kami akan menebak untuk waktu yang lama.

Antarmuka suara yang baik tidak boleh membuat orang menemui jalan buntu. Biasanya, pengembang keterampilan menyelesaikan ini dengan dua trik. Pertama-tama, jawaban yang diharapkan diminta menggunakan tombol di layar. Ini adalah praktik yang baik yang kami sarankan untuk tidak diabaikan.

Selain itu, pencipta keterampilan mencoba memecah pertanyaan kompleks menjadi serangkaian pertanyaan yang lebih sederhana, jawaban yang lebih mudah diprediksi. Selain itu, dalam beberapa kasus, pengguna diminta untuk mengucapkan kata-kata secara ketat dalam bentuk dan kasus tertentu. Masalah dengan pendekatan ini adalah bahwa itu tidak bisa lagi disebut komunikasi alami. Semakin banyak konvensi dan batasan, semakin sedikit kontrol suara berbeda dari menggunakan keyboard dan tombol. Idealnya, pengguna harus berkomunikasi dengan layanan sebebas dengan seseorang.

Ini bagus ketika pengguna dapat mengatakan "Terima kasih! Kirim pesanan ke Leo Tolstoy 16 dan serahkan ke Sergey Sergeyev, ”daripada memecahnya menjadi serangkaian pertanyaan tentang jalan, nomor rumah, nama dan nama keluarga. Tetapi ini akan mengharuskan pengembang untuk menganalisis lebih lanjut jawaban yang diterima. Anda dapat melakukan ini secara manual oleh operator, tetapi dengan aliran operator yang besar, banyak yang akan dibutuhkan. Dan operator tidak mungkin melakukan ini secara real time, sehingga keterampilan akan kehilangan kesempatan untuk mengklarifikasi informasi yang hilang dengan segera. Anda dapat mengembangkan teknologi yang secara otomatis akan menemukan informasi penting dalam teks, mengklasifikasikannya, menormalkan dan menyimpannya. Tapi ini tugas yang agak melelahkan.

Agar dapat mengekstraksi entitas yang bermanfaat secara efisien dari teks dan mengklasifikasikannya berdasarkan jenis, layanan harus memiliki pengalaman dalam dua arah penting. Pertama-tama, Anda harus bisa mengumpulkan pengetahuan tentang objek apa itu. Jika Anda tidak memiliki Jalan Leo Tolstoy di "kamus", maka saat memproses permintaan, mudah untuk mengacaukannya dengan nama orang tersebut dan melewatkannya. Di sisi lain, sama pentingnya untuk dapat menemukan objek-objek ini dalam teks mentah dari pengguna. Paling tidak, perhatikan morfologi bahasa Rusia sehingga kata "Sergey" ditemukan dan berubah menjadi nama "Sergey".

Kebetulan Yandex memiliki banyak pengalaman di bidang ini. Teknologi pencarian digunakan baik untuk mencari objek baru dan untuk mengurai kueri pengguna. Sekarang teknologi ini juga tersedia untuk pengembang keterampilan untuk Alice.

Mengenali entitas yang bernama dalam Dialog


Setelah pengguna mengucapkan perintah, platform kami mengenali teksnya dan mengekstraksi kata dan frasa yang menggambarkan objek tertentu. Saat ini, Dialog mengenali:

- nama;
- indikasi lokasi;
- tanggal dan waktu;
- bilangan bulat dan pecahan.

Informasi tentang objek yang dikenali dikirim ke server keterampilan bersama dengan teks respons pengguna. Pertimbangkan sebuah contoh:

β€œPesan pizza di Leo Tolstoy 16 untuk Sergey Sergeyev pukul 10 malam”

Platform kami tahu bahwa Leo Tolstoy tidak hanya orang, tetapi juga jalanan. Dia juga memperhitungkan bahwa di alamat sebelah nama jalan sering menunjukkan nomor rumah. Oleh karena itu, permintaan keterampilan akan berisi blok berikut:

{ "type": "YANDEX.GEO", "value": { "house_number": "16", "street": " " } } 

Lokasi dapat mencakup tidak hanya jalan dan rumah, tetapi juga kota, negara atau bahkan bandara.

Dengan nama, ini bekerja dengan cara yang hampir sama. Platform dapat menemukan nama, nama keluarga, nama tengah dan membawa mereka ke kasus nominatif.

 { "type": "YANDEX.FIO", "value": { "first_name": "", "last_name": "" } } 

Normalisasi data adalah fitur penting dari pengakuan entitas yang disebutkan. Jika untuk alamat dan nama properti ini tidak begitu jelas, maka dengan tanggal dan waktu semuanya jauh lebih jelas. "10 malam" secara otomatis berubah menjadi "22". Besok dan lusa secara eksplisit tanggal kenaikan.

 { "type": "YANDEX.DATETIME", "value": { "hour_is_relative": false, "hour": 22 } } 

Pengakuan angka juga tidak boleh diremehkan. Misalnya, "empat koma sepuluh persepuluh" dalam teks dari pengguna akan berubah menjadi:

 { "type": "YANDEX.NUMBER", "value": 4.5 } 

Tertarik? Kami mengundang Anda ke dokumentasi . Jika ada pertanyaan, selamat datang di obrolan kami di Telegram . Sangat nyaman untuk mengikuti berita platform lainnya di blog .

Source: https://habr.com/ru/post/id425331/


All Articles