Menghasilkan Jawaban Kueri

Diterbitkan: 2022-05-05

Paten Google yang baru-baru ini diberikan ini umumnya berkaitan dengan menghasilkan jawaban kueri, dan paten ini juga memperkenalkan konsep Kendala untuk membantu menjawab kueri.

Menggunakan Batasan Untuk Jawaban Kueri

Paten ini mengajukan pertanyaan tentang konten yang terkait dengan fakta tentang entitas yang pertanyaannya semakin bertambah.

Dokumen tentang Menggunakan batasan untuk menjawab kueri adalah sebagai berikut:

    GRIP: Penjelasan Berbasis Kendala dari Jawaban yang Hilang untuk Kueri Grafik
    Pertanyaan Menjawab menggunakan Kepuasan Kendala: QA-by-Dossier-with-Constraints

Menariknya dokumen pertama mengacu pada Google Knowlege Vault sebagai referensi. Kemungkinan karena berfokus pada mendapatkan jawaban yang benar untuk pertanyaan dengan menggunakan kendala.

Karena paten ini sangat berfokus pada SEO Semantik. Itu mengingatkan saya pada paten Google lainnya tentang topik itu, termasuk dua ini, yang patut dibaca dengan cermat:

  • Rekonsiliasi Grafik Pengetahuan Google
  • Ekstraksi Entitas untuk Grafik Pengetahuan di Google

Paten memberikan beberapa wawasan tentang bagaimana entitas dan atribut entitas bekerja, bagaimana tupel digunakan dalam pencarian grafik, dan melihat SEO Semantik.

Menghasilkan Jawaban Query Dengan Memberikan Fakta Dari Database

Sistem pencarian dapat menghasilkan tanggapan terhadap pertanyaan faktual dengan memberikan fakta dari database.

Fakta-fakta ini dapat disimpan dalam grafik yang dapat diperbarui secara real-time.

Tanggapan semacam itu mungkin diformat sebagai daftar hasil pencarian daripada kalimat.

Ketika pengguna mengajukan pertanyaan faktual, misalnya, melalui suara ke sistem dialog, mungkin diinginkan untuk memiliki respons alami terhadap pertanyaan tersebut.

Respons yang paling alami mungkin merupakan jawaban yang dirumuskan sebagai pernyataan gramatikal dari fakta-fakta yang memenuhi pertanyaan pengguna untuk memberikan jawaban pertanyaan.

Jadi, menurut salah satu aspek umum dari materi pelajaran yang dijelaskan dalam paten ini, sebagai tanggapan atas pertanyaan faktual, fakta yang disimpan dalam database diubah menjadi kalimat dalam bahasa pengguna.

Menerima Jawaban Query Mengidentifikasi Atribut Entitas

Salah satu aspek dari materi pelajaran yang dijelaskan dalam spesifikasi ini dapat diwujudkan dalam metode yang mencakup tindakan menerima kueri yang mengidentifikasi atribut suatu entitas. Atribut tersebut adalah fakta tentang entitas.

Tindakan tersebut kemudian mencakup mengakses templat kandidat untuk jawaban kueri berdasarkan atribut entitas. Setiap template kandidat memiliki bidang; di mana setiap area diasosiasikan dengan setidaknya satu kendala.

Kemudian, tindakannya termasuk memperoleh sekumpulan informasi yang menyediakan jawaban kueri dan memilih templat dari kumpulan templat kandidat. Templat yang dipilih memiliki jumlah bidang paling signifikan dengan batasan yang memenuhi kumpulan informasi.

Tiga Semantik Terkait dengan Entitas

Kumpulan informasi dapat berupa kumpulan tiga kali lipat entitas-atribut-nilai.

Tindakan selanjutnya termasuk menghasilkan frasa dengan menambahkan kumpulan informasi ke bidang templat yang dipilih, sehingga kata-kata tersebut terdiri dari jawaban kueri.

Frasa adalah kalimat atau bagian dari kalimat. Akhirnya, tindakan termasuk mengkomunikasikan kata-kata ke perangkat klien.

Frase dapat dikomunikasikan sebagai sinyal audio yang sesuai dengan kata-kata.

Kendala mungkin termasuk:

  • Kendala jenis
  • Kendala sementara
  • Batasan jenis kelamin
  • Batasan hubungan
  • Batasan tunggal/jamak
  • Batasan satuan ukuran
  • Kendala penentu.

Beberapa implementasi melibatkan perolehan banyak set informasi yang responsif terhadap satu atribut dalam kueri.

Tindakan lebih lanjut meliputi:

  • Memperoleh templat kalimat berdasarkan jenis entitas, di mana templat kalimat mencakup sejumlah bidang untuk frasa
  • Menambahkan frasa ke bidang templat kalimat untuk membentuk kalimat
  • Memilih, untuk setiap kumpulan informasi, sebuah templat dari kumpulan templat kandidat
  • Menghasilkan, untuk setiap templat yang dipilih, sebuah frasa dengan menambahkan kumpulan informasi masing-masing ke bidang masing-masing templat yang dipilih
  • Mengkomunikasikan kalimat termasuk frasa ke perangkat klien

Ini mungkin melibatkan jawaban kueri yang menyertakan banyak atribut.

  • Menerima jawaban kueri yang mengidentifikasi banyak atribut dari suatu entitas
  • Mengakses, untuk setiap atribut entitas, satu set templat kandidat untuk jawaban kueri berdasarkan atribut masing-masing entitas
  • Memperoleh, untuk setiap atribut entitas, satu set informasi yang menjawab masing-masing bagian dari kueri
  • Memilih template dari set masing-masing calon template
  • Menghasilkan, untuk setiap atribut entitas, frasa dengan menambahkan kumpulan informasi masing-masing ke bidang templat yang dipilih
  • Memperoleh templat kalimat berdasarkan jenis entitas, di mana templat kalimat mencakup sejumlah bidang untuk frasa
  • Menambahkan frasa ke bidang templat kalimat untuk membentuk kalimat
  • Mengkomunikasikan kalimat termasuk frasa ke perangkat klien

Keuntungan Dari proses ini dapat mencakup:

Sistem ini dapat dikonfigurasi dan diperluas ke pernyataan dan jawaban faktual yang kompleks.
Ini memungkinkan pemisahan yang bersih dari database aktual dari mekanisme pembuatan kalimat.
Ini memungkinkan penambahan template baru melalui metode apa pun yang sesuai.

Paten Jawaban Kueri Pembangkit ini ada di

Menghasilkan jawaban kueri
Penemu: Engin Cinar Sahin, Vinicius J. Fortuna, dan Emma S. Persky
Penerima tugas: Google LLC
Paten AS: 11.321.331
Diberikan: 3 Mei 2022
Diarsipkan: 23 Juli 2018

Abstrak

Server menerima jawaban kueri yang mengidentifikasi atribut suatu entitas.

Server mengakses sekumpulan templat kandidat untuk menjawab kueri berdasarkan atribut entitas, setiap templat kandidat memiliki bidang, di mana setiap bidang dikaitkan dengan setidaknya satu batasan.

Server memperoleh satu set informasi dan jawaban kueri dan memilih templat dari kumpulan templat kandidat.

Template yang dipilih memiliki jumlah bidang terbesar dengan batasan yang dipenuhi oleh kumpulan informasi.

Server menghasilkan frasa dengan menambahkan kumpulan informasi ke bidang templat yang dipilih, sehingga frasa tersebut terdiri dari jawaban atas kueri.

Akhirnya, server mengkomunikasikan frase ke perangkat klien.

Mengubah Fakta Dari Database Menjadi Kalimat

Ketika pengguna mengajukan pertanyaan faktual, mesin pencari dapat memberikan jawaban kueri dengan mengakses database.

Beberapa sistem, seperti sistem dialog berbasis suara, memungkinkan pengguna untuk merencanakan pertanyaan sebagai pertanyaan bahasa alami (misalnya, "Siapa presiden Jepang?").

Dalam kasus seperti itu, mungkin diinginkan untuk memberikan jawaban bahasa alami dalam bentuk kalimat daripada jawaban yang diformat sebagai hasil pencarian yang mengacu pada dokumen.

Dengan demikian, sistem yang dijelaskan dalam spesifikasi ini dapat mengubah fakta dari database menjadi kalimat. Ini mungkin menguntungkan, misalnya, sehingga jawabannya bisa diberikan kembali ke pengguna sebagai ucapan.

Untuk menghasilkan kalimat yang menjawab pertanyaan pengguna, mengambil fakta acak dari database mungkin diinginkan. Fakta-faktanya tidak acak – mereka menggunakan informasi kendala untuk memberikan jawaban kueri. Ini tampaknya berarti jawaban yang lebih baik untuk pertanyaan tentang entitas.

Untuk menjawab pertanyaan seperti dengan siapa seseorang menikah, sistem dapat memperoleh data termasuk semua pernikahan sebelumnya, orang yang terlibat dalam pernikahan sebelumnya, tanggal persatuan, dan jenis perjanjian pernikahan. Sebuah database fleksibel yang mewakili fakta menggunakan struktur grafik dapat memberikan fakta-fakta ini.

Mengakses Template Kandidat Untuk Menghasilkan Jawaban Kueri Berdasarkan Atribut Atau Atribut

Setelah fakta dikumpulkan, mesin penjawab dapat mengakses templat kandidat untuk menghasilkan jawaban berdasarkan atribut atau atribut yang disediakan dalam kueri. Misalnya, jika pertanyaan awalnya adalah “Dengan siapa Woody Allen menikah”, intinya mungkin adalah “perkawinan”. Jika kueri sebenarnya adalah "Berapa umur Woody Allen", atributnya mungkin "usia". Seperti yang dijelaskan di bawah ini, setiap poin pertanyaan mungkin sesuai dengan beberapa templat kandidat, misalnya, untuk mendukung jawaban yang lebih atau kurang mendetail.

Misalnya, jika atributnya adalah “usia”, mesin penjawab dapat memperoleh template yang menyertakan tanggal lahir dan usia (misalnya, {<entity> lahir pada <date> dan saat ini <value> years}), sebuah template yang hanya mencakup usia (misalnya, {<entity> saat ini <value> tahun}), dan template yang menyertakan tanggal lahir dan tanggal kematian (misalnya, {<entity> lahir pada <date> dan meninggal pada < /tanggal>}).

Seperti yang dijelaskan secara lebih rinci di bawah ini, bagian dari template yang disertakan dalam “< >” (yaitu, bidang) mungkin terkait dengan berbagai kendala pada data yang dapat mereka pegang.

Setelah mesin penjawab memperoleh templat kandidat, mesin penjawab memilih templat yang paling relevan berdasarkan beberapa heuristik dan menghasilkan kalimat dengan memasukkan fakta ke dalam templat. Mesin penjawab kemudian dapat memberikan jawaban dalam koreksi kembali kepada pengguna.

Sistem Pencarian Grafik Data

Sistem mungkin terbiasa menerapkan mesin pencari untuk grafik data menggunakan teknik yang dijelaskan di sini.

Suatu sistem digambarkan sebagai sistem mesin pencari untuk grafik data yang memproses permintaan kueri dari klien. Konfigurasi dan aplikasi lain dari teknologi terkait dapat digunakan. Misalnya, permintaan kueri mungkin berasal dari server lain, dari pekerjaan batch, atau terminal pengguna dalam komunikasi dengan sistem pencarian grafik data.

Sistem pencarian grafik data dapat mencakup sistem pengindeksan, sistem pencarian, dan cluster indeks. Sistem pengindeksan, sistem pencarian, dan cluster indeks dapat berupa perangkat komputasi yang berbentuk beberapa perangkat yang berbeda, misalnya, server standar, sekelompok server tersebut, atau sistem server rak.

Selain itu, sistem pengindeksan, sistem pencarian, dan cluster indeks dapat diterapkan di komputer pribadi, misalnya, komputer laptop.

Sistem pencarian grafik data dapat mencakup penyimpanan data berbasis grafik. Grafik data seperti itu menyimpan node dan edge, dari mana grafik dapat dibuat.

Node dapat disebut entitas, dan tepi dapat disebut sebagai hubungan antara dua entitas. Hubungan tersebut dapat disimpan dalam beberapa cara.

Penyimpanan data berbasis grafik menyimpan tiga tupel yang mewakili entitas dan hubungan dalam satu contoh.

Triple Tuple Mewakili Entitas Dan Hubungan

Triple juga dapat mencakup format, dengan entitas yang mewakili entitas awal, titik yang mewakili karakteristik entitas terkait sebagai tepi yang didefinisikan ulang dari entitas, dan nilai yang mewakili entitas terkait.

Salah satu contoh triple adalah entitas Woody Allen sebagai subjek (atau entitas), hubungan bertindak sebagai predikat (atau atribut), dan entitas Annie Hall sebagai objek (atau nilai).

Tentu saja, grafik data dengan banyak entitas dan bahkan sejumlah hubungan terbatas mungkin memiliki miliaran tiga kali lipat.

Sistem pengindeksan dapat mencakup prosesor yang dikonfigurasi untuk mengeksekusi instruksi yang dapat dieksekusi mesin atau bagian dari perangkat lunak, firmware, atau kombinasinya.

Menemukan Jawaban Pertanyaan

Sistem pencarian dapat mencakup server (tidak ditampilkan) yang menerima kueri dari pengguna klien dan memberikan kueri tersebut ke sistem pencarian.

Sistem pencarian mungkin bertanggung jawab untuk mencari grafik data dan, sumber data lainnya, seperti kumpulan dokumen dari Internet atau Intranet, sebagai tanggapan atas permintaan.

Misalnya, sistem pencarian mungkin menerima kueri dari klien, seperti klien, melakukan beberapa pemrosesan kueri, dan mengirim kueri ke kluster indeks dan ke kluster pengindeksan lain yang menyimpan indeks untuk mencari sumber lain.

Sistem pencarian mungkin memiliki modul yang mengkompilasi hasil dari semua sumber dan memberikan hasil yang dikompilasi ke klien.

Sistem pencarian hanya dapat mengirim kueri ke cluster indeks dan dapat memberikan hasil pencarian dari cluster indeks ke klien.

Sistem pencarian mungkin berkomunikasi dengan klien melalui jaringan.

Cluster Indeks dalam Menemukan Jawaban Kueri

Sistem juga dapat menyertakan cluster indeks. Cluster indeks dapat berupa perangkat komputasi tunggal atau sistem database terdistribusi dengan perangkat komputasi, masing-masing dengan prosesor dan memorinya sendiri.

Jumlah perangkat komputasi yang terdiri dari cluster indeks dapat bervariasi dan, demi singkatnya, cluster indeks ditampilkan sebagai satu kesatuan.

Setiap klaster indeks dapat menyertakan prosesor yang dikonfigurasi untuk mengeksekusi instruksi yang dapat dieksekusi mesin atau bagian dari perangkat lunak, firmware, atau kombinasinya.

Cluster komputasi dapat mencakup, sistem operasi (tidak ditampilkan) dan memori komputer, misalnya, memori utama, dikonfigurasi untuk menyimpan potongan data, baik sementara, permanen, semi permanen, atau kombinasinya.

Memori dapat mencakup semua jenis perangkat penyimpanan yang menyimpan informasi dalam format yang dapat dibaca dan dieksekusi oleh prosesor, termasuk memori volatil, memori non-volatil, atau kombinasinya.

Penyelesai Kueri yang Mengakses Indeks untuk Mengambil Hasil yang Responsif Terhadap Kueri

Klaster indeks juga dapat menyertakan modul, seperti penyelesai kueri, yang mengakses indeks untuk mengambil hasil yang responsif terhadap kueri.

Penyelesai kueri juga dapat menjadi bagian dari sistem pencarian atau mungkin didistribusikan antara sistem pencarian dan klaster indeks.

Pertanyaan dan Jawaban Kueri yang Semakin Rumit

Permintaan sederhana yang melibatkan satu atribut ("usia") dan menghasilkan jawaban rangkap tiga.

Contoh kueri sederhana yang melibatkan satu atribut (“perkawinan”) tetapi menghasilkan beberapa jawaban rangkap tiga.

Contoh kueri rumit yang melibatkan dua atribut ("kampung halaman dan almamater") dan menghasilkan jawaban rangkap tiga.

Contoh sistem yang menghasilkan kalimat dalam menanggapi pertanyaan faktual.

Sistem ini mencakup perangkat klien, sistem pencarian, cluster indeks, dan mesin penjawab.

Entitas dapat diimplementasikan sebagai bagian dari sistem.

Pengguna memulai kueri yang memiliki istilah kueri menggunakan perangkat klien.

Pengguna dapat memformat kueri asli sebagai kalimat.

Berinteraksi Dengan Sistem Dialog Berbasis Suara

Pengguna dapat berinteraksi dengan perangkat klien menggunakan sistem dialog berbasis suara.

Misalnya, pengguna dapat mengucapkan kueri "Berapa umur Woody Allen" ke mikrofon perangkat klien.

Perangkat klien kemudian dapat melakukan pengenalan suara untuk mengubah ucapan menjadi transkripsi dan kemudian mengirimkan transkripsi ke mesin pencari.

Sebagai alternatif, perangkat klien dapat mengirimkan data ucapan audio yang menyandikan ucapan.

Sistem pencarian menerima kueri (misalnya, "Berapa umur Woody Allen") dari perangkat klien.

Jika kueri dikodekan sebagai data ucapan audio, sistem pencarian dapat mengubah data ucapan audio menjadi transkripsi.

Sistem pencarian kemudian mem-parsing dan memformat kueri asli menjadi <entity; atribut> (seperti <woody Allen/age<) menggunakan, misalnya, mesin pengurai bahasa alami yang sesuai.

Sistem pencarian kemudian mengirimkan kueri yang diformat ke cluster indeks.

Cluster indeks mengakses indeks untuk mengambil hasil yang responsif terhadap kueri.

Jawaban Query Berbentuk Triples

Hasil ini dapat berupa kumpulan informasi faktual dalam bentuk rangkap tiga (misalnya, </woody><woody Allen/born on/Dec. 1,>

Cluster indeks kemudian mengirimkan kueri yang diformat (misalnya, </woody><woody Allen/age> dan informasi faktual yang menjawab kueri tersebut (misalnya, </woody><woody Allen/born on/Dec. 1, 1935>) ke mesin penjawab.

Dengan menggunakan kueri yang diformat dan informasi faktual, mesin penjawab kemudian menghasilkan jawaban dalam bentuk kalimat atau kalimat.

Mesin penjawab menghasilkan jawaban sebagai berikut. Pertama, mesin penjawab memperoleh atribut atau atribut dari kueri yang diformat.

Kemudian, mesin penjawab menggunakan atribut atau atribut tersebut untuk mengakses kandidat template kalimat atau frase dari database template.

Selanjutnya, mesin penjawab memilih salah satu templat berdasarkan informasi faktual dan berbagai kendala yang terkait dengan templat kandidat.

Terakhir, mesin penjawab mengisi kolom pada template yang dipilih dengan menggunakan informasi faktual.

Mesin Penjawab Memperoleh Atribut atau Atribut

Secara lebih rinci, mesin penjawab pertama-tama memperoleh atribut atau atribut dari kueri yang diformat dengan mengurai kueri tersebut. Misalnya, dengan asumsi bahwa kueri diformat sebagai pasangan <entitas/atribut>, mesin penjawab mengekstrak bagian atribut dari pasangan tersebut.

Dalam beberapa kasus, kueri yang diformat mungkin menyertakan beberapa atribut. Misalnya, kueri yang diformat mungkin dalam bentuk <entity/attribute/attribute>. Dalam kasus seperti itu, mesin penjawab dapat mengekstrak setiap atribut dari kueri.

Selanjutnya, mesin penjawab mengakses template kandidat untuk setiap atribut dalam kueri dari database template.

Setiap template mungkin sesuai dengan kalimat penuh atau sebagian dari kalimat (misalnya, frase).

Setiap templat menyertakan bidang (ditampilkan sebagai bagian dalam tanda kurung “< >”) yang dapat memasukkan informasi faktual.

Misalnya, template mungkin “Pada <tanggal>, <entitas> menikah dengan <nilai>.” Template dapat dibuat secara manual atau secara algoritmik.

Template Kandidat dalam Bahasa Pengguna

Mesin penjawab mengidentifikasi bahasa pengguna dan memilih templat kandidat dalam bahasa pengguna.

Misalnya, mesin penjawab dapat menerima data dari mesin telusur yang menunjukkan bahasa kueri asli. Secara menguntungkan, konfigurasi seperti itu dapat memfasilitasi internasionalisasi jawaban.

Bidang mungkin terkait dengan batasan yang mengatur data yang mungkin berisi setiap bidang.

Seperti yang digunakan dalam spesifikasi ini, notasi “<X/Y >” menunjukkan bidang yang memiliki batasan “X” dan batasan “Y”.

Batasan sampel dapat mencakup batasan jenis, batasan temporal, batasan gender, batasan hubungan, batasan tunggal/jamak, batasan unit ukuran, dan batasan determinan.

Batasan yang Berbeda Mungkin Memerlukan Jenis Data yang Berbeda

Batasan tipe mungkin memerlukan tipe data tertentu, misalnya batasan <tanggal> mungkin memerlukan tanggal, batasan <entitas> mungkin memerlukan nama entitas atau pengenal lain, dan kendala mungkin memerlukan nomor.

Batasan temporal mungkin memerlukan, misalnya, bahwa tanggal atau waktu berada di masa lalu atau di masa depan, misalnya, bidang yang berisi <tanggal/masa lalu> mungkin mengharuskan bidang menyertakan tanggal di masa lalu. Batasan gender mungkin memerlukan, misalnya, gender pria atau wanita.

Batasan hubungan mungkin memerlukan, misalnya, jenis hubungan ke entitas lain, misalnya, bidang yang berisi <entitas/pasangan> mungkin mengharuskan bidang tersebut menyertakan entitas yang merupakan pasangan dari entitas lain. Batasan tunggal/jamak mungkin memerlukan, misalnya, data di lapangan dalam bentuk tunggal atau jamak.

Batasan satuan ukuran mungkin, misalnya, mengharuskan data di lapangan diukur dalam satuan ukuran tertentu (misalnya, inci, kaki, sentimeter, meter, dll.). Batasan determinan mungkin memerlukan, misalnya, bahwa kata “the” mendahului field.

Setiap atribut dalam kueri dapat berfungsi sebagai kunci untuk mengakses sekumpulan templat kandidat. Misalnya, atribut "usia" dapat mengakibatkan pengambilan template. Contoh template termasuk template pertama “ lahir pada <tanggal/lalu&glt; dan saat ini <value> tahun”, yang memerlukan nama entitas untuk <entity&lgt; bidang, tanggal di masa lalu untuk bidang, dan nomor (misalnya, usia) untuk bidang <nilai<.

Templat kedua, “<entitas> saat ini <nilai< tahun”, memerlukan nama entitas untuk bidang <entitas> dan nomor (misalnya, usia) untuk bidang <nilai>.

Template ketiga, “<entity> lahir pada <date/past> dan meninggal pada <date/past>,” memerlukan nama entitas untuk bidang </entity><entity>, dan dua tanggal terakhir untuk <date/ melewati> bidang.

Beberapa Template Untuk Atribut yang Diberikan

Secara menguntungkan, memiliki beberapa templat untuk atribut tertentu memungkinkan implementasi mendukung sebagian fakta. Misalnya, untuk templat usia, jika tahun lahir diketahui tetapi tanggal spesifiknya tidak diketahui, templat yang sesuai mungkin adalah “</entity><entity> lahir di <year/past>.” Menyediakan beberapa templat untuk atribut tertentu juga memungkinkan perubahan tenses untuk bagian fakta yang berbeda (misalnya, "Woody Allen menikah" dan "Woody Allen menikah").

Setelah mendapatkan templat kandidat, mesin penjawab memilih templat dari templat kandidat berdasarkan berbagai heuristik. Misalnya, mesin penjawab mungkin memeriksa kesepakatan gender dan tenses yang benar. Selain itu, mesin penjawab dapat menentukan bahwa jumlah jawaban untuk kueri asli sesuai dengan jumlah bidang dari templat yang dipilih.

Mesin penjawab juga dapat menentukan apakah batasan dan bidang template yang dipilih terpenuhi. Mesin penjawab dapat memilih template yang memiliki jumlah kolom maksimum dengan batasan yang dipenuhi oleh informasi faktual (misalnya, template yang paling kaya data). Informasi faktualnya adalah “<woody Allen/lahir pada/Des. 1, 1935>.”

Dalam contoh ini, template kandidat pertama adalah “<entity> lahir pada <date/past> dan saat ini tahun." Template ini memiliki bidang, bidang <tanggal/masa lalu>, dan bidang <nilai>. Informasi faktual menyediakan entitas yang memenuhi batasan bidang <entity> dan tanggal di masa lalu yang memenuhi kendala lapangan.

Mesin penjawab dapat memperoleh nilai berdasarkan informasi faktual. Oleh karena itu, mesin penjawab dapat menghitung nilai usia untuk memenuhi batasan bidang <nilai< berdasarkan tanggal lahir. Karena informasi faktual memenuhi semua batasan untuk bidang dalam templat pertama, mesin penjawab memilih templat pertama.

Mesin penjawab memilih templat pertama dengan bidang yang dapat diisi oleh informasi faktual, dan tidak melakukan pemrosesan tambahan apa pun. Sebagai alternatif, mesin penjawab dapat memproses setiap templat dalam templat kandidat dan memilih templat yang memiliki jumlah kolom terbesar yang dapat diisi oleh informasi faktual.

Setelah memilih template, mesin penjawab kemudian menghasilkan kalimat atau frase berdasarkan template. Misalnya, mesin penjawab dapat mengganti bidang dalam templat dengan data yang sesuai dari informasi faktual. Mesin penjawab menghasilkan kalimat “Woody Allen lahir pada 1 Desember 1935, dan saat ini berusia 77 tahun” menggunakan templat yang dipilih.

Mesin penjawab kemudian mentransmisikan jawaban ke perangkat klien, di mana jawabannya mencakup kalimat yang dihasilkan. Jawabannya mungkin berupa transkripsi yang diubah perangkat klien menjadi ucapan dan dirender untuk pengguna.

Sistem yang Menghasilkan Kalimat Dalam Menanggapi Pertanyaan Faktual

Sistem ini mencakup perangkat klien, sistem pencarian, cluster indeks, dan mesin penjawab. Entitas yang diilustrasikan dapat, misalnya, diimplementasikan sebagai bagian dari sistem.

Perangkat klien memulai kueri yang memiliki istilah kueri.

Misalnya, pengguna dapat memasukkan kueri "Dengan siapa Woody Allen menikah" ke browser web di perangkat klien.

Sistem pencarian menerima kueri (misalnya, "Dengan siapa Woody Allen menikah") dari perangkat klien.

Sistem pencarian kemudian mem-parsing dan memformat kueri asli menjadi bentuk (misalnya, ) menggunakan, misalnya, mesin pengurai bahasa alami yang sesuai.

Dalam contoh ini, kueri yang diformat mencakup pengenal entitas (misalnya, Woody Allen), jenis entitas (misalnya, orang), dan atribut (misalnya, pernikahan).

Informasi jenis dapat digunakan untuk menghasilkan meta-templat seperti yang dijelaskan di bawah ini. Sistem pencarian kemudian mengirimkan kueri yang diformat ke cluster indeks.

Cluster Indeks Mengakses Indeks untuk Mengambil Sekumpulan Informasi Faktual yang Responsif Terhadap Query

Cluster indeks mengakses indeks Untuk mengambil satu set p\informasi faktual yang responsif terhadap kueri. Hasil ini mencakup setidaknya dua kali lipat (misalnya, , dan <louise Lasser/istri/1966/1970>).

Cluster indeks kemudian mengirimkan kueri yang diformat (misalnya, <woody Allen/age> dan informasi faktual yang menjawab kueri tersebut (misalnya, <Soon-Yi Previn/wife/1997>, dan <louise Lasser/wife/1966/1970> ) ke mesin penjawab.

Dengan menggunakan query berformat dan informasi faktual, mesin penjawab kemudian menghasilkan jawaban dalam bentuk kalimat atau kalimat sebagai berikut.

Pertama, mesin penjawab memperoleh informasi jenis dari kueri yang diformat (misalnya, orang).

Informasi tipe mengidentifikasi tipe entitas yang menjadi dasar kueri. Dengan menggunakan informasi tipe, mesin penjawab mengakses templat meta kandidat yang diasosiasikan dengan tipe entitas “orang”.

Seperti yang disebutkan dalam spesifikasi ini, meta-template adalah template yang memiliki bidang yang dikonfigurasi untuk memuat template lain.

Setiap kandidat meta-templat mencakup bidang untuk nama atau pengidentifikasi entitas dan setidaknya satu bidang untuk menambahkan templat lain.

Template ini memungkinkan mesin penjawab untuk menghasilkan kalimat untuk menggabungkan berbagai frasa yang memiliki informasi tentang seseorang.

Mesin penjawab juga memperoleh atribut atau atribut dari kueri yang diformat dan menggunakan atribut atau atribut untuk mengakses templat frasa kandidat dari basis data templat.

Templat frasa ini dirancang untuk dimasukkan ke dalam templat meta.

Seperti dijelaskan di atas, setiap atribut dalam kueri dapat berfungsi sebagai kunci untuk mengakses sekumpulan templat frasa kandidat.

Misalnya, atribut "perkawinan" dapat mengakibatkan pengambilan templat frasa.

Contoh templat frasa mencakup templat pertama “telah menikah dengan <entitas/pasangan> sejak <tanggal/masa lalu>”, yang mengharuskan entitas yang menikah dengan entitas dalam kueri yang diformat untuk bidang, dan tanggal di masa lalu untuk bidang.

Templat kedua, “menikah dengan <entitas/pasangan>”, memerlukan entitas yang menikah dengan entitas dalam kueri yang diformat untuk bidang.

Template ketiga, "sudah menikah," tidak memerlukan informasi tambahan.

Templat keempat, “menikah dengan <entitas/pasangan > dari <tanggal/masa lalu > hingga <tanggal/masa lalu >”, mengharuskan entitas yang menikah dengan entitas dalam kueri yang diformat untuk bidang, dan dua tanggal di masa lalu untuk bidang <tanggal/masa lalu>. Templat kelima, “menikah dengan <entitas/pasangan>”, memerlukan entitas yang menikah dengan entitas dalam kueri yang diformat untuk bidang <entitas/pasangan>. Dan templat keenam, "sudah menikah," tidak memerlukan informasi tambahan.

Selanjutnya, mesin penjawab memilih salah satu kandidat meta-templat berdasarkan jenis informasi yang termasuk dalam informasi faktual. Secara khusus, mesin penjawab memilih kandidat meta-templat berdasarkan jumlah tiga kali lipat yang disertakan dalam informasi faktual. Dua kali lipat dimasukkan dalam informasi faktual. Oleh karena itu, mesin penjawab memilih meta-template “orang” yang memiliki kolom untuk dua template, yaitu, “<entity><template>, dan </template><template>.”

Untuk setiap rangkap tiga yang disertakan dalam informasi faktual, mesin penjawab juga memilih templat dari templat frasa kandidat. Mesin penjawab dapat memilih templat frasa yang memiliki jumlah kolom maksimum dengan batasan yang dipenuhi oleh informasi faktual (mis., templat yang paling kaya data).

Triple pertama yang termasuk dalam informasi faktual adalah <Soon-Yi Previn/wife/1997>.” Dalam contoh ini, templat frasa kandidat pertama adalah “telah menikah dengan sejak .” Templat ini memiliki <ntity/pasangan&g; bidang dan bidang <tanggal/masa lalu>.

Triple pertama memiliki entitas dengan hubungan pasangan ke entitas dalam kueri berformat yang memenuhi batasan bidang <entitas/pasangan>, dan tanggal di masa lalu yang memenuhi batasan bidang <tanggal/masa lalu>. Karena rangkap tiga pertama memenuhi semua batasan untuk bidang dalam templat pertama, mesin penjawab memilih templat pertama untuk rangkap tiga pertama.

Triple kedua yang termasuk dalam informasi faktual adalah <louise Lasser/wife/1966/1970>.” Templat frasa kandidat keempat adalah “menikah dengan <entitas/pasangan> dari <tanggal/masa lalu> hingga <tanggal/masa lalu>,” yang memiliki bidang <entitas/pasangan> dan dua bidang <tanggal/masa lalu>. Triple kedua dalam informasi faktual memberikan entitas dengan hubungan pasangan ke entitas dalam kueri berformat yang memenuhi batasan bidang <entity/spouse>, dan dua tanggal di masa lalu yang memenuhi kendala lapangan.

Karena rangkap kedua memenuhi semua batasan untuk bidang dalam templat keempat, mesin penjawab memilih templat keempat untuk rangkap kedua.

Mesin penjawab memilih templat pertama dengan bidang yang dapat diisi oleh informasi faktual, dan tidak melakukan pemrosesan tambahan apa pun. Sebagai alternatif, mesin penjawab dapat memproses setiap templat dalam templat kandidat dan memilih templat yang memiliki jumlah kolom terbesar yang dapat diisi oleh informasi faktual.

Setelah memilih template, mesin penjawab kemudian menghasilkan kalimat berdasarkan template. Misalnya, mesin penjawab dapat mengganti bidang dalam templat yang dipilih dengan data yang sesuai dari informasi faktual.

Mesin penjawab dapat mengganti bidang dalam templat frasa pertama yang dipilih (yaitu, "telah menikah dengan <entitas/pasangan> sejak <<tanggal/masa lalu>") dengan informasi dari rangkap tiga pertama untuk menghasilkan frasa "telah menikah ke Soon-Yi Previn sejak 1997." Dengan demikian, mesin penjawab menghasilkan kalimat "Woody Allen telah menikah dengan Soon-Yi Previn sejak 1997 dan sebelumnya menikah dengan Louise Lasser dari 1966 hingga 1970." Mesin penjawab kemudian mengirimkan jawaban ke perangkat klien yang menyertakan kalimat yang dihasilkan. Jawabannya mungkin disertakan dalam laman hasil penelusuran yang menyertakan kalimat dan hasil penelusuran lainnya. Laman hasil penelusuran juga menyertakan kotak penelusuran yang menampilkan kueri penelusuran asli (yaitu, "Who was Woody Allen menikah dengan"). Laman hasil penelusuran kemudian dapat dirender oleh perangkat klien. Kalimat alternatifnya dapat ditransmisikan sebagai transkripsi yang memungkinkan perangkat klien menghasilkan ucapan, atau sebagai sinyal audio yang mengkodekan kalimat untuk rendering di perangkat klien.

Sistem yang Menghasilkan Kalimat Sebagai Respons Terhadap Pertanyaan Faktual

Sistem ini mencakup perangkat klien, sistem pencarian, cluster indeks, dan mesin penjawab.

Perangkat klien memulai kueri yang memiliki dua istilah kueri ("Di mana kampung halaman dan almamater Woody Allen") ke dalam browser web di perangkat klien.

Sistem pencarian menerima kueri (misalnya, "Di mana kampung halaman dan almamater Woody Allen") dari perangkat klien. Sistem pencarian kemudian mem-parsing dan memformat kueri asli ke dalam format <entity/type/attribute> (misalnya, >woody Allen/person/hometown/college<) menggunakan, misalnya, mesin pengurai bahasa alami yang sesuai.

Dalam contoh ini, kueri yang diformat mencakup pengenal entitas (misalnya, Woody Allen), jenis entitas (misalnya, orang), dan dua atribut (misalnya, kota asal dan perguruan tinggi). Sistem pencarian kemudian mengirimkan kueri yang diformat ke cluster indeks.

Dengan menggunakan query berformat dan informasi faktual, mesin penjawab kemudian menghasilkan jawaban dalam bentuk kalimat atau kalimat sebagai berikut. First, the answer engine obtains the type information from the formatted query (eg, person).

Using the type information, the answer engine accesses candidate meta-templates that are associated with a “person” type of entity.

As referred to in this specification, meta-templates are templates that have fields configured to contain other templates.

The answer engine also obtains the attributes from the formatted query and uses the attributes to access candidate phrase templates from template databases.

These phrase templates get designed to get incorporated into the meta-templates.

As described above, each attribute in the query may function as a key for accessing a set of candidate phrase templates. For example, the attribute “hometown” may result in the retrieval of the phrase templates. The sample phrase templates include a first template “currently lives in >location<,” which requires a geographic location for the bidang.

The second template, “has lived in </location><location> since <date/past>,” requires a geographic location for the </location<>location> field and a date in the past for the <date/past> field. The third template, “used to live in </location><location>,” requires a geographic location for the location field.

Next, the answer engine selects one of the candidate meta-templates based on the type of information included in the factual information. In particular, the answer engine selects a candidate meta-template based on the number of triples included in the factual information. Two triples get included in the factual information.

For each triple included in the factual information, the answer engine also selects a template from the candidate phrase templates The answer engine may select the phrase template having the maximum number of fields with constraints that get satisfied by the factual information (eg, the most data-rich template). The answer engine also may perform other heuristics, such as analyzing gender agreement and correct tense of the candidate templates.

The first triple included in the factual information is <woody Allen/hometown/NYC>.” In this example, the first candidate template in the hometown templates is “currently lives in <location>.” The first triple has a location (ie, NYC) that satisfies the </location><location> field constraint. Since the first triple satisfies all of the constraints for the fields in the first template, the answer engine selects the first template from the hometown templates for the first triple.

The second triple included in the factual information is <woody Allen/college/NYU>.” The first candidate template in the college templates is “his alma mater is </college><college>.” The second triple in the factual information provides a college name (ie, NYU) that satisfies the </college<>college> field constraint.

Also, the answer engine may determine that the gender of the entity (Woody Allen) agrees with the gender of the phrase in this template. The answer engine selects the first template from the college templates for the second triple.

The answer engine selects the first template with fields that can get filled by the factual information, and does not perform any additional processing. Alternatively, the answer engine may process each template in the candidate templates and select the template having the largest quantity of fields that can get filled by the factual information.

After selecting the templates, the answer engine then generates a sentence based on the templates. For example, the answer engine may replace the fields in the selected templates with the appropriate data from the factual information. The answer engine may replace the fields in the first selected phrase template (ie, “currently lives in <location>”) with the information from the first triple to generate the phrase “currently lives in New York City.”

The answer engine then replaces the template fields in the selected meta-template (ie, “<entity><template> and &kt;/template><template>”) with the phrases generated from the first and second phrase templates. Thus, the answer engine generates the sentence “Woody Allen currently lives in New York City and his alma mater is New York University.”

The answer engine then transmits an answer to the client device that includes the generated sentence.

The answer may get included in a search results page that includes the sentence and other search results. The search results page also includes a search box showing the original search query (ie, “Where is Woody Allen's hometown and alma mater”). The search results page may then get rendered by the client device.

As getting provided in search results, the sentence could alternatively get transmitted as a transcription that allows the client device to generate speech, or as an audio signal encoding the sentence for rendering at the client device.

An Example Data Graph

The example data graph includes nodes (eg, entities) and edges connecting the nodes (eg, relationships or attributes). Naturally, the example data graph shows only a partial graph–a full graph with a large number of entities and even a limited number of relationships may have billions of triples.

An indexing system may traverse the data graph to obtain factual information as various triples. One example of a triple that may get obtained is the entity “Woody Allen” as the subject (or entity), the relationship “was born” as the predicate (or attribute), and the entity “Dec. 1, 1935” as the object (or value).

Another example of a triple that may be obtained is the entity “Woody Allen” as the subject, the relationship “has type” as the predicate, and the entity “person” as the value. This triple may get used, for example, by the answer engine as described above to select candidate meta-templates.

Another example of a triple that may get obtained is the entity “Woody Allen” as the subject, the relationship “was married to” as the predicate, and the entity “Louise Lasser” as the value.

Note that to obtain this triple, the indexing system must traverse two edges in the data graph, ie, from the “Woody Allen” entity to the “Woody Allen marriages” entity, and then from the “Woody Allen marriages” entity to the “Louise Lasser” entity.

Generating Sentences In Response To Factual Queries

A server (eg, an answer engine) receives an original query that identifies the attributes of an entity. For example, the server may receive a query that identifies multiple attributes of an entity (eg, age, date of birth, place of birth, marriages, etc.).

The server accesses a set of candidate templates for answering the query based on the attributes of the entity. Each candidate template includes fields, wherein each field gets associated with at least one constraint. When multiple attributes get identified in the original query, the server accesses a set of candidate templates for each attribute of the entity. The constraints may include of a type constraint, a temporal constraint, a gender constraint, a relationship constraint, a singular/plural constraint, a unit of measure constraint, and a determinant constraint.

The server then obtains a set of information that answers the query, for example by accessing a graph-based datastore as described above. The set of information that answers the query may be, for example, a set of entity-attribute-value triples. When multiple attributes get identified in the original query, the server obtains a set of information for each attribute (ie, to answer each portion of the original query).

Multiple sets of information (eg, multiple triples) may be responsive to a single attribute. For example, if the attribute is “marriages” or “children,” then multiple triples may get obtained in response to the attribute.

the server selects a template from the set of candidate templates, where the selected template has a maximum number of fields with constraints that may get satisfied by the set of information that answers the query. When multiple attributes get identified in the original query, the server selects a template for each attribute from the appropriate set of candidate templates.

Also, when multiple sets of information get obtained in response to a single attribute, the server may select multiple templates from the same set of candidate templates.

The server then generates a phrase. The phrase may get generated by adding the set of information that answers the query to the fields of the selected template so that the phrase answers the original query. The phrase may get sentenced. Alternatively or in addition, the phrase may be portions of a sentence. When multiple attributes get identified in the original query, the server generates a phrase for each attribute. The server may then combine the phrases to generate a complete sentence.

The server may obtain a sentence template (eg, a meta-template) based on the type of the entity (eg, person or location). The sentence template may include multiple fields for inserting phrases. For example, the server may access a set of candidate meta-templates based on the type of entity, and then select a meta-template from the set based on the number of triples that answer the original query.

The server may then add the generated phrases described with reference to step to the fields of the sentence template to form a sentence.
The server communicates the phrase or sentence to a client device. The client device may then output the phrase to a display or as speech audio. The server transmits an audio signal corresponding to the phrase or sentence to the client device.