Gerando respostas de consulta

Publicados: 2022-05-05

Essa patente recentemente concedida ao Google geralmente se refere à geração de respostas a consultas, e essa patente também introduz o conceito de Restrições para ajudar a responder a consultas.

Usando restrições para respostas de consulta

Esta patente faz perguntas sobre conteúdos relacionados a fatos sobre entidades sobre as quais as perguntas estão sendo adicionadas.

Documentos sobre como usar restrições para responder a consultas são estes:

    GRIP: explicação baseada em restrições de respostas ausentes para consultas de gráfico
    Resposta a perguntas usando satisfação de restrições: controle de qualidade por dossiê-com-restrições

Curiosamente, o primeiro documento refere-se ao Google Knowlege Vault como referência. Provavelmente porque se concentra em obter respostas corretas às perguntas usando restrições.

Uma vez que esta patente se concentra tanto no SEO semântico. Isso me lembrou de outras patentes do Google que tratavam desse tópico, incluindo essas duas, que vale a pena ler com atenção:

  • Reconciliação do Gráfico de conhecimento do Google
  • Extrações de entidade para gráficos de conhecimento no Google

A patente fornece algumas informações sobre como as entidades e os atributos de entidade funcionam, como as tuplas são usadas na pesquisa de gráficos e uma visão do SEO semântico.

Gerando respostas de consulta fornecendo fatos de um banco de dados

Os sistemas de busca podem gerar respostas a consultas factuais fornecendo fatos de um banco de dados.

Esses fatos podem ser armazenados em um gráfico que pode ser atualizado em tempo real.

Essas respostas podem ser formatadas como listas de resultados de pesquisa em vez de frases.

Quando um usuário faz uma pergunta factual, por exemplo, via voz para um sistema de diálogo, pode ser desejável ter uma resposta natural à pergunta.

A resposta mais natural pode ser uma resposta formulada como uma declaração gramatical dos fatos que atendem à pergunta do usuário para fornecer respostas à consulta.

Assim, de acordo com um aspecto geral do assunto descrito nesta patente, em resposta a uma consulta factual, os fatos armazenados em um banco de dados são convertidos em uma frase no idioma do usuário.

Recebendo respostas de consulta Identificando atributos de uma entidade

Um aspecto do assunto descrito nesta especificação pode ser incorporado em métodos que incluem as ações de receber uma consulta identificando atributos de uma entidade. Esses atributos são os fatos sobre a entidade.

As ações incluem o acesso a modelos de candidatos para respostas de consulta com base nos atributos da entidade. Cada modelo de candidato tem campos; em que cada área fica associada a pelo menos uma restrição.

Em seguida, as ações incluem obter um conjunto de informações que fornece respostas de consulta e selecionar um modelo da coleção de modelos candidatos. O modelo escolhido possui o número mais significativo de campos com restrições que atendem ao conjunto de informações.

Triplos Semânticos Relacionados a Entidades

O conjunto de informações pode ser um conjunto de triplos entidade-atributo-valor.

As ações incluem ainda gerar uma frase adicionando o conjunto de informações aos campos do modelo selecionado, de modo que as palavras incluam respostas de consulta.

A frase é uma frase ou uma parte de uma frase. Finalmente, as ações incluem comunicar as palavras a um dispositivo cliente.

A frase pode ser comunicada como um sinal de áudio correspondente às palavras.

As restrições podem incluir:

  • Restrição de tipo
  • Restrição temporal
  • Restrição de gênero
  • Restrição de relacionamento
  • Restrição singular/plural
  • Restrição de unidade de medida
  • Restrição determinante.

Algumas implementações envolvem a obtenção de muitos conjuntos de informações que respondem a um único atributo na consulta.

As ações incluem ainda:

  • Obtenção de um modelo de frase com base em um tipo da entidade, em que o modelo de frase inclui uma pluralidade de campos para frases
  • Adicionando as frases aos campos do modelo de frase para formar a frase
  • Selecionando, para cada conjunto de informações, um modelo do conjunto de modelos candidatos
  • Gerando, para cada modelo selecionado, uma frase adicionando o respectivo conjunto de informações aos campos do respectivo modelo selecionado
  • Comunicar a frase incluindo as frases para um dispositivo cliente

Isso pode envolver respostas de consulta que incluem muitos atributos.

  • Recebendo respostas de consulta identificando muitos atributos de uma entidade
  • Acessar, para cada atributo da entidade, um conjunto de templates candidatos a respostas de consulta com base no respectivo atributo da entidade
  • Obtenção, para cada atributo da entidade, de um conjunto de informações que respondem a uma respectiva parte da consulta
  • Selecionando um modelo do respectivo conjunto de modelos candidatos
  • Gerando, para cada atributo da entidade, uma frase adicionando o respectivo conjunto de informações aos campos do template selecionado
  • Obtenção de um modelo de frase com base em um tipo da entidade, em que o modelo de frase inclui uma pluralidade de campos para frases
  • Adicionando as frases aos campos do modelo de frase para formar uma frase
  • Comunicar uma frase incluindo as frases para um dispositivo cliente

As vantagens deste processo podem incluir:

O sistema é configurável e extensível a afirmações e respostas factuais complexas.
Pode permitir uma separação clara do banco de dados real do mecanismo de geração de sentenças.
Pode permitir a adição de novos modelos através de qualquer método adequado.

Esta patente de geração de respostas a consultas está em

Gerando respostas de consulta
Inventores: Engin Cinar Sahin, Vinicius J. Fortuna e Emma S. Persky
Responsável: Google LLC
Patente dos EUA: 11.321.331
Concedido: 3 de maio de 2022
Arquivado: 23 de julho de 2018

Resumo

Um servidor recebe respostas de consulta identificando os atributos de uma entidade.

O servidor acessa um conjunto de modelos candidatos para responder à consulta com base nos atributos da entidade, cada modelo candidato possui campos, em que cada campo é associado a pelo menos uma restrição.

O servidor obtém um conjunto de informações e respostas de consulta e seleciona um modelo do conjunto de modelos candidatos.

O modelo selecionado possui o maior número de campos com restrições atendidas pelo conjunto de informações.

O servidor gera uma frase adicionando o conjunto de informações aos campos do modelo selecionado, de modo que a frase inclua uma resposta à consulta.

Finalmente, o servidor comunica a frase a um dispositivo cliente.

Convertendo fatos de um banco de dados em sentenças

Quando um usuário faz uma pergunta factual, um mecanismo de pesquisa pode fornecer respostas de consulta acessando um banco de dados.

Alguns sistemas, como sistemas de diálogo baseados em voz, permitem que os usuários planejem consultas como perguntas de linguagem natural (por exemplo, “Quem é o presidente do Japão?”).

Nesses casos, pode ser desejável fornecer uma resposta em linguagem natural na forma de uma frase em vez de uma resposta formatada como resultados de pesquisa referentes a documentos.

Assim, os sistemas descritos nesta especificação podem converter fatos de um banco de dados em sentenças. Isso pode ser vantajoso, por exemplo, para que a resposta possa ser renderizada ao usuário como fala.

Para produzir frases que respondam às perguntas dos usuários, pode ser desejável recuperar fatos aleatórios de um banco de dados. Os fatos não são aleatórios – eles estão usando as informações de restrições para fornecer respostas de consulta. Isso parece significar melhores respostas para perguntas sobre entidades.

Para responder a uma pergunta como com quem alguém se casou, um sistema pode obter dados, incluindo todos os casamentos anteriores, pessoas envolvidas em casamentos anteriores, datas das uniões e tipos de acordos conjugais. Um banco de dados flexível que representa fatos usando uma estrutura gráfica pode fornecer esses fatos.

Acessando modelos de candidatos para gerar respostas de consulta com base no atributo ou atributos

Uma vez que os fatos foram coletados, um mecanismo de resposta pode acessar modelos de candidatos para gerar uma resposta com base no atributo ou atributos fornecidos na consulta. Por exemplo, se a pergunta original for “Com quem Woody Allen se casou”, o ponto pode ser “casamentos”. Se a consulta real for "Quantos anos tem Woody Allen", o atributo pode ser "idade". Conforme descrito abaixo, cada ponto de uma pergunta pode corresponder a vários modelos de candidatos, por exemplo, para dar suporte a respostas mais ou menos detalhadas.

Por exemplo, se o atributo for "idade", o mecanismo de resposta pode obter um modelo que inclui data de nascimento e idade (por exemplo, {<entidade> nasceu em <data> e tem atualmente <valor> anos}), um modelo que inclui apenas a idade (por exemplo, {<entidade> tem atualmente <valor> anos}) e um modelo que inclui data de nascimento e data de falecimento (por exemplo, {<entidade> nasceu em <data> e morreu em < /data>}).

Conforme descrito em mais detalhes abaixo, as partes dos modelos incluídos em “< >” (ou seja, os campos) podem ser associadas a várias restrições nos dados que podem conter.

Uma vez que o mecanismo de resposta obteve os modelos candidatos, ele seleciona o modelo mais relevante com base em várias heurísticas e gera uma frase inserindo os fatos no modelo. O mecanismo de resposta pode fornecer uma resposta em uma correção de volta ao usuário.

Um Sistema de Pesquisa de Gráficos de Dados

O sistema pode se acostumar a implementar um mecanismo de busca para um gráfico de dados usando as técnicas descritas aqui.

Um sistema é descrito como um sistema de mecanismo de pesquisa para um gráfico de dados que processa solicitações de consulta de um cliente. Outras configurações e aplicações da tecnologia relacionada podem ser usadas. Por exemplo, a solicitação de consulta pode ser originada de outro servidor, de um trabalho em lote ou de um terminal de usuário em comunicação com um sistema de pesquisa de gráfico de dados.

O sistema de pesquisa de gráfico de dados pode incluir um sistema de indexação, sistema de pesquisa e cluster de índice. O sistema de indexação, o sistema de pesquisa e o cluster de índice podem ser dispositivos de computação que assumem a forma de vários dispositivos diferentes, por exemplo, um servidor padrão, um grupo desses servidores ou um sistema de servidor em rack.

Além disso, os sistemas de indexação, sistemas de pesquisa e clusters de índice podem ser implementados em um computador pessoal, por exemplo, um laptop.

O sistema de pesquisa de gráfico de dados pode incluir um armazenamento de dados baseado em gráfico. Esse gráfico de dados armazena nós e arestas, a partir dos quais um gráfico pode ser criado.

Os nós podem ser chamados de entidades e as arestas podem ser chamadas de relacionamentos entre duas entidades. Tais relacionamentos podem ser armazenados de várias maneiras.

O armazenamento de dados baseado em gráfico armazena tuplas triplas que representam entidades e relacionamentos em um exemplo.

Tuplas triplas representando entidades e relacionamentos

Um triplo também pode incluir um formato, com a entidade representando a entidade inicial, o ponto representando uma característica de uma entidade relacionada como arestas redefinidas da entidade e o valor representando a entidade relacionada.

Um exemplo de triplo é a entidade Woody Allen como sujeito (ou entidade), o relacionamento atuado como predicado (ou atributo) e a entidade Annie Hall como objeto (ou valor).

É claro que um gráfico de dados com muitas entidades e até mesmo um número limitado de relacionamentos pode ter bilhões de triplos.

Os sistemas de indexação podem incluir processadores configurados para executar instruções executáveis ​​por máquina ou partes de software, firmware ou uma combinação dos mesmos.

Encontrando respostas de consulta

O sistema de pesquisa pode incluir servidores (não mostrados) que recebem consultas de um usuário de um cliente e fornecem essas consultas ao sistema de pesquisa.

O sistema de busca pode ser responsável por buscar o gráfico de dados e, outras fontes de dados, como um corpus de documentos da Internet ou uma Intranet, em resposta a uma consulta.

Por exemplo, o sistema de pesquisa pode receber uma consulta de um cliente, como um cliente, realizar algum processamento de consulta e enviar a consulta para o cluster de índice e para outros clusters de indexação que armazenam índices para pesquisar outras fontes.

O sistema de busca pode ter um módulo que compila os resultados de todas as fontes e fornece os resultados compilados ao cliente.

O sistema de pesquisa só pode enviar consultas para o cluster de índice e pode fornecer resultados de pesquisa do cluster de índice para o cliente.

O sistema de busca pode estar em comunicação com os clientes pela rede.

Um cluster de índice na localização de respostas de consulta

O sistema também pode incluir um cluster de índice. O cluster de índice pode ser um único dispositivo de computação ou um sistema de banco de dados distribuído com dispositivos de computação, cada um com seu próprio processador e memória.

O número de dispositivos de computação que compõem o cluster de índice pode variar e, para fins de brevidade, o cluster de índice é mostrado como uma única entidade.

Cada cluster de índice pode incluir processadores configurados para executar instruções executáveis ​​por máquina ou partes de software, firmware ou uma combinação dos mesmos.

O cluster de computação pode incluir um sistema operacional (não mostrado) e memórias de computador, por exemplo, a memória principal, configurada para armazenar pedaços de dados, seja temporariamente, permanentemente, semi-permanentemente ou uma combinação dos mesmos.

A memória pode incluir qualquer tipo de dispositivo de armazenamento que armazena informações em um formato que pode ser lido e executado por um processador, incluindo memória volátil, memória não volátil ou uma combinação dos mesmos.

Um resolvedor de consultas que acessa o índice para recuperar resultados responsivos à consulta

O cluster de índice também pode incluir módulos, como resolvedor de consulta, que acessam o índice para recuperar resultados responsivos à consulta.

Um resolvedor de consulta também pode fazer parte do sistema de pesquisa ou pode ser distribuído entre o sistema de pesquisa e o cluster de índice.

Consultas e respostas de consulta progressivamente mais complicadas

Uma consulta simples que envolve um atributo (“idade”) e resulta em uma única resposta tripla.

Um exemplo de uma consulta simples que envolve um atributo (“casamentos”), mas resulta em várias respostas triplas.

Um exemplo de uma consulta complicada que envolve dois atributos (“cidade natal e alma mater”) e resulta em múltiplas respostas triplas.

Um sistema de exemplo que gera frases em resposta a consultas factuais.

O sistema inclui um dispositivo cliente, um sistema de pesquisa, um cluster de índice e um mecanismo de resposta.

As entidades podem ser implementadas como parte do sistema.

Um usuário inicia uma consulta com termos de consulta usando um dispositivo cliente.

O usuário pode formatar a consulta original como uma frase.

Interagindo com um sistema de diálogo baseado em voz

O usuário pode interagir com o dispositivo cliente usando um sistema de diálogo baseado em voz.

Por exemplo, o usuário pode proferir a pergunta “Quantos anos tem Woody Allen” em um microfone do dispositivo cliente.

O dispositivo cliente pode então realizar o reconhecimento de fala para converter a expressão em transcrição e então transmitir a transcrição para o mecanismo de busca.

Alternativamente, o dispositivo cliente pode transmitir dados de fala de áudio que codificam o enunciado.

O sistema de busca recebe a consulta (por exemplo, “Quantos anos tem Woody Allen”) do dispositivo cliente.

Se a consulta for codificada como dados de fala de áudio, o sistema de pesquisa pode converter os dados de fala de áudio em uma transcrição.

O sistema de pesquisa então analisa e formata a consulta original em uma <entidade; attribute> formato (como <woody Allen/age<) usando, por exemplo, um mecanismo de análise de linguagem natural adequado.

O sistema de pesquisa então envia a consulta formatada para o cluster de índice.

O cluster de índice acessa o índice para recuperar os resultados que respondem à consulta.

Respostas de perguntas na forma de triplos

Esses resultados podem ser um conjunto de informações factuais na forma de triplos (por exemplo, </woody><woody Allen/born on/Dec. 1,>

O cluster de índice então transmite a consulta formatada (por exemplo, </woody><woody Allen/age> e as informações factuais que respondem à consulta (por exemplo, </woody><woody Allen/born on/Dec. 1, 1935>) para o mecanismo de resposta.

Usando a consulta formatada e as informações factuais, o mecanismo de resposta gera uma resposta na forma de uma frase ou frases.

O mecanismo de resposta gera uma resposta da seguinte maneira. Primeiro, o mecanismo de resposta obtém o atributo ou atributos da consulta formatada.

Em seguida, o mecanismo de resposta usa o atributo ou atributos para acessar os modelos de frases ou frases candidatas do banco de dados de modelos.

Em seguida, o mecanismo de resposta seleciona um dos modelos com base nas informações factuais e em várias restrições associadas aos modelos candidatos.

Por fim, o mecanismo de resposta preenche os campos no modelo selecionado usando as informações factuais.

Um mecanismo de resposta que obtém um atributo ou atributos

Mais detalhadamente, o mecanismo de resposta primeiro obtém o atributo ou atributos da consulta formatada analisando a consulta. Por exemplo, supondo que a consulta tenha sido formatada como um par <entity/attribute>, o mecanismo de resposta extrai a parte do atributo do par.

Em alguns casos, a consulta formatada pode incluir vários atributos. Por exemplo, a consulta formatada pode estar na forma de <entity/attribute/attribute>. Nesses casos, o mecanismo de resposta pode extrair cada atributo da consulta.

Em seguida, o mecanismo de resposta acessa modelos candidatos para cada atributo na consulta do banco de dados de modelos.

Cada modelo pode corresponder a uma frase completa ou a uma parte de uma frase (por exemplo, uma frase).

Cada modelo inclui campos (mostrados como as partes entre colchetes “< >”) que podem ter informações factuais inseridas.

Por exemplo, um modelo pode ser “Em <data>, <entidade> casou-se com <valor>”. Os modelos podem ser gerados manualmente ou algoritmicamente.

Modelos de candidatos no idioma do usuário

O mecanismo de resposta identifica o idioma do usuário e seleciona os modelos candidatos no idioma do usuário.

Por exemplo, o mecanismo de resposta pode receber dados do mecanismo de pesquisa indicando o idioma da consulta original. Vantajosamente, tal configuração pode facilitar a internacionalização da resposta.

Os campos podem ser associados a restrições que regem os dados que cada campo pode conter.

Conforme usado nesta especificação, a notação “<X/Y >” indica um campo com uma restrição “X” e uma restrição “Y”.

As restrições de amostra podem incluir restrições de tipo, restrições temporais, restrições de gênero, restrições de relacionamento, restrições singular/plural, restrições de unidades de medida e restrições determinantes.

Diferentes Constratinis Podem Exigir Diferentes Tipos de Dados

Uma restrição de tipo pode exigir um tipo específico de dados, por exemplo, uma restrição <date> pode exigir uma data, uma restrição <entity> pode exigir um nome de entidade ou outro identificador e um restrição pode exigir um número.

Uma restrição temporal pode exigir, por exemplo, que uma data ou hora esteja no passado ou no futuro, por exemplo, um campo contendo <data/passado> pode exigir que o campo inclua uma data que está no passado. Uma restrição de gênero pode exigir, por exemplo, um gênero masculino ou feminino.

Uma restrição de relacionamento pode exigir, por exemplo, um tipo de relacionamento com outra entidade, por exemplo, um campo contendo <entidade/cônjuge> pode exigir que o campo inclua uma entidade que seja cônjuge de outra entidade. Uma restrição singular/plural pode exigir, por exemplo, que os dados no campo estejam na forma singular ou plural.

Uma restrição de unidade de medida pode, por exemplo, exigir que os dados no campo sejam medidos em uma unidade de medida específica (por exemplo, polegadas, pés, centímetros, metros, etc.). Uma restrição determinante pode exigir, por exemplo, que a palavra “the” preceda o campo.

Cada atributo na consulta pode funcionar como uma chave para acessar um conjunto de modelos candidatos. Por exemplo, o atributo “idade” pode resultar na recuperação dos modelos. Os modelos de amostra incluem um primeiro modelo “ nasceu em <data/passado&glt; e tem atualmente <valor> anos”, o que requer um nome de entidade para a <entidade&lgt; campo, uma data no passado para o campo e um número (por exemplo, uma idade) para o campo <valor<.

O segundo modelo, “<entity> tem atualmente <value< years old”, requer um nome de entidade para o campo <entity> e um número (por exemplo, uma idade) para o campo <value>.

O terceiro modelo, “<entity> nasceu em <date/past> e morreu em <date/past>”, requer um nome de entidade para o campo </entity><entity> e duas datas anteriores para o <date/ passado> campos.

Vários modelos para determinados atributos

Vantajosamente, ter vários modelos para um determinado atributo permite que as implementações suportem fatos parciais. Por exemplo, para modelos de idade, se o ano de nascimento for conhecido, mas a data específica for desconhecida, um modelo apropriado pode ser "</entity><entity> nasceu em <ano/passado>". Fornecer vários modelos para um determinado atributo também permite alterar os tempos verbais para diferentes partes dos fatos (por exemplo, “Woody Allen se casa” e “Woody Allen se casa”).

Depois de obter os modelos candidatos, o mecanismo de resposta seleciona um modelo dos modelos candidatos com base em várias heurísticas. Por exemplo, o mecanismo de resposta pode verificar a concordância de gênero e o tempo verbal correto. Além disso, o mecanismo de resposta pode determinar que o número de respostas à consulta original corresponde ao número de campos do modelo selecionado.

O mecanismo de resposta também pode determinar se as restrições e os campos do modelo selecionado são atendidos. O mecanismo de resposta pode selecionar o modelo com o número máximo de campos com restrições que são satisfeitas pelas informações factuais (por exemplo, o modelo mais rico em dados). A informação factual é “<woody Allen/nascido em/dez. 1, 1935>.”

Neste exemplo, o primeiro modelo de candidato é “<entity> nasceu em <date/past> e está atualmente anos." Este modelo tem um campo, um campo <data/passado> e um campo <valor>. A informação factual fornece uma entidade que satisfaz a restrição de campo <entity> e uma data no passado que satisfaz a restrições de campo.

O mecanismo de resposta pode derivar valores com base em informações factuais. O mecanismo de resposta pode, portanto, calcular um valor de idade para satisfazer a restrição de campo <valor< com base na data de nascimento. Como as informações factuais atendem a todas as restrições dos campos no primeiro modelo, o mecanismo de resposta seleciona o primeiro modelo.

O mecanismo de resposta seleciona o primeiro modelo com campos que podem ser preenchidos pelas informações factuais e não executa nenhum processamento adicional. Alternativamente, o mecanismo de resposta pode processar cada modelo nos modelos candidatos e selecionar o modelo com a maior quantidade de campos que podem ser preenchidos pelas informações factuais.

Depois de selecionar o modelo, o mecanismo de resposta gera uma frase ou frase com base no modelo. Por exemplo, o mecanismo de resposta pode substituir os campos no modelo pelos dados apropriados das informações factuais. O mecanismo de resposta gera a frase “Woody Allen nasceu em 1º de dezembro de 1935 e atualmente tem 77 anos” usando o modelo selecionado.

O mecanismo de resposta então transmite uma resposta para o dispositivo cliente, onde a resposta inclui a frase gerada. A resposta pode ser uma transcrição que o dispositivo cliente converte em fala e processa para o usuário.

Sistema que gera sentenças em resposta a consultas factuais

O sistema inclui um dispositivo cliente, um sistema de pesquisa, um cluster de índice e um mecanismo de resposta. As entidades ilustradas podem, por exemplo, ser implementadas como parte do sistema.

Um dispositivo cliente inicia uma consulta com termos de consulta.

Por exemplo, um usuário pode inserir a consulta “Com quem Woody Allen se casou” em um navegador da Web no dispositivo cliente.

O sistema de busca recebe a consulta (por exemplo, “Com quem Woody Allen se casou”) do dispositivo cliente.

O sistema de busca então analisa e formata a consulta original em um formato (por exemplo, ) usando, por exemplo, um mecanismo de análise de linguagem natural adequado.

Neste exemplo, a consulta formatada inclui um identificador da entidade (por exemplo, Woody Allen), um tipo de entidade (por exemplo, pessoa) e um atributo (por exemplo, casamentos).

As informações de tipo podem ser usadas para gerar um metamodelo conforme descrito abaixo. O sistema de pesquisa então envia a consulta formatada para o cluster de índice.

O cluster de índice acessa o índice para recuperar um conjunto de informações factuais responsivas à consulta

O cluster de índice acessa o índice Para recuperar um conjunto de informações factuais que respondem à consulta. Esses resultados incluem pelo menos dois triplos (por exemplo, , e <louise Lasser/esposa/1966/1970>).

O cluster de índice então transmite a consulta formatada (por exemplo, <woody Allen/idade> e as informações factuais que respondem à consulta (por exemplo, <Soon-Yi Previn/esposa/1997> e <louise Lasser/esposa/1966/1970> ) para o mecanismo de resposta.

Usando a consulta formatada e as informações factuais, o mecanismo de resposta gera uma resposta na forma de uma frase ou frases como segue.

Primeiro, o mecanismo de resposta obtém as informações de tipo da consulta formatada (por exemplo, pessoa).

As informações de tipo identificam o tipo de entidade na qual a consulta se baseia. Usando as informações de tipo, o mecanismo de resposta acessa meta-modelos candidatos que estão associados a um tipo de entidade “pessoa”.

Conforme referido nesta especificação, meta-modelos são modelos que possuem campos configurados para conter outros modelos.

Cada um dos meta-modelos candidatos inclui um campo para um nome ou identificador de uma entidade e pelo menos um campo para adicionar outros modelos.

Esses modelos permitem que o mecanismo de resposta gere frases para incorporar várias frases com informações sobre uma pessoa.

O mecanismo de resposta também obtém o atributo ou atributos da consulta formatada e usa o atributo ou atributos para acessar modelos de frases candidatas do banco de dados de modelos.

Esses modelos de frase são projetados para serem incorporados aos meta-modelos.

Conforme descrito acima, cada atributo na consulta pode funcionar como uma chave para acessar um conjunto de modelos de frases candidatas.

Por exemplo, o atributo “casamentos” pode resultar na recuperação dos modelos de frase.

Os modelos de frase de amostra incluem um primeiro modelo "casou-se com <entity/spouse> desde <date/past>", que exige que uma entidade se case com a entidade na consulta formatada para o campo e uma data no passado para o campo.

O segundo modelo, “se casa com <entity/spouse>”, requer uma entidade que se casa com a entidade na consulta formatada para o campo.

O terceiro modelo, “é casado”, não requer informações adicionais.

O quarto modelo, “foi casado com <entidade/cônjuge > de <data/passado > até <data/passado >”, requer uma entidade que se case com a entidade na consulta formatada para o campo e duas datas no passado para os campos <data/passado>. O quinto modelo, “foi casado com <entity/spouse>”, requer uma entidade que se case com a entidade na consulta formatada para o campo <entity/spouse>. E o sexto modelo, “era casado”, não requer informações adicionais.

Em seguida, o mecanismo de resposta seleciona um dos metamodelos candidatos com base no tipo de informação incluída nas informações factuais. Em particular, o mecanismo de resposta seleciona um metamodelo candidato com base no número de triplos incluídos nas informações factuais. Dois triplos são incluídos nas informações factuais. O mecanismo de resposta, portanto, seleciona o metamodelo “pessoa” com campos para dois modelos, ou seja, “<entity><template> e </template><template>.”

Para cada triplo incluído nas informações factuais, o mecanismo de resposta também seleciona um modelo dos modelos de frases candidatas. O mecanismo de resposta pode selecionar o modelo de frase com o número máximo de campos com restrições que são satisfeitas pelas informações factuais (por exemplo, o modelo mais rico em dados).

O primeiro triplo incluído na informação factual é <Soon-Yi Previn/wife/1997>.” Neste exemplo, o primeiro modelo de frase candidata é “foi casado com Desde a .” Este modelo tem um <ntity/spouse&g; campo e um campo <data/passado>.

O primeiro triplo tem uma entidade com um relacionamento de cônjuge com a entidade na consulta formatada que satisfaça a restrição de campo <entity/spouse> e uma data no passado que satisfaça as restrições de campo <date/past>. Como o primeiro triplo satisfaz todas as restrições para os campos no primeiro modelo, o mecanismo de resposta seleciona o primeiro modelo para o primeiro triplo.

O segundo triplo incluído na informação factual é <louise Lasser/esposa/1966/1970>.” O quarto modelo de frase candidata é “foi casado com <entidade/cônjuge> de <data/passado> a <data/passado>”, que tem um campo <entidade/cônjuge> e dois campos <data/passado>. O segundo triplo nas informações factuais fornece uma entidade com um relacionamento de cônjuge com a entidade na consulta formatada que satisfaça a restrição de campo <entity/spouse> e duas datas no passado que satisfaçam a restrições de campo.

Como o segundo triplo satisfaz todas as restrições para os campos no quarto modelo, o mecanismo de resposta seleciona o quarto modelo para o segundo triplo.

O mecanismo de resposta seleciona o primeiro modelo com campos que podem ser preenchidos pelas informações factuais e não executa nenhum processamento adicional. Alternativamente, o mecanismo de resposta pode processar cada modelo nos modelos candidatos e selecionar o modelo com a maior quantidade de campos que podem ser preenchidos pelas informações factuais.

Depois de selecionar os modelos, o mecanismo de resposta gera uma frase com base nos modelos. Por exemplo, o mecanismo de resposta pode substituir os campos nos modelos selecionados pelos dados apropriados das informações factuais.

O mecanismo de resposta pode substituir os campos no primeiro modelo de frase selecionado (ou seja, "casou-se com <entidade/cônjuge> desde <<data/passado>") pelas informações do primeiro triplo para gerar a frase "casou-se para Soon-Yi Previn desde 1997." Assim, o mecanismo de resposta gera a frase "Woody Allen se casou com Soon-Yi Previn desde 1997 e foi casado anteriormente com Louise Lasser de 1966 a 1970". para o dispositivo cliente que inclui a frase gerada. A resposta pode ser incluída em uma página de resultados de pesquisa que inclui a frase e outros resultados de pesquisa. A página de resultados de pesquisa também inclui uma caixa de pesquisa mostrando a consulta de pesquisa original (por exemplo, "Quem foi Woody Allen casado com"). A página de resultados da pesquisa pode ser renderizada pelo dispositivo cliente. A frase pode, alternativamente, ser transmitida como uma transcrição que permite que o dispositivo cliente gere fala ou como um sinal de áudio que codifica a frase para renderização no dispositivo cliente.

Um sistema que gera sentenças em resposta a consultas factuais

O sistema inclui um dispositivo cliente, um sistema de pesquisa, um cluster de índice e um mecanismo de resposta.

Um dispositivo cliente inicia uma consulta com dois termos de consulta (“Onde fica a cidade natal e alma mater de Woody Allen”) em um navegador da Web no dispositivo cliente.

O sistema de busca recebe a consulta (por exemplo, “Onde fica a cidade natal e a alma mater de Woody Allen”) do dispositivo cliente. O sistema de pesquisa então analisa e formata a consulta original em um formato <entidade/tipo/atributo> (por exemplo, >woody Allen/pessoa/cidade natal/faculdade<) usando, por exemplo, um mecanismo de análise de linguagem natural adequado.

Neste exemplo, a consulta formatada inclui um identificador da entidade (por exemplo, Woody Allen), um tipo de entidade (por exemplo, pessoa) e dois atributos (por exemplo, cidade natal e faculdade). O sistema de pesquisa então envia a consulta formatada para o cluster de índice.

Usando a consulta formatada e as informações factuais, o mecanismo de resposta gera uma resposta na forma de uma frase ou frases como segue. 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 campo.

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.