Sorgu Yanıtları Oluşturma

Yayınlanan: 2022-05-05

Yakın zamanda verilen bu Google patenti, genellikle sorgu yanıtları oluşturmakla ilgilidir ve bu patent, sorguları yanıtlamaya yardımcı olmak için Kısıtlamalar kavramını da tanıtmaktadır.

Sorgu Yanıtları İçin Kısıtlamaları Kullanma

Bu patent, hakkında soruların eklendiği varlıklar hakkındaki gerçeklerle ilgili içerikler hakkında sorular sorar.

Sorgu yanıtlama için kısıtlamaları kullanma ile ilgili belgeler şunlardır:

    GRIP: Grafik Sorguları için Eksik Cevapların Kısıtlamaya Dayalı Açıklaması
    Kısıtlama Memnuniyetini Kullanarak Soru Cevaplama: Kısıtlamalı Dosyaya Göre QA

İlginç bir şekilde, ilk belge referans olarak Google Knowlege Vault'a atıfta bulunuyor. Muhtemelen, kısıtlamaları kullanarak sorulara doğru cevaplar almaya odaklandığı için.

Bu patent Semantik SEO'ya çok fazla odaklandığından. Bana, bu ikisi de dahil olmak üzere, bu konuyla ilgili olan ve dikkatlice okumaya değer diğer Google patentlerini hatırlattı:

  • Google Bilgi Grafiği Uzlaştırması
  • Google'da Bilgi Grafikleri için Varlık Çıkarmaları

Patent, varlıkların ve varlık özniteliğinin nasıl çalıştığına, grafik aramasında demetlerin nasıl kullanıldığına ve Semantik SEO'ya bir bakış hakkında bazı bilgiler sağlar.

Bir Veritabanından Gerçekler Sağlayarak Sorgu Yanıtları Oluşturma

Arama sistemleri, bir veri tabanından gerçekler sağlayarak olgusal sorgulara yanıtlar üretebilir.

Bu gerçekler, gerçek zamanlı olarak güncellenebilen bir grafikte saklanabilir.

Bu tür yanıtlar, cümleler yerine arama sonuçları listesi olarak biçimlendirilebilir.

Bir kullanıcı, örneğin, bir diyalog sistemine ses yoluyla, olgusal bir soru sorduğunda, soruya doğal bir yanıt verilmesi istenebilir.

En doğal yanıt, sorgu yanıtları sağlamak için kullanıcının sorusunu karşılayan olguların dilbilgisel bir ifadesi olarak formüle edilmiş bir yanıt olabilir.

Böylece, bu patentte açıklanan konunun genel bir yönüne göre, olgusal bir sorguya yanıt olarak, bir veri tabanında saklanan olgular, kullanıcının dilinde bir cümleye dönüştürülür.

Bir Varlığın Niteliklerini Tanımlayan Sorgu Yanıtları Alma

Bu belirtimde açıklanan konunun bir yönü, bir varlığın niteliklerini tanımlayan bir sorgu alma eylemlerini içeren yöntemlerde somutlaştırılabilir. Bu nitelikler varlık hakkındaki gerçeklerdir.

Eylemler, daha sonra, varlığın niteliklerine dayalı olarak sorgu yanıtları için aday şablonlara erişmeyi içerir. Her aday şablonun alanları vardır; burada her alan en az bir kısıtlama ile ilişkilendirilir.

Ardından, eylemler, sorgu yanıtları sağlayan bir dizi bilgi elde etmeyi ve aday şablonlar koleksiyonundan bir şablon seçmeyi içerir. Seçilen şablon, bilgi kümesini karşılayan kısıtlamalara sahip en önemli sayıda alana sahiptir.

Varlıklarla İlgili Semantik Üçlüler

Bilgi kümesi, bir varlık-nitelik-değer üçlüleri kümesi olabilir.

Eylemler ayrıca, sözcüklerin sorgu yanıtlarını oluşturacağı şekilde, seçilen şablonun alanlarına bilgi kümesi ekleyerek bir tümcecik oluşturmayı içerir.

İfade bir cümle veya bir cümlenin bir parçasıdır. Son olarak, eylemler, kelimeleri bir istemci cihaza iletmeyi içerir.

İfade, kelimelere karşılık gelen bir ses sinyali olarak iletilebilir.

Kısıtlamalar şunları içerebilir:

  • Tür kısıtlaması
  • zamansal kısıtlama
  • cinsiyet kısıtlaması
  • ilişki kısıtlaması
  • Tekil/çoğul kısıtlama
  • Ölçü kısıtlaması birimi
  • Belirleyici kısıtlama.

Bazı uygulamalar, sorgudaki tek bir özniteliğe yanıt veren birçok bilgi kümesinin elde edilmesini içerir.

Eylemler ayrıca şunları içerir:

  • Varlığın bir türüne dayalı olarak bir cümle şablonunun elde edilmesi, burada cümle şablonu, ifadeler için çok sayıda alan içerir.
  • Cümleyi oluşturmak için cümleleri cümle şablonunun alanlarına ekleme
  • Her bilgi kümesi için aday şablonlar kümesinden bir şablon seçme
  • İlgili seçili şablonun alanlarına ilgili bilgi kümesini ekleyerek, seçilen her şablon için bir tümcecik oluşturma
  • Cümleleri içeren cümlenin bir istemci cihaza iletilmesi

Bu, birçok özniteliği içeren sorgu yanıtlarını içerebilir.

  • Bir varlığın birçok özelliğini tanımlayan sorgu yanıtları alma
  • Varlığın her özelliği için, varlığın ilgili niteliğine dayalı olarak sorgu yanıtları için bir dizi aday şablona erişim
  • Varlığın her özelliği için, sorgunun ilgili bir bölümünü yanıtlayan bir dizi bilgi elde etmek
  • İlgili aday şablonlar kümesinden bir şablon seçme
  • Seçili şablonun alanlarına ilgili bilgi kümesini ekleyerek varlığın her özelliği için bir ifade oluşturma
  • Varlığın bir türüne dayalı olarak bir cümle şablonunun elde edilmesi, burada cümle şablonu, ifadeler için çok sayıda alan içerir.
  • Bir cümle oluşturmak için cümle şablonunun alanlarına ifadeler ekleme
  • Cümleleri içeren bir cümleyi bir istemci cihaza iletmek

Bu sürecin avantajları şunları içerebilir:

Sistem yapılandırılabilir ve karmaşık olgusal iddialara ve yanıtlara genişletilebilir.
Gerçek veritabanının cümle oluşturma mekanizmasından temiz bir şekilde ayrılmasını sağlayabilir.
Herhangi bir uygun yöntemle yeni şablonların eklenmesine izin verebilir.

Bu Üreten Sorgu Yanıtları Patenti şu adreste:

Sorgu yanıtları oluşturma
Mucitler: Engin Çınar Şahin, Vinicius J. Fortuna ve Emma S. Persky
Atanan: Google LLC
ABD Patenti: 11.321.331
Verildi: 3 Mayıs 2022
Dosyalanma: 23 Temmuz 2018

Soyut

Bir sunucu, bir varlığın özniteliklerini tanımlayan sorgu yanıtlarını alır.

Sunucu, varlığın niteliklerine dayalı olarak sorguyu yanıtlamak için bir dizi aday şablona erişir, her aday şablonun alanları vardır, burada her alan en az bir kısıtlama ile ilişkilendirilir.

Sunucu bir dizi bilgi ve sorgu yanıtı alır ve aday şablonlar kümesinden bir şablon seçer.

Seçilen şablon, bilgi kümesi tarafından sağlanan kısıtlamalara sahip en fazla alana sahiptir.

Sunucu, seçilen şablonun alanlarına bilgi kümesini ekleyerek bir ifade oluşturur, böylece ifade, sorguya bir yanıt içerir.

Son olarak, sunucu ifadeyi bir istemci cihaza iletir.

Bir Veritabanından Gerçekleri Cümlelere Dönüştürme

Bir kullanıcı gerçek bir soru sorduğunda, bir arama motoru bir veritabanına erişerek sorgu cevapları sağlayabilir.

Ses tabanlı diyalog sistemleri gibi bazı sistemler, kullanıcıların sorguları doğal dil soruları olarak planlamalarına olanak tanır (örneğin, “Japonya'nın başkanı kimdir?”).

Bu gibi durumlarda, belgelere atıfta bulunarak arama sonuçları olarak formatlanmış bir cevaptan ziyade, bir cümle şeklinde bir doğal dil cevabının sağlanması istenebilir.

Bu nedenle, bu belirtimde açıklanan sistemler, gerçekleri bir veri tabanından cümlelere dönüştürebilir. Bu, örneğin yanıtın kullanıcıya konuşma olarak geri verilebilmesi için avantajlı olabilir.

Kullanıcıların sorularına cevap veren cümleler üretmek için bir veri tabanından rastgele gerçekleri almak istenebilir. Olgular rastgele değil - sorgu yanıtları sağlamak için kısıtlama bilgilerini kullanıyorlar. Bu, varlıklar hakkındaki sorulara daha iyi cevaplar anlamına geliyor gibi görünüyor.

Birinin kiminle evlendiği gibi bir soruyu cevaplamak için, sistem tüm geçmiş evlilikleri, geçmiş evliliklere katılan kişileri, birliktelik tarihlerini ve evlilik sözleşmesi türlerini içeren verileri alabilir. Bir grafik yapısı kullanarak gerçekleri temsil eden esnek bir veri tabanı bu gerçekleri sağlayabilir.

Nitelik veya Niteliklere Dayalı Sorgu Yanıtları Oluşturmak İçin Aday Şablonlarına Erişme

Gerçekler toplandıktan sonra, bir cevap motoru, sorguda sağlanan nitelik veya niteliklere dayalı olarak bir cevap oluşturmak için aday şablonlara erişebilir. Örneğin, asıl soru “Woody Allen kiminle evliydi” ise, konu “evlilik” olabilir. Asıl sorgu "Woody Allen kaç yaşında" ise, nitelik "yaş" olabilir. Aşağıda açıklandığı gibi, örneğin az ya da çok ayrıntılı yanıtları desteklemek için bir sorunun her noktası birden fazla aday şablonuna karşılık gelebilir.

Örneğin, öznitelik "yaş" ise, yanıt motoru doğum tarihi ve yaşı içeren bir şablon elde edebilir (örneğin, {<entity> <tarih> tarihinde doğdu ve şu anda <değer> yaşında}), bir şablon yalnızca yaşı içeren (ör. {<varlık> şu anda <değer> yaşında}) ve doğum tarihi ile ölüm tarihini içeren bir şablon (ör. {<varlık>, <tarih> tarihinde doğdu ve <tarihinde öldü) /tarih>}).

Aşağıda daha ayrıntılı olarak açıklandığı gibi, "< >" içine alınmış şablonların bölümleri (yani alanlar) tutabilecekleri veriler üzerindeki çeşitli kısıtlamalarla ilişkilendirilebilir.

Cevap motoru aday şablonları elde ettikten sonra, çoklu buluşsal yöntemlere dayalı olarak en uygun şablonu seçer ve gerçekleri şablona ekleyerek bir cümle oluşturur. Cevap motoru daha sonra kullanıcıya bir düzeltmede cevap verebilir.

Bir Veri Grafiği Arama Sistemi

Sistem, burada açıklanan teknikleri kullanarak bir veri grafiği için bir arama motoru uygulamaya alışabilir.

Bir sistem, bir istemciden gelen sorgu isteklerini işleyen bir veri grafiği için bir arama motoru sistemi olarak tanımlanır. İlgili teknolojinin diğer konfigürasyonları ve uygulamaları kullanılabilir. Örneğin, sorgu talebi başka bir sunucudan, bir toplu işten veya bir veri grafiği arama sistemi ile iletişim halinde olan bir kullanıcı terminalinden kaynaklanabilir.

Veri grafiği arama sistemi, bir indeksleme sistemi, arama sistemi ve indeks kümesi içerebilir. İndeksleme sistemi, arama sistemi ve indeks kümesi, örneğin standart bir sunucu, bu tür bir sunucu grubu veya bir raf sunucusu sistemi gibi birkaç farklı cihaz şeklini alan bilgi işlem cihazları olabilir.

Ek olarak, indeksleme sistemleri, arama sistemleri ve indeks kümeleri, örneğin bir dizüstü bilgisayar gibi bir kişisel bilgisayarda uygulanabilir.

Veri grafiği arama sistemi, grafik tabanlı bir veri deposu içerebilir. Böyle bir veri grafiği, bir grafiğin oluşturulabileceği düğümleri ve kenarları depolar.

Düğümler varlıklar olarak adlandırılabilir ve kenarlar iki varlık arasındaki ilişkiler olarak adlandırılabilir. Bu tür ilişkiler birkaç şekilde saklanabilir.

Grafik tabanlı veri deposu, varlıkları ve ilişkileri temsil eden üçlü demetleri tek bir örnekte depolar.

Varlıkları ve İlişkileri Temsil Eden Üçlü Gruplar

Bir üçlü ayrıca bir başlangıç ​​varlığını temsil eden varlık, varlıktan yeniden tanımlanmış kenarlar olarak ilgili bir varlığın bir özelliğini temsil eden nokta ve ilgili varlığı temsil eden değer ile format.

Üçlüye bir örnek, özne (veya varlık) olarak Woody Allen varlığı, yüklem (veya nitelik) olarak hareket eden ilişki ve nesne (veya değer) olarak Annie Hall varlığıdır.

Elbette, birçok varlık ve hatta sınırlı sayıda ilişki içeren bir veri grafiği milyarlarca üçlüye sahip olabilir.

Dizin oluşturma sistemleri, makine tarafından yürütülebilir talimatları veya yazılım parçalarını, bellenimi veya bunların bir kombinasyonunu yürütmek üzere yapılandırılmış işlemcileri içerebilir.

Sorgu Yanıtlarını Bulma

Arama sistemi, bir istemcinin kullanıcısından sorguları alan ve bu sorguları arama sistemine sağlayan sunucuları (gösterilmemiştir) içerebilir.

Arama sistemi, bir sorguya yanıt olarak veri grafiğini ve İnternet veya İntranet'ten bir belge topluluğu gibi diğer veri kaynaklarını araştırmaktan sorumlu olabilir.

Örneğin, arama sistemi istemci gibi bir istemciden bir sorgu alabilir, bazı sorgu işlemlerini gerçekleştirebilir ve sorguyu dizin kümesine ve diğer kaynakları aramak için dizinleri depolayan diğer dizin oluşturma kümelerine gönderebilir.

Arama sistemi, tüm kaynaklardan sonuçları derleyen ve derlenen sonuçları istemciye sağlayan bir modüle sahip olabilir.

Arama sistemi yalnızca dizin kümesine sorgu gönderebilir ve dizin kümesinden istemciye arama sonuçları sağlayabilir.

Arama sistemi, ağ üzerinden istemcilerle iletişim halinde olabilir.

Sorgu Yanıtlarını Bulmada Bir Dizin Kümesi

Sistem ayrıca bir dizin kümesi içerebilir. İndeks kümesi, tek bir bilgi işlem cihazı veya her biri kendi işlemcisi ve belleği olan bilgi işlem cihazlarıyla dağıtılmış bir veritabanı sistemi olabilir.

İndeks kümesini oluşturan bilgi işlem cihazlarının sayısı değişebilir ve kısalık olması açısından indeks kümesi tek bir varlık olarak gösterilir.

Her dizin kümesi, makine tarafından yürütülebilir yönergeleri veya yazılım parçalarını, bellenimi veya bunların bir kombinasyonunu yürütmek üzere yapılandırılmış işlemciler içerebilir.

Bilgi işlem kümesi, bir işletim sistemi (gösterilmemiştir) ve örneğin, veri parçalarını geçici, kalıcı, yarı kalıcı olarak veya bunların bir kombinasyonunu depolamak üzere yapılandırılmış ana bellek gibi bilgisayar belleklerini içerebilir.

Bellek, geçici bellek, geçici olmayan bellek veya bunların bir kombinasyonu dahil olmak üzere bir işlemci tarafından okunabilen ve yürütülebilen bir biçimde bilgileri depolayan herhangi bir tür depolama aygıtı içerebilir.

Sorguya Duyarlı Sonuçları Almak için Dizine Erişen Bir Sorgu Çözümleyici

Dizin kümesi, sorguya yanıt veren sonuçları almak için dizine erişen sorgu çözümleyici gibi modüller de içerebilir.

Bir sorgu çözümleyici ayrıca arama sisteminin bir parçası olabilir veya arama sistemi ile dizin kümesi arasında dağıtılabilir.

Aşamalı Olarak Daha Karmaşık Sorgular ve Sorgu Yanıtları

Bir özniteliği ("yaş") içeren ve tek bir üçlü yanıtla sonuçlanan basit bir sorgu.

Bir özniteliği (“evlilik”) içeren ancak birden çok üçlü yanıtla sonuçlanan basit bir sorgu örneği.

İki öznitelik ("memleket ve mezun olunan okul") içeren ve birden çok üçlü yanıtla sonuçlanan karmaşık bir sorgu örneği.

Gerçek sorgulara yanıt olarak cümleler oluşturan örnek bir sistem.

Sistem bir istemci cihazı, bir arama sistemi, bir dizin kümesi ve bir yanıt motoru içerir.

Varlıklar sistemin bir parçası olarak uygulanabilir.

Bir kullanıcı, bir istemci cihazı kullanarak sorgu terimlerine sahip bir sorgu başlatır.

Kullanıcı, orijinal sorguyu bir cümle olarak biçimlendirebilir.

Ses Tabanlı Bir Diyalog Sistemiyle Etkileşim

Kullanıcı, ses tabanlı bir diyalog sistemi kullanarak istemci cihazla etkileşime girebilir.

Örneğin, kullanıcı, istemci cihazın mikrofonuna “Woody Allen kaç yaşında” sorgusunu söyleyebilir.

İstemci cihaz daha sonra konuşmayı transkripsiyona dönüştürmek için konuşma tanıma gerçekleştirebilir ve daha sonra transkripsiyonu arama motoruna iletebilir.

Alternatif olarak, müşteri cihazı ifadeyi kodlayan sesli konuşma verilerini iletebilir.

Arama sistemi sorguyu (örneğin, “Woody Allen kaç yaşında”) istemci cihazdan alır.

Sorgu sesli konuşma verileri olarak kodlanırsa, arama sistemi sesli konuşma verilerini bir transkripsiyona dönüştürebilir.

Arama sistemi daha sonra orijinal sorguyu ayrıştırır ve bir <entity; öznitelik> biçimini (<woody Allen/age< gibi) örneğin uygun bir doğal dil ayrıştırma motoru kullanarak.

Arama sistemi daha sonra biçimlendirilmiş sorguyu dizin kümesine gönderir.

Dizin kümesi, sorguya yanıt veren sonuçları almak için dizine erişir.

Üçlü Formda Sorgu Cevapları

Bu sonuçlar, üçlüler şeklinde bir dizi olgusal bilgi olabilir (örneğin, </woody><woody Allen/doğum/Aralık 1,>

Dizin kümesi daha sonra biçimlendirilmiş sorguyu (örneğin, </woody><woody Allen/age> ve sorguyu yanıtlayan olgusal bilgileri (örneğin, </woody><woody Allen/born on/Dec. 1, 1935>) iletir. cevap motoruna.

Yanıt motoru, biçimlendirilmiş sorguyu ve olgusal bilgileri kullanarak bir cümle veya cümleler biçiminde bir yanıt üretir.

Cevap motoru aşağıdaki gibi bir cevap üretir. İlk olarak, yanıt motoru, biçimlendirilmiş sorgudan özniteliği veya öznitelikleri alır.

Ardından, yanıt motoru, şablon veritabanından aday tümce veya tümcecik şablonlarına erişmek için özniteliği veya öznitelikleri kullanır.

Ardından, yanıt motoru, aday şablonlarla ilişkili gerçek bilgilere ve çeşitli kısıtlamalara dayalı olarak şablonlardan birini seçer.

Son olarak, yanıt motoru, gerçek bilgileri kullanarak seçilen şablondaki alanları doldurur.

Bir Nitelik veya Nitelikler Elde Eden Bir Cevap Motoru

Daha ayrıntılı olarak, yanıt motoru önce sorguyu ayrıştırarak biçimlendirilmiş sorgudan özniteliği veya öznitelikleri alır. Örneğin, sorgunun bir <varlık/öznitelik> çifti olarak biçimlendirildiğini varsayarsak, yanıt motoru çiftin öznitelik kısmını çıkarır.

Bazı durumlarda, biçimlendirilmiş sorgu birden çok öznitelik içerebilir. Örneğin, biçimlendirilmiş sorgu <varlık/öznitelik/öznitelik> biçiminde olabilir. Bu gibi durumlarda, yanıt motoru sorgudan her bir özelliği çıkarabilir.

Ardından, yanıt motoru, şablon veritabanından sorgudaki her bir öznitelik için aday şablonlara erişir.

Her şablon, tam bir cümleye veya bir cümlenin bir kısmına (örneğin, bir cümle) karşılık gelebilir.

Her şablon, gerçek bilgilerin girildiği alanlar ("< >" köşeli parantez içindeki kısımlar olarak gösterilir) içerir.

Örneğin, bir şablon "<date> tarihinde, <entity> <value> ile evlendi" olabilir. Şablonlar manuel veya algoritmik olarak oluşturulabilir.

Kullanıcının Dilinde Aday Şablonları

Cevap motoru, kullanıcının dilini tanımlar ve kullanıcının dilindeki aday şablonları seçer.

Örneğin, yanıt motoru, orijinal sorgunun dilini belirten arama motorundan veriler alabilir. Avantajlı bir şekilde, böyle bir konfigürasyon, cevabın uluslararası hale getirilmesini kolaylaştırabilir.

Alanlar, her alanın içerebileceği verileri yöneten kısıtlamalarla ilişkilendirilebilir.

Bu belirtimde kullanıldığı gibi, "<X/Y >" gösterimi, "X" kısıtlaması ve "Y" kısıtlaması olan bir alanı belirtir.

Örnek kısıtlamalar, tür kısıtlamalarını, zaman kısıtlamalarını, cinsiyet kısıtlamalarını, ilişki kısıtlamalarını, tekil/çoğul kısıtlamaları, ölçü birimleri kısıtlamalarını ve belirleyici kısıtlamaları içerebilir.

Farklı Constratinis, Farklı Veri Tipleri Gerektirebilir

Bir tür kısıtlaması belirli bir veri türü gerektirebilir; örneğin, bir <tarih> kısıtlaması bir tarih gerektirebilir, bir <varlık> kısıtlaması bir varlık adı veya başka bir tanımlayıcı gerektirebilir ve bir kısıtlama bir sayı gerektirebilir.

Geçici bir kısıtlama, örneğin bir tarih veya saatin geçmişte veya gelecekte olmasını gerektirebilir; örneğin, <tarih/geçmiş> içeren bir alan, alanın geçmişteki bir tarihi içermesini gerektirebilir. Bir cinsiyet kısıtlaması, örneğin bir erkek veya kadın cinsiyeti gerektirebilir.

Bir ilişki kısıtlaması, örneğin, başka bir varlıkla bir tür ilişki gerektirebilir; örneğin, <kuruluş/eş> içeren bir alan, alanın başka bir varlığın eşi olan bir varlığı içermesini gerektirebilir. Bir tekil/çoğul kısıtlaması, örneğin alandaki verilerin tekil veya çoğul biçimde olmasını gerektirebilir.

Bir ölçü birimi kısıtlaması, örneğin, alandaki verilerin belirli bir ölçü biriminde (örneğin, inç, fit, santimetre, metre, vb.) ölçülmesini gerektirebilir. Belirleyici bir kısıtlama, örneğin “the” kelimesinin alandan önce gelmesini gerektirebilir.

Sorgudaki her öznitelik, bir dizi aday şablona erişim için bir anahtar işlevi görebilir. Örneğin, "yaş" özelliği, şablonların alınmasına neden olabilir. Örnek şablonlar, bir ilk şablonu içerir “ <date/past&glt; ve şu anda <value> yaşında”, bu da <entity&lgt; alan, geçmişteki bir tarih alanı ve <değer< alanı için bir sayı (örneğin bir yaş).

İkinci şablon olan "<varlık> şu anda <değer< yaşındadır", <varlık> alanı için bir varlık adı ve <değer> alanı için bir sayı (örn., bir yaş) gerektirir.

Üçüncü şablon olan "<entity>, <date/past> tarihinde doğdu ve <date/past> tarihinde öldü", </entity><entity> alanı için bir varlık adı ve <date/ için iki geçmiş tarih gerektirir. geçmiş> alanlar.

Verilen Nitelikler İçin Çoklu Şablonlar

Avantajlı bir şekilde, belirli bir nitelik için birden çok şablona sahip olmak, uygulamaların kısmi gerçekleri desteklemesini sağlar. Örneğin, yaş şablonları için, doğum yılı biliniyorsa ancak belirli bir tarih bilinmiyorsa, uygun bir şablon “</entity><entity>, <year/past> içinde doğdu” olabilir. Belirli bir öznitelik için birden çok şablon sağlamak aynı zamanda gerçeklerin farklı bölümleri için zamanların değiştirilmesine de olanak tanır (örneğin, "Woody Allen evleniyor" ve "Woody Allen evlendi").

Aday şablonları aldıktan sonra, cevap motoru çeşitli buluşsal yöntemlere dayalı olarak aday şablonlardan bir şablon seçer. Örneğin, cevap motoru cinsiyet anlaşmasını ve doğru zamanı kontrol edebilir. Ayrıca, yanıt motoru, orijinal sorguya verilen yanıtların sayısının seçilen şablonun alan sayısıyla eşleştiğini belirleyebilir.

Yanıt motoru, seçilen şablonun kısıtlamalarının ve alanlarının karşılanıp karşılanmadığını da belirleyebilir. Cevap motoru, olgusal bilgilerle tatmin edilen kısıtlamaları olan maksimum sayıda alana sahip şablonu seçebilir (örneğin, veri açısından en zengin şablon). Gerçek bilgi şudur: “<woody Allen/doğum/Aralık. 1, 1935>.”

Bu örnekte, ilk aday şablon “<entity>, <date/past> tarihinde doğdu ve şu anda yaşında." Bu şablonun bir alanı, bir <tarih/geçmiş> alanı ve bir <değer> alanı. Olgusal bilgiler, <entity> alan kısıtlamasını karşılayan bir varlık ve aşağıdakileri karşılayan geçmişteki bir tarih sağlar. alan kısıtlamaları.

Cevap motoru, gerçek bilgilere dayalı olarak değerler türetebilir. Bu nedenle yanıt motoru, doğum tarihine dayalı <değer< alan kısıtlamasını karşılamak için bir yaş değeri hesaplayabilir. Gerçek bilgiler, ilk şablondaki alanların tüm kısıtlamalarını karşıladığından, yanıt motoru ilk şablonu seçer.

Cevap motoru, olgusal bilgilerle doldurulabilecek alanları olan ilk şablonu seçer ve herhangi bir ek işlem gerçekleştirmez. Alternatif olarak, cevap motoru aday şablonlardaki her şablonu işleyebilir ve olgusal bilgilerle doldurulabilecek en fazla alana sahip şablonu seçebilir.

Şablonu seçtikten sonra, yanıt motoru şablona dayalı olarak bir cümle veya deyim oluşturur. Örneğin, yanıt motoru şablondaki alanları olgusal bilgilerden uygun verilerle değiştirebilir. Yanıt motoru, seçilen şablonu kullanarak "Woody Allen 1 Aralık 1935'te doğdu ve şu anda 77 yaşında" cümlesini oluşturur.

Cevap motoru daha sonra müşteri cihazına bir cevap iletir, burada cevap oluşturulan cümleyi içerir Cevap, müşteri cihazının konuşmaya dönüştürdüğü ve kullanıcı için oluşturduğu bir transkripsiyon olabilir.

Olgusal Sorgulara Yanıt Olarak Cümle Üreten Sistem

Sistem bir istemci cihazı, bir arama sistemi, bir dizin kümesi ve bir yanıt motoru içerir. Gösterilen varlıklar, örneğin, sistemin bir parçası olarak uygulanabilir.

Bir istemci cihaz, sorgu terimlerine sahip bir sorgu başlatır.

Örneğin, bir kullanıcı, istemci cihazındaki bir web tarayıcısına “Woody Allen kiminle evliydi” sorgusunu girebilir.

Arama sistemi sorguyu (örneğin, “Woody Allen kiminle evliydi”) istemci cihazdan alır.

Arama sistemi daha sonra orijinal sorguyu ayrıştırır ve biçimlendirir. biçimi (örn. ) örneğin uygun bir doğal dil ayrıştırma motorunun kullanılması.

Bu örnekte, biçimlendirilmiş sorgu, varlığın bir tanımlayıcısını (örneğin, Woody Allen), bir varlık türünü (örneğin, kişi) ve bir özniteliği (örneğin, evlilikler) içerir.

Tip bilgisi, aşağıda açıklandığı gibi bir meta-şablon oluşturmak için kullanılabilir. Arama sistemi daha sonra biçimlendirilmiş sorguyu dizin kümesine gönderir.

Dizin Kümesi, Sorguya Yanıt Veren Bir Gerçek Bilgi Kümesini Almak için Dizine Erişir

Dizin kümesi, sorguya yanıt veren bir dizi gerçek bilgi almak için dizine erişir. Bu sonuçlar en az iki üçlü içerir (örn. ve <louise Lasser/eşi/1966/1970>).

Dizin kümesi daha sonra biçimlendirilmiş sorguyu (örn., <woody Allen/age>) ve sorguyu yanıtlayan olgusal bilgileri (örn., <Soon-Yi Previn/wife/1997> ve <louise Lasser/wife/1966/1970>) iletir. ) cevap motoruna.

Yanıt motoru, biçimlendirilmiş sorguyu ve olgusal bilgileri kullanarak aşağıdaki gibi bir cümle veya cümleler biçiminde bir yanıt üretir.

İlk olarak, yanıt motoru, biçimlendirilmiş sorgudan (örneğin, kişi) tür bilgisini alır.

Tür bilgisi, sorgunun temel aldığı varlığın türünü tanımlar. Yanıt motoru, tür bilgisini kullanarak, bir "kişi" türü varlıkla ilişkili aday meta şablonlarına erişir.

Bu belirtimde bahsedildiği gibi, meta-şablonlar, diğer şablonları içerecek şekilde yapılandırılmış alanlara sahip şablonlardır.

Aday meta şablonların her biri, bir varlığın adı veya tanımlayıcısı için bir alan ve başka şablonlar eklemek için en az bir alan içerir.

Bu şablonlar, cevap motorunun bir kişi hakkında bilgi içeren çeşitli ifadeleri birleştirmek için cümleler oluşturmasına izin verir.

Yanıt motoru ayrıca, biçimlendirilmiş sorgudan özniteliği veya öznitelikleri alır ve özniteliği ya da öznitelikleri, şablon veritabanından aday sözcük öbeği şablonlarına erişmek için kullanır.

Bu ifade şablonları, meta şablonlara dahil edilmek üzere tasarlanmıştır.

Yukarıda açıklandığı gibi, sorgudaki her öznitelik, bir dizi aday sözcük grubu şablonuna erişim için bir anahtar işlevi görebilir.

Örneğin, "evlilik" niteliği, kalıp ifadelerinin alınmasına neden olabilir.

Örnek ifade şablonları, "<tarih/geçmiş> tarihinden beri <varlık/eş> ile evleniyor" ilk şablonunu içerir; bu, varlık için biçimlendirilmiş sorguda varlıkla evlenen bir varlık gerektirir. alan ve geçmişteki bir tarih tarla.

İkinci şablon, "<varlık/eş> ile evlenir", varlık için biçimlendirilmiş sorguda varlıkla evlenen bir varlık gerektirir. tarla.

Üçüncü şablon olan "evlidir" ek bilgi gerektirmez.

Dördüncü şablon, "<tarih/geçmiş > ile <tarih/geçmiş > arasında <varlık/eş > ile evliydi", için biçimlendirilmiş sorguda varlıkla evlenen bir varlık gerektirir. alanı ve <date/past> alanları için geçmişteki iki tarih. Beşinci şablon, "<varlık/eş> ile evliydi", <varlık/eş> alanı için biçimlendirilmiş sorguda varlıkla evlenen bir varlık gerektirir. Ve altıncı şablon olan “evliydi” ek bilgi gerektirmez.

Ardından, yanıt motoru, olgusal bilgilere dahil edilen bilgilerin türüne göre aday meta şablonlardan birini seçer. Özellikle, yanıt motoru, olgusal bilgilere dahil edilen üçlülerin sayısına dayalı olarak bir aday meta-şablon seçer. Gerçek bilgilere iki üçlü dahil edilir. Bu nedenle yanıt motoru, iki şablon için alanları olan "kişi" meta şablonunu seçer, yani "<entity><template> ve </template><template>."

Gerçek bilgilere dahil edilen her üçlü için, cevap motoru ayrıca aday ifade şablonlarından bir şablon seçer. Cevap motoru, olgusal bilgilerle (örneğin, veri açısından en zengin şablon) tatmin olan kısıtlamaları olan maksimum sayıda alana sahip olan ifade şablonunu seçebilir.

Gerçek bilgilere dahil edilen ilk üçlü <Soon-Yi Previn/wife/1997>'dir.” Bu örnekte, ilk aday kelime öbeği şablonu “evliydi” şeklindedir. dan beri ” Bu şablonda bir <nity/eş&g; alanı ve bir <tarih/geçmiş> alanı.

İlk üçlü, biçimlendirilmiş sorgudaki varlıkla <varlık/eş> alan kısıtlamasını karşılayan bir eş ilişkisi olan bir varlığa ve <tarih/geçmiş> alan kısıtlamalarını karşılayan geçmişte bir tarihe sahiptir. İlk üçlü, ilk şablondaki alanların tüm kısıtlamalarını karşıladığından, yanıt motoru ilk üçlü için ilk şablonu seçer.

Olgusal bilgilere dahil edilen ikinci üçlü <louise Lasser/eşi/1966/1970>'dir.” Dördüncü aday kelime öbeği şablonu, bir <varlık/eş> alanı ve iki <tarih/geçmiş> alanına sahip olan “<tarih/geçmiş> ile <tarih/geçmiş> arasında <varlık/eş> ile evli idi” şeklindedir. Olgusal bilgilerdeki ikinci üçlü, biçimlendirilmiş sorgudaki varlıkla <varlık/eş> alan kısıtlamasını karşılayan bir eş ilişkisi olan bir varlık ve geçmişteki iki tarihi sağlar. alan kısıtlamaları.

İkinci üçlü, dördüncü şablondaki alanların tüm kısıtlamalarını karşıladığından, yanıt motoru ikinci üçlü için dördüncü şablonu seçer.

Cevap motoru, olgusal bilgilerle doldurulabilecek alanları olan ilk şablonu seçer ve herhangi bir ek işlem gerçekleştirmez. Alternatif olarak, cevap motoru aday şablonlardaki her bir şablonu işleyebilir ve olgusal bilgilerle doldurulabilecek en fazla alana sahip şablonu seçebilir.

Şablonları seçtikten sonra, yanıt motoru şablonlara dayalı bir cümle oluşturur. Örneğin, yanıt motoru seçilen şablonlardaki alanları olgusal bilgilerden uygun verilerle değiştirebilir.

Cevap motoru, ilk seçilen kelime öbeği şablonundaki alanları (yani, "<tarih/geçmiş> tarihinden beri <varlık/eş> ile evlendi"), "evlendi" ifadesini oluşturmak için ilk üçlüdeki bilgilerle değiştirebilir. 1997'den beri Soon-Yi Previn'e." Böylece, yanıt motoru "Woody Allen, 1997'den beri Soon-Yi Previn ile evlendi ve daha önce 1966'dan 1970'e kadar Louise Lasser ile evlendi" cümlesini oluşturur. oluşturulan cümleyi içeren istemci cihaza. Yanıt, cümleyi ve diğer arama sonuçlarını içeren bir arama sonuçları sayfasına eklenebilir. Arama sonuçları sayfası ayrıca orijinal arama sorgusunu gösteren bir arama kutusu içerir (yani, "Woody Kimdi?" Allen evli"). Arama sonuçları sayfası daha sonra müşteri cihazı tarafından işlenebilir. Cümle alternatif olarak, müşteri cihazının konuşma üretmesine izin veren bir transkripsiyon olarak veya cümleyi kodlayan bir ses sinyali olarak iletilebilir. istemci cihazda işleme.

Olgusal Sorgulara Yanıt Olarak Cümleler Üreten Bir Sistem

Sistem bir istemci cihazı, bir arama sistemi, bir dizin kümesi ve bir yanıt motoru içerir.

Bir istemci cihazı, istemci cihazdaki bir web tarayıcısına iki sorgu terimi ("Woody Allen'ın memleketi ve mezun olduğu yer") olan bir sorgu başlatır.

Arama sistemi sorguyu (örneğin, “Woody Allen'ın memleketi ve mezun olduğu okul nerede”) istemci cihazdan alır. Arama sistemi daha sonra, örneğin uygun bir doğal dil ayrıştırma motorunu kullanarak orijinal sorguyu ayrıştırır ve bir <varlık/tür/öznitelik> formatına (örneğin, >woody Allen/kişi/memleket/kolej<) biçimlendirir.

Bu örnekte, biçimlendirilmiş sorgu, varlığın bir tanımlayıcısını (örneğin, Woody Allen), bir varlık türünü (örneğin, kişi) ve iki özniteliği (örneğin, memleket ve kolej) içerir. Arama sistemi daha sonra biçimlendirilmiş sorguyu dizin kümesine gönderir.

Yanıt motoru, biçimlendirilmiş sorguyu ve olgusal bilgileri kullanarak aşağıdaki gibi bir cümle veya cümleler biçiminde bir yanıt üretir. 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 tarla.

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.