BR112019012110A2 - sistemas e métodos de aplicação de princípios de pragmática para interação com analíticas visuais - Google Patents

sistemas e métodos de aplicação de princípios de pragmática para interação com analíticas visuais Download PDF

Info

Publication number
BR112019012110A2
BR112019012110A2 BR112019012110-2A BR112019012110A BR112019012110A2 BR 112019012110 A2 BR112019012110 A2 BR 112019012110A2 BR 112019012110 A BR112019012110 A BR 112019012110A BR 112019012110 A2 BR112019012110 A2 BR 112019012110A2
Authority
BR
Brazil
Prior art keywords
data
analytical
centers
natural language
phrases
Prior art date
Application number
BR112019012110-2A
Other languages
English (en)
Inventor
Xuan Chang Angel
Hoque Prince Enamul
J Dykeman Isaac
K Tory Melanie
C Gossweiler Richard Iii
E Battersby Sarah
R Setlur Vidya
Original Assignee
Tableau Software Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tableau Software Inc filed Critical Tableau Software Inc
Publication of BR112019012110A2 publication Critical patent/BR112019012110A2/pt

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9032Query formulation
    • G06F16/90332Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/243Natural language query formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2452Query translation
    • G06F16/24522Translation of natural language queries to structured queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/248Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3344Query execution using natural language analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9038Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • G06F18/232Non-hierarchical techniques
    • G06F18/2321Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
    • G06F18/23213Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04847Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Probability & Statistics with Applications (AREA)
  • Evolutionary Computation (AREA)
  • Machine Translation (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

trata-se de um método que utiliza processamento de linguagem natural para análise visual de um conjunto de dados por um computador. o computador exibe uma visualização de dados com base em um conjunto de dados recuperado a partir de uma base de dados usando um primeiro conjunto de uma ou mais consultas de base de dados. o computador recebe entrada do usuário (por exemplo, teclado ou voz) para especificar um comando de linguagem natural relacionado à visualização de dados exibida. com base na visualização de dados exibida, o computador extrai uma ou mais frases analíticas independentes a partir do primeiro comando de linguagem natural. o computador adicionalmente calcula um conjunto de um ou mais centros de conversação associados ao comando de linguagem natural baseado no conjunto de uma ou mais frases analíticas. o computador então calcula um conjunto de funções analíticas associadas ao conjunto de um ou mais centros de conversação, desse modo criando um conjunto de uma ou mais frases funcionais. o dispositivo então atualiza a visualização de dados com base no conjunto de uma ou mais frases funcionais.

Description

“SISTEMAS E MÉTODOS DE APLICAÇÃO DE PRINCÍPIOS DE PRAGMÁTICA PARA INTERAÇÃO COM ANALÍTICAS VISUAIS”
CAMPO TÉCNICO [001] As implementações reveladas relacionam-se, de modo geral, à visualização de dados, em mais especificamente, a sistemas, métodos e interfaces que permitem que os usuários interajam com e explorem conjuntos de dados usando uma interface de linguagem natural.
ANTECEDENTES DA INVENÇÃO [002] Os aplicativos de visualização de dados permitem que um usuário entenda um conjunto de dados visualmente, incluindo distribuição, tendências, discrepâncias e outros fatores que são importantes na tomada de decisões comerciais. Alguns conjuntos de dados são muito grandes ou complexos, e incluem muitos campos de dados. É possível utilizar diversas ferramentas para ajudar a entender e analisar os dados, inclusive painéis que podem ter múltiplas visualizações de dados. Entretanto, pode ser difícil utilizar ou encontrar determinadas funcionalidades dentro de uma interface do usuário complexa. A maioria dos sistemas somente retorna visualizações interativas bastante básicas em resposta a consultas, e outros necessitam de modelagem avançada para criar consultas eficazes. Outros sistemas necessitam de perguntas fechadas simples, e só então são capazes de retornar uma resposta de texto única ou uma visualização estática.
SUMÁRIO [003] Consequentemente, existe a necessidade de ferramentas que permitam aos usuários utilizar, de maneira eficaz, a funcionalidade oferecida por aplicativos de visualização de dados. Uma solução para o problema consiste em oferecer uma interface de linguagem natural como parte de um aplicativo de visualização de dados (por exemplo, dentro da interface de usuário para o aplicativo
Petição 870190054547, de 13/06/2019, pág. 14/227
2/108 de visualização de dados) para um diálogo de consulta interativo que fornece respostas gráficas a consultas em linguagem natural. A interface em linguagem natural permite que os usuários acessem funcionalidade complexa usando perguntas ou comandos comuns. As perguntas e insights geralmente surgem de perguntas anteriores e padrões de dados que uma pessoa vê. Ao modelar o comportamento de interação como uma conversação, a interface de linguagem natural pode aplicar princípios da pragmática para melhorar a interação com analíticas visuais. Através de diversas técnicas para deduzir a estrutura gramatical e lexical de enunciações e seu contexto, a interface de linguagem natural suporta diversas formas pragmáticas de interação em linguagem natural com analíticas visuais. Essas formas pragmáticas incluem o entendimento de enunciações incompletas, alusão a entidades dentro de enunciações e propriedades de visualização, suporte a enunciações longas e compostas, identificação de sinônimos e conceitos relacionados, e “reparo” de respostas às enunciações anteriores. Adicionalmente, interface de linguagem natural fornece respostas de visualização apropriadas tanto dentro de uma visualização existente quanto pela criação de novas visualizações quando necessário, e resolve a ambiguidade através de realimentação textual direcionada e widgets (ferramentas) de ambiguidade. Desta maneia, a interface de linguagem natural permite que os usuários explorem de maneira eficiente os dados exibidos (por exemplo, em uma visualização de dados) dentro do aplicativo de visualização de dados.
[004] De acordo com algumas implementações, um método é executado em um dispositivo eletrônico com um meio de exibição. Por exemplo, o dispositivo eletrônico pode ser um smart phone, um tablet, um notebook, computador ou um computador de mesa (desktop). O dispositivo exibe uma visualização de dados com base em um conjunto de dados recuperado a partir de uma base de dados usando um primeiro conjunto de uma ou mais consultas de base de dados. Um usuário
Petição 870190054547, de 13/06/2019, pág. 15/227
3/108 especifica um primeiro comando de linguagem natural relacionado à visualização de dados exibida. Com base na visualização de dados exibida, o dispositivo extrai um primeiro conjunto de uma ou mais frases analíticas independentes a partir do primeiro comando de linguagem natural. Em seguida, o dispositivo calcula um primeiro conjunto de um ou mais centros de conversação associados ao primeiro comando de linguagem natural baseado no primeiro conjunto de uma ou mais frases analíticas. O dispositivo então calcula um primeiro conjunto de funções analíticas associadas ao primeiro conjunto de um ou mais centros de conversação, desse modo criando um primeiro conjunto de uma ou mais frases funcionais. O dispositivo então atualiza a visualização de dados com base no primeiro conjunto de uma ou mais frases funcionais.
[005] Em algumas implementações, o dispositivo recebe um segundo comando de linguagem natural relacionado à visualização de dados atualizada. Após receber o segundo comando de linguagem natural, o dispositivo extrai uma segunda de uma ou mais frases analíticas independentes a partir do segundo comando de linguagem natural, e calcula um conjunto temporário de um ou mais centros de conversação associados ao segundo comando de linguagem natural com base no segundo conjunto de uma ou mais frases analíticas, de acordo com algumas implementações. O dispositivo então deriva um segundo conjunto de um ou mais centros de conversação a partir do primeiro conjunto de um ou mais centros de conversação e do conjunto temporário de um ou mais centros de conversação usando uma ou mais regras de transição. O dispositivo calcula um segundo conjunto de uma ou mais funções analíticas associadas ao segundo conjunto de um ou mais centros de conversação, dessa forma criando um segundo conjunto de uma ou mais frases funcionais. O dispositivo então atualiza a visualização de dados com base no segundo conjunto de uma ou mais frases funcionais.
[006] Em algumas implementações, cada um dos centros de conversação do
Petição 870190054547, de 13/06/2019, pág. 16/227
4/108 primeiro conjunto de um ou mais centros de conversação, do conjunto temporário de um ou mais centros de conversação, e do segundo conjunto de um ou mais centros de conversação compreende um valor para uma variável (por exemplo, um atributo de dados ou uma propriedade de visualização). Em tais implementações, o dispositivo usa as regras de transição realizando uma sequência de operações que compreende: determinar se uma primeira variável está incluída no primeiro conjunto de um ou mais centros de conversação; determinar se a primeira variável está incluída no conjunto temporário de um ou mais centros de conversação; determinar uma respectiva regra de transição da uma ou mais regras de transição a ser aplicada com base em se a primeira variável está incluída no primeiro conjunto de um ou mais centros de conversação e/ou no conjunto temporário de um ou mais centros de conversação; e aplicar a respectiva regra de transição.
[007] Em algumas implementações, a uma ou mais regras de transição usadas pelo dispositivo compreendem uma regra CONTINUAR para incluir cada centro de conversação no primeiro conjunto de um ou mais centros de conversação no segundo conjunto de um ou mais centros de conversação, e adicionar um ou mais centros de conversação do conjunto temporário de um ou mais centros de conversação ao segundo conjunto de um ou mais centros de conversação.
[008] Em algumas destas implementações, o dispositivo aplica a respectiva regra de transição realizando uma sequência de operações que compreende: de acordo com uma determinação de que (i) a primeira variável está incluída no conjunto temporário de um ou mais centros de conversação, e (ii) de que a primeira variável não está incluída no primeiro conjunto de um ou mais centros de conversação, o dispositivo aplica a regra CONTINUAR para incluir a primeira variável no segundo conjunto de um ou mais centros de conversação.
[009] Em algumas implementações, a uma ou mais regras de transição usadas pelo dispositivo compreendem uma regra RETER para reter cada centro de
Petição 870190054547, de 13/06/2019, pág. 17/227
5/108 conversação no primeiro conjunto de um ou mais centros de conversação no segundo conjunto de um ou mais centros de conversação sem adicionar nenhum centro de conversação do conjunto temporário de um ou mais centros de conversação ao segundo conjunto de um ou mais centros de conversação.
[010] Em algumas destas implementações, o dispositivo aplica a respectiva regra de transição realizando uma sequência de operações que compreende: de acordo com uma determinação de que (i) a primeira variável está incluída no primeiro conjunto de um ou mais centros de conversação, e (ii) de que a primeira variável não está incluída no conjunto temporário de um ou mais centros de conversação, aplicar a regra RETER para incluir cada centro de conversação no primeiro conjunto de um ou mais centros de conversação no segundo conjunto de um ou mais centros de conversação.
[011] Em algumas implementações, a uma ou mais regras de transição usadas pelo dispositivo compreendem uma regra DESLOCAR para incluir cada centro de conversação no primeiro conjunto de um ou mais centros de conversação no segundo conjunto de um ou mais centros de conversação, e substituir um ou mais centros de conversação no segundo conjunto de um ou mais centros de conversação por centros de conversação no conjunto temporário de um ou mais centros de conversação.
[012] Em algumas destas implementações, o dispositivo aplica a respectiva regra de transição realizando uma sequência de operações que compreende: de acordo com uma determinação de que (i) a primeira variável está incluída no primeiro conjunto de um ou mais centros de conversação, e (ii) de que a primeira variável está incluída no conjunto temporário de um ou mais centros de conversação: determinar se um primeiro valor da primeira variável no primeiro conjunto de um ou mais centros de conversação é diferente de um segundo valor da primeira variável no conjunto temporário de um ou mais centros de conversação; de
Petição 870190054547, de 13/06/2019, pág. 18/227
6/108 acordo com uma determinação de que o primeiro valor é diferente do segundo valor, aplicar a regra DESLOCAR para incluir cada centro de conversação no primeiro conjunto de um ou mais centros de conversação no segundo conjunto de um ou mais centros de conversação, e substituir o valor para a primeira variável no segundo conjunto de um ou mais centros de conversação pelo segundo valor.
[013] Em algumas destas implementações, o dispositivo adicionalmente determina se um widget correspondendo à primeira variável foi removido pelo usuário; e, de acordo com uma determinação de que o widget foi removido, aplica a regra DESLOCAR para incluir cada centro de conversação no primeiro conjunto de um ou mais centros de conversação no segundo conjunto de um ou mais centros de conversação, e substitui o valor para a primeira variável no segundo conjunto de um ou mais centros de conversação por um novo valor (por exemplo, um valor máximo, ou um valor de superconjunto) que inclui o primeiro valor.
[014] Em algumas implementações, o dispositivo cria um primeiro conjunto de uma ou mais consultas com base no primeiro conjunto de uma ou mais frases funcionais, e repete a consulta à base de dados usando o primeiro conjunto de uma ou mais consultas, dessa forma recuperando um segundo conjunto de dados, e então exibe uma visualização de dados atualizada usando o segundo conjunto de dados. Em algumas implementações, o dispositivo cria um segundo conjunto de uma ou mais consultas com base no segundo conjunto de uma ou mais frases funcionais, e repete a consulta à base de dados usando o segundo conjunto de uma ou mais consultas, dessa forma recuperando um terceiro conjunto de dados, e então exibe uma visualização de dados atualizada usando o terceiro conjunto de dados. Em alguns casos, a repetição da consulta à base de dados é realizada localmente no dispositivo de computação usando dados armazenados ou em cache no dispositivo de computação. Por exemplo, a repetição da consulta é normalmente realizada localmente quando o comando de linguagem natural especifica um ou
Petição 870190054547, de 13/06/2019, pág. 19/227
7/108 mais filtros. Em algumas implementações, o dispositivo adicionalmente cria e exibe uma nova visualização de dados usando o segundo conjunto de dados ou o terceiro conjunto de dados.
[015] Em algumas implementações, o dispositivo adicionalmente determina se o usuário selecionou um conjunto de dados diferente do primeiro conjunto de dados, ou se o usuário reiniciou a visualização de dados, e, neste caso, reinicia cada um dentre o primeiro conjunto de um ou mais centros de conversação, o conjunto temporário de um ou mais centros de conversação, e o segundo conjunto de um ou mais centros de conversação para um conjunto vazio que não inclui nenhum centro de conversação.
[016] Tipicamente, um dispositivo eletrônico inclui um ou mais processadores, memória, um meio de exibição e um ou mais programas armazenados na memória. Os programas são configurados para execução pelo um ou mais processadores e são configurados para realizar qualquer um dos métodos aqui descritos. O um ou mais programas incluem instruções para exibir uma visualização de dados com base em um primeiro conjunto de dados recuperado de uma base de dados usando um primeiro conjunto de uma ou mais consultas. O um ou mais programas também incluem instruções para receber uma primeira entrada do usuário para especificar um primeiro comando de linguagem natural relacionado à visualização de dados. O um ou mais programas também incluem instruções para extrair um primeiro conjunto de uma ou mais frases analíticas a partir do primeiro comando de linguagem natural. O um ou mais programas também incluem instruções para calcular um primeiro conjunto de um ou mais centros de conversação associados ao primeiro comando de linguagem natural baseado no primeiro conjunto de uma ou mais frases analíticas. O um ou mais programas também incluem instruções para calcular um primeiro conjunto de funções analíticas associadas ao primeiro conjunto de um ou mais centros de conversação, criando
Petição 870190054547, de 13/06/2019, pág. 20/227
8/108 assim um primeiro conjunto de uma ou mais frases funcionais, e atualizando a visualização de dados com base no primeiro conjunto de dados de uma ou mais frases funcionais.
[017] Em algumas implementações, o um ou mais programas incluem instruções para receber uma segunda entrada do usuário para especificar um segundo comando de linguagem natural relacionado à visualização de dados atualizada. O um ou mais programas também incluem instruções para extrair um segundo conjunto de uma ou mais frases analíticas a partir do segundo comando de linguagem natural. O um ou mais programas também incluem instruções para calcular um conjunto temporário de um ou mais centros de conversação associados ao segundo comando de linguagem natural baseado no segundo conjunto de uma ou mais frases analíticas. O um ou mais programas também incluem instruções para derivar um segundo conjunto de um ou mais centros de conversação a partir do primeiro conjunto de um ou mais centros de conversação e do conjunto temporário de um ou mais centros de conversação usando uma ou mais regras de transição. O um ou mais programas também incluem instruções para calcular um segundo conjunto de uma ou mais funções analíticas associadas ao segundo conjunto de um ou mais centros de conversação, dessa forma criando um segundo conjunto de uma ou mais frases funcionais, e atualizando a visualização de dados com base no segundo conjunto de uma ou mais frases funcionais.
[018] Em algumas implementações, um meio de armazenamento nãotemporário legível por computador armazena um ou mais programas configurados para execução por um dispositivo de computação contendo um ou mais processadores, memória e um meio de exibição. O um ou mais programas são configurado para realizar qualquer um dos métodos aqui descritos. O um ou mais programas incluem instruções para exibir uma visualização de dados com base em um primeiro conjunto de dados recuperado de uma base de dados usando um
Petição 870190054547, de 13/06/2019, pág. 21/227
9/108 primeiro conjunto de uma ou mais consultas. O um ou mais programas também incluem instruções para receber uma primeira entrada do usuário para especificar um primeiro comando de linguagem natural relacionado à visualização de dados. O um ou mais programas também incluem instruções para extrair um primeiro conjunto de uma ou mais frases analíticas a partir do primeiro comando de linguagem natural. O um ou mais programas também incluem instruções para calcular um primeiro conjunto de um ou mais centros de conversação associados ao primeiro comando de linguagem natural baseado no primeiro conjunto de uma ou mais frases analíticas. O um ou mais programas também incluem instruções para calcular um primeiro conjunto de funções analíticas associadas ao primeiro conjunto de um ou mais centros de conversação, criando assim um primeiro conjunto de uma ou mais frases funcionais, e atualizando a visualização de dados com base no primeiro conjunto de dados de uma ou mais frases funcionais.
[019] Em algumas implementações, o um ou mais programas incluem instruções para receber uma segunda entrada do usuário para especificar um segundo comando de linguagem natural relacionado à visualização de dados atualizada. O um ou mais programas também incluem instruções para extrair um segundo conjunto de uma ou mais frases analíticas a partir do segundo comando de linguagem natural. O um ou mais programas também incluem instruções para calcular um conjunto temporário de um ou mais centros de conversação associados ao segundo comando de linguagem natural baseado no segundo conjunto de uma ou mais frases analíticas. O um ou mais programas também incluem instruções para derivar um segundo conjunto de um ou mais centros de conversação a partir do primeiro conjunto de um ou mais centros de conversação e do conjunto temporário de um ou mais centros de conversação usando uma ou mais regras de transição. O um ou mais programas também incluem instruções para calcular um segundo conjunto de uma ou mais funções analíticas associadas ao segundo conjunto de um
Petição 870190054547, de 13/06/2019, pág. 22/227
10/108 ou mais centros de conversação, dessa forma criando um segundo conjunto de uma ou mais frases funcionais, e atualizando a visualização de dados com base no segundo conjunto de uma ou mais frases funcionais.
[020] Em outro aspecto, de acordo com algumas implementações, o dispositivo exibe uma visualização de dados com base em um conjunto de dados recuperado a partir de uma base de dados usando um primeiro conjunto de uma ou mais consultas de base de dados. Um usuário especifica um primeiro comando de linguagem natural relacionado à visualização de dados exibida. Com base na visualização de dados exibida, o dispositivo extrai um primeiro conjunto de uma ou mais frases analíticas independentes a partir do primeiro comando de linguagem natural. Em seguida, o dispositivo calcula um primeiro conjunto de um ou mais centros de conversação associados ao primeiro comando de linguagem natural baseado no primeiro conjunto de uma ou mais frases analíticas. O dispositivo então calcula um primeiro conjunto de funções analíticas associadas ao primeiro conjunto de um ou mais centros de conversação, desse modo criando um primeiro conjunto de uma ou mais frases funcionais. O dispositivo então atualiza a visualização de dados com base no primeiro conjunto de uma ou mais frases funcionais. O usuário especifica um segundo comando de linguagem natural relacionado à visualização de dados atualizada. Após receber o segundo comando de linguagem natural, o dispositivo extrai uma segunda de uma ou mais frases analíticas independentes a partir do segundo comando de linguagem natural, e calcula um conjunto temporário de um ou mais centros de conversação associados ao segundo comando de linguagem natural com base no segundo conjunto de uma ou mais frases analíticas. O dispositivo então calcula a coesão entre o primeiro conjunto de uma ou mais frases analíticas e o segundo conjunto de uma ou mais frases analíticas. O dispositivo então deriva um segundo conjunto de um ou mais centros de conversação a partir do primeiro conjunto de um ou mais centros de conversação e
Petição 870190054547, de 13/06/2019, pág. 23/227
11/108 do conjunto temporário de um ou mais centros de conversação com base na coesão. O dispositivo calcula um segundo conjunto de uma ou mais funções analíticas associadas ao segundo conjunto de um ou mais centros de conversação, dessa forma criando um segundo conjunto de uma ou mais frases funcionais. O dispositivo então atualiza a visualização de dados com base no segundo conjunto de uma ou mais frases funcionais.
[021] Em algumas implementações, o dispositivo calcula a coesão e deriva o segundo conjunto de um ou mais centros de conversação realizando uma sequência de operações que compreende: identificar uma estrutura de frase do segundo conjunto de uma ou mais frases analíticas; identificar uma ou mais formas de pragmática com base na estrutura da frase; e derivar um segundo conjunto de um ou mais centros de conversação a partir do primeiro conjunto de um ou mais centros de conversação e do conjunto temporário de um ou mais centros de conversação com base na uma ou mais formas de pragmática.
[022] Em algumas destas implementações, o dispositivo identifica a estrutura da frase realizando uma sequência de operações que compreende: analisar o segundo comando de linguagem natural aplicando uma gramática probabilística, dessa forma obtendo uma saída analisada; e resolver a saída analisada em atributos de dados e categóricos correspondentes. Em algumas de tais implementações, analisar o segundo comando de linguagem natural adicionalmente compreende deduzir a estrutura sintática empregando uma API de análise morfossintática (“partof-speechj (por exemplo, um etiquetador morfossintático (“POS tagger”)) fornecida por uma biblioteca de ferramentas (toolkit) para processamento de linguagem natural.
[023] Em algumas implementações, o dispositivo identifica a uma ou mais formas de pragmática realizando uma sequência de operações que compreende determinar se o segundo comando de linguagem natural é uma enunciação
Petição 870190054547, de 13/06/2019, pág. 24/227
12/108 incompleta (algumas vezes chamada de Elipse) mediante determinação de se um ou mais elementos linguísticos estão ausentes na estrutura da frase. Em algumas destas implementações, o dispositivo deriva o segundo conjunto de um ou mais centros de conversação realizando uma sequência de operações que compreende: de acordo com a determinação de que o segundo comando de linguagem natural é uma enunciação incompleta: determinar um primeiro subconjunto de centros de conversação no primeiro conjunto de um ou mais centros de conversação, o primeiro subconjunto de centros de conversação correspondendo ao um ou mais elementos linguísticos ausentes na estrutura da frase; e calcular o segundo conjunto de um ou mais centros de conversação combinando o conjunto temporário de um ou mais centros de conversação com o primeiro subconjunto de centros de conversação.
[024] Em algumas implementações, o dispositivo identifica a uma ou mais formas de pragmática realizando uma sequência de operações que compreende determinar se o segundo comando de linguagem natural é uma expressão de referência mediante determinação de se uma ou mais referências anafóricas estão presentes na estrutura da frase; e o dispositivo deriva o segundo conjunto de um ou mais centros de conversação realizando outra sequência de operações que compreende: de acordo com a determinação de que o segundo comando natural é uma expressão de referência: pesquisar o primeiro conjunto de um ou mais centros de conversação para encontrar um primeiro subconjunto de centros de conversação que corresponda a um bloco frasal no segundo comando de linguagem natural que contém uma primeira referência anafórica da uma ou mais referências anafóricas; e calcular o segundo conjunto de um ou mais centros de conversação com base no conjunto temporário de um ou mais centros de conversação e no primeiro subconjunto de centros de conversação.
[025] Em algumas de tais implementações, o dispositivo adicionalmente determina se a primeira referência anafórica é acompanhada por um verbo no
Petição 870190054547, de 13/06/2019, pág. 25/227
13/108 segundo comando de linguagem natural, e, neste caso, pesquisa o primeiro conjunto de um ou mais centros de conversação para encontrar um primeiro centro de conversação de ação que se refira a um verbo de ação (por exemplo, “filtrar”); e calcula o segundo conjunto de um ou mais centros de conversação com base no conjunto temporário de um ou mais centros de conversação, no primeiro subconjunto de centros de conversação, e no primeiro centro de conversação de ação.
[026] Em algumas destas implementações, o dispositivo determina se a primeira referência anafórica é uma referência dêitica que se refere a algum objeto no ambiente, tipicamente por indicação, e neste caso, calcula o segundo conjunto de um ou mais centros de conversação com base no conjunto temporário de um ou mais centros de conversação, e uma característica do objeto. As referências dêiticas são tipicamente habilitadas através de interação multimodal (por exemplo, através do uso de um mouse além de fala ou texto).
[027] Em algumas destas implementações, o dispositivo adicionalmente determina se a primeira referência anafórica é uma referência a uma propriedade de visualização na visualização de dados atualizada, e neste caso, calcula o segundo conjunto de um ou mais centros de conversação com base no conjunto temporário de um ou mais centros de conversação, e dados relacionados à propriedade de visualização.
[028] Em algumas implementações, o dispositivo identifica a uma ou mais formas de pragmática realizando uma sequência de operações que compreende determinar se o segundo comando de linguagem natural é uma enunciação de reparo determinando se a estrutura da frase corresponde a uma ou mais enunciações de reparo predefinidas (digamos, para reparar uma possível ambiguidade no primeiro comando de linguagem natural ou a forma que os resultados são apresentados ao usuário). Por exemplo, o usuário diz “livrar-se do
Petição 870190054547, de 13/06/2019, pág. 26/227
14/108 condomínio” ou “mudar de condomínio para casa”. Em tais implementações, se o dispositivo determinar que o segundo comando de linguagem natural é uma enunciação de reparo, o dispositivo calcula o segundo conjunto de um ou mais centros de conversação com base no conjunto temporário de um ou mais centros de conversação; e atualiza um ou mais atributos de dados no segundo conjunto de um ou mais centros de conversação com base na uma ou mais enunciações de reparo predefinidas e na estrutura de frase.
[029] Em algumas de tais implementações, o dispositivo determina se a estrutura de frase corresponde a uma enunciação de reparo para alterar um comportamento padrão relacionado à exibição de uma visualização de dados (por exemplo, realçar para seleção, tal como em resposta a “nenhum filtro, em vez disso”), e, neste caso, o dispositivo muda o comportamento padrão relacionado à exibição.
[030] Em algumas implementações, o dispositivo identifica a uma ou mais formas de pragmática realizando uma sequência de operações que compreende determinar se o segundo comando de linguagem natural é uma expressão conjuntiva (i) determinando a presença implícita ou explícita de conjunções na estrutura de frase, e (ii) determinando se o conjunto temporário de um ou mais centros de conversação inclui cada centro de conversação no primeiro conjunto de um ou mais centros de conversação. Em tais implementações, o dispositivo deriva o segundo conjunto de um ou mais centros de conversação realizando outro conjunto de operações que compreende: de acordo com a determinação de que o segundo comando de linguagem natural é uma expressão conjuntiva, calcular o segundo conjunto de um ou mais centros de conversação com base no conjunto temporário de um ou mais centros de conversação.
[031] Em algumas de tais implementações, o dispositivo determina se o segundo comando de linguagem natural possui mais de um conjunto; e, de acordo
Petição 870190054547, de 13/06/2019, pág. 27/227
15/108 com a determinação de que o segundo comando de linguagem natural possui mais de um conjunto, o dispositivo calcula o segundo conjunto de uma ou mais funções analíticas por meio da linearização do segundo comando de linguagem natural. Em algumas destas implementações, o dispositivo lineariza o segundo comando de linguagem natural realizando uma sequência de operações que compreende: gerar uma árvore de análise para o segundo comando de linguagem natural; atravessar a árvore de análise em pós-ordem para extrair uma primeira frase analítica e uma segunda frase analítica, em que a primeira frase analítica e a segunda frase analítica são nós adjacentes na árvore de análise; calcular uma primeira função analítica e uma segunda função analítica correspondendo à primeira frase analítica e à segunda frase analítica, respectivamente; e combinar a primeira função analítica com a segunda função analítica mediante aplicação de um ou mais operadores lógicos com base em uma ou mais características da primeira função analítica e da segunda função analítica, em que a uma ou mais características incluem tipo de atributo, tipo de operador e um valor.
[032] Em algumas de tais implementações, a primeira função analítica compreende um primeiro atributo (às vezes chamado aqui de variável, e inclui uma propriedade de visualização), um primeiro operador, e um primeiro valor; a segunda função analítica compreende um segundo atributo (algumas vezes chamado aqui de variável, e inclui uma propriedade de visualização), um segundo operador, e um segundo valor.
[033] Em algumas de tais implementações, combinar a primeira função analítica com a segunda função analítica compreende: determinar se o primeiro atributo é um atributo do tipo categórico ou um atributo do tipo ordenado, e determinar se o segundo atributo é um atributo do tipo categórico ou um atributo do tipo ordenado; determinar se o primeiro atributo e o segundo atributo são idênticos; e, de acordo com uma determinação de que o primeiro atributo e o segundo atributo
Petição 870190054547, de 13/06/2019, pág. 28/227
16/108 são idênticos e ambos são atributos de tipo categórico, aplicar um operador de união para combinar a primeira função analítica e a segunda função analítica.
[034] Em algumas de tais implementações, combinar a primeira função analítica com a segunda função analítica compreende: determinar se o primeiro atributo é um atributo do tipo categórico ou um atributo do tipo ordenado, e determinar se o segundo atributo é um atributo do tipo categórico ou um atributo do tipo ordenado; determinar se o primeiro atributo e o segundo atributo são idênticos; e, de acordo com uma determinação de que o primeiro atributo e o segundo atributo são não-idênticos, aplicar o operador de interseção para combinar a primeira função analítica e a segunda função analítica.
[035] Em algumas de tais implementações, combinar a primeira função analítica com a segunda função analítica compreende: determinar se o primeiro atributo é um atributo do tipo categórico ou um atributo do tipo ordenado, e determinar se o segundo atributo é um atributo do tipo categórico ou um atributo do tipo ordenado; determinar se o primeiro atributo e o segundo atributo são idênticos; e, de acordo com uma determinação de que o primeiro atributo e o segundo atributo são idênticos, e ambos são atributos do tipo ordenado: determinar os tipos de operadores do primeiro operador e do segundo operador; e, de acordo com uma determinação de que tanto o primeiro atributo quanto o segundo atributo são operadores de igualdade, aplicar o operador de união para combinar a primeira função analítica e a segunda função analítica.
[036] Em algumas de tais implementações, combinar a primeira função analítica com a segunda função analítica compreende: determinar se o primeiro atributo é um atributo do tipo categórico ou um atributo do tipo ordenado, e determinar se o segundo atributo é um atributo do tipo categórico ou um atributo do tipo ordenado; determinar se o primeiro atributo e o segundo atributo são idênticos; e, de acordo com uma determinação de que o primeiro atributo e o segundo atributo
Petição 870190054547, de 13/06/2019, pág. 29/227
17/108 são idênticos, e ambos são atributos do tipo ordenado: determinar os tipos de operadores do primeiro operador e do segundo operador; e, de acordo com uma determinação de que o primeiro operador é um operador “menor do que” e o segundo operador é um operador “maior do que”: determinar se o primeiro valor é menor do que o segundo valor; e, de acordo com uma determinação de que o primeiro valor é menor do que o segundo valor, aplicar o operador de união para combinar a primeira função analítica e a segunda função analítica.
[037] Em algumas de tais implementações, combinar a primeira função analítica com a segunda função analítica compreende: determinar se o primeiro atributo é um atributo do tipo categórico ou um atributo do tipo ordenado, e determinar se o segundo atributo é um atributo do tipo categórico ou um atributo do tipo ordenado; determinar se o primeiro atributo e o segundo atributo são idênticos; e, de acordo com uma determinação de que o primeiro atributo e o segundo atributo são idênticos, e ambos são atributos do tipo ordenado: determinar os tipos de operadores do primeiro operador e do segundo operador; e, de acordo com uma determinação de que o primeiro operador é um operador “maior do que” e o segundo operador é um operador “menor do que”: determinar se o primeiro valor é menor do que o segundo valor; e, de acordo com uma determinação de que o primeiro valor é menor do que o segundo valor, aplicar o operador de interseção para combinar a primeira função analítica e a segunda função analítica.
[038] Em algumas implementações, o dispositivo adicionalmente calcula o parentesco semântico entre o segundo conjunto de uma ou mais frases analíticas extraídas e um ou mais atributos de dados incluídos na visualização de dados atualizada, e calcula funções analíticas associadas ao segundo conjunto de uma ou mais frases analíticas, dessa forma criando o segundo conjunto de uma ou mais frases funcionais, com base no parentesco semântico de um ou mais atributos de dados. Ao contrário da coesão gramatical ou da coesão entre contextos, a coesão
Petição 870190054547, de 13/06/2019, pág. 30/227
18/108 lexical busca coesão dentro do contexto.
[039] Em algumas destas implementações, o dispositivo calcula o parentesco semântico realizando uma sequência de operações que compreende: treinar um primeiro modelo de rede neural em um corpus de texto grande, dessa forma aprendendo representações vetoriais de palavras (word embeddings)·, calcular um primeiro vetor de palavra para uma primeira palavra em uma primeira frase no segundo conjunto de uma ou mais frases analíticas usando um segundo modelo de rede neural, o primeiro mapeamento de vetor de palavra mapeando a primeira palavra para as representações vetoriais de palavras; calcular um segundo vetor de palavra para um primeiro atributo de dados no um ou mais atributos de dados usando o segundo modelo de rede neural, o segundo vetor de palavra mapeando o primeiro atributo de dados para as representações vetoriais de palavras; e calcular o parentesco entre o primeiro vetor de palavra e o segundo vetor de palavra usando uma métrica de similaridade.
[040] Em algumas de tais implementações, o primeiro modelo de rede neural compreende o modelo Word2vec®. Em algumas de tais implementações, o segundo modelo de rede neural compreende o modelo de rede neural recorrente.
[041] Em algumas de tais implementações, a métrica de similaridade se baseia pelo menos (i) na distância de Wu-Palmer entre os sentidos de palavra associados ao primeiro vetor de palavra e ao segundo vetor de palavra, (ii) em um fator de ponderação, e (iii) em uma distância de cosseno em pares entre o primeiro vetor de palavra e o segundo vetor de palavra.
[042] Em algumas de tais implementações, o dispositivo calcula funções analíticas realizando uma sequência de operações que compreende: obter definições de palavras para o segundo conjunto de uma ou mais frases analíticas a partir de um dicionário disponível publicamente; determinar se as definições de palavras contêm um ou mais adjetivos predefinidos usando uma API de análise
Petição 870190054547, de 13/06/2019, pág. 31/227
19/108 morfossintática fornecida por uma biblioteca de ferramentas para processamento de linguagem natural; e, de acordo com a determinação de que as definições de palavras contêm um ou mais adjetivos predefinidos, mapear o um ou mais adjetivos predefinidos para uma ou mais funções analíticas.
[043] Tipicamente, um dispositivo eletrônico inclui um ou mais processadores, memória, um meio de exibição e um ou mais programas armazenados na memória. Os programas são configurados para execução pelo um ou mais processadores e são configurados para realizar qualquer um dos métodos aqui descritos. O um ou mais programas incluem instruções para exibir uma visualização de dados com base em um primeiro conjunto de dados recuperado de uma base de dados usando um primeiro conjunto de uma ou mais consultas. O um ou mais programas também incluem instruções para receber uma primeira entrada do usuário para especificar um primeiro comando de linguagem natural relacionado à visualização de dados. O um ou mais programas também incluem instruções para extrair um primeiro conjunto de uma ou mais frases analíticas a partir do primeiro comando de linguagem natural. O um ou mais programas também incluem instruções para calcular um primeiro conjunto de um ou mais centros de conversação associados ao primeiro comando de linguagem natural baseado no primeiro conjunto de uma ou mais frases analíticas. O um ou mais programas também incluem instruções para calcular um primeiro conjunto de funções analíticas associadas ao primeiro conjunto de um ou mais centros de conversação, criando assim um primeiro conjunto de uma ou mais frases funcionais. O um ou mais programas também incluem instruções para atualizar a visualização de dados com base no primeiro conjunto de uma ou mais frases funcionais. O um ou mais programas também incluem instruções para receber uma segunda entrada do usuário para especificar um segundo comando de linguagem natural relacionado à visualização de dados atualizada. O um ou mais programas também incluem
Petição 870190054547, de 13/06/2019, pág. 32/227
20/108 instruções para extrair um segundo conjunto de uma ou mais frases analíticas independentes a partir do segundo comando de linguagem natural. O um ou mais programas também incluem instruções para calcular um conjunto temporário de um ou mais centros de conversação associados ao segundo comando de linguagem natural baseado no segundo conjunto de uma ou mais frases analíticas. O um ou mais programas também incluem instruções para calcular a coesão entre o primeiro conjunto de uma ou mais frases analíticas e o segundo conjunto de uma ou mais frases analíticas. O um ou mais programas também incluem instruções para derivar um segundo conjunto de um ou mais centros de conversação a partir do primeiro conjunto de um ou mais centros de conversação e do conjunto temporário de um ou mais centros de conversação com base na coesão. O um ou mais programas também incluem instruções para calcular um segundo conjunto de uma ou mais funções analíticas associadas ao segundo conjunto de um ou mais centros de conversação, dessa forma criando um segundo conjunto de uma ou mais frases funcionais, e atualizando a visualização de dados com base no segundo conjunto de uma ou mais frases funcionais.
[044] Em algumas implementações, um meio de armazenamento nãotemporário legível por computador armazena um ou mais programas configurados para execução por um dispositivo de computação contendo um ou mais processadores, memória e um meio de exibição. O um ou mais programas são configurado para realizar qualquer um dos métodos aqui descritos. O um ou mais programas incluem instruções para exibir uma visualização de dados com base em um primeiro conjunto de dados recuperado de uma base de dados usando um primeiro conjunto de uma ou mais consultas. O um ou mais programas também incluem instruções para receber uma primeira entrada do usuário para especificar um primeiro comando de linguagem natural relacionado à visualização de dados. O um ou mais programas também incluem instruções para extrair um primeiro conjunto
Petição 870190054547, de 13/06/2019, pág. 33/227
21/108 de uma ou mais frases analíticas a partir do primeiro comando de linguagem natural. O um ou mais programas também incluem instruções para calcular um primeiro conjunto de um ou mais centros de conversação associados ao primeiro comando de linguagem natural baseado no primeiro conjunto de uma ou mais frases analíticas. O um ou mais programas também incluem instruções para calcular um primeiro conjunto de funções analíticas associadas ao primeiro conjunto de um ou mais centros de conversação, criando assim um primeiro conjunto de uma ou mais frases funcionais. O um ou mais programas também incluem instruções para atualizar a visualização de dados com base no primeiro conjunto de uma ou mais frases funcionais. O um ou mais programas também incluem instruções para receber uma segunda entrada do usuário para especificar um segundo comando de linguagem natural relacionado à visualização de dados atualizada. O um ou mais programas também incluem instruções para extrair um segundo conjunto de uma ou mais frases analíticas independentes a partir do segundo comando de linguagem natural. O um ou mais programas também incluem instruções para calcular um conjunto temporário de um ou mais centros de conversação associados ao segundo comando de linguagem natural baseado no segundo conjunto de uma ou mais frases analíticas. O um ou mais programas também incluem instruções para calcular a coesão entre o primeiro conjunto de uma ou mais frases analíticas e o segundo conjunto de uma ou mais frases analíticas. O um ou mais programas também incluem instruções para derivar um segundo conjunto de um ou mais centros de conversação a partir do primeiro conjunto de um ou mais centros de conversação e do conjunto temporário de um ou mais centros de conversação com base na coesão. O um ou mais programas também incluem instruções para calcular um segundo conjunto de uma ou mais funções analíticas associadas ao segundo conjunto de um ou mais centros de conversação, dessa forma criando um segundo conjunto de uma ou mais frases funcionais, e atualizando a visualização de dados com base no
Petição 870190054547, de 13/06/2019, pág. 34/227
22/108 segundo conjunto de uma ou mais frases funcionais.
[045] Em outro aspecto, de acordo com algumas implementações, um método é executado em um dispositivo eletrônico com um meio de exibição. Por exemplo, o dispositivo eletrônico pode ser um smartphone, um tablet, um notebook, computador ou um computador de mesa (desktop). O dispositivo exibe uma visualização de dados com base em um conjunto de dados recuperado a partir de uma base de dados usando um primeiro conjunto de uma ou mais consultas de base de dados. Um usuário especifica um primeiro comando de linguagem natural relacionado à visualização de dados exibida. Com base na visualização de dados exibida, o dispositivo extrai um primeiro conjunto de uma ou mais frases analíticas independentes a partir do primeiro comando de linguagem natural. Em seguida, o dispositivo calcula um primeiro conjunto de um ou mais centros de conversação associados ao primeiro comando de linguagem natural baseado no primeiro conjunto de uma ou mais frases analíticas. O dispositivo então calcula um primeiro conjunto de funções analíticas associadas ao primeiro conjunto de um ou mais centros de conversação, desse modo criando um primeiro conjunto de uma ou mais frases funcionais. O dispositivo então atualiza a visualização de dados com base no primeiro conjunto de uma ou mais frases funcionais. O usuário especifica um segundo comando de linguagem natural relacionado à visualização de dados atualizada. Após receber o segundo comando de linguagem natural, o dispositivo extrai uma segunda de uma ou mais frases analíticas independentes a partir do segundo comando de linguagem natural, e calcula um conjunto temporário de um ou mais centros de conversação associados ao segundo comando de linguagem natural com base no segundo conjunto de uma ou mais frases analíticas. O dispositivo então deriva um segundo conjunto de um ou mais centros de conversação a partir do primeiro conjunto de um ou mais centros de conversação e do conjunto temporário de um ou mais centros de conversação usando uma ou mais
Petição 870190054547, de 13/06/2019, pág. 35/227
23/108 regras de transição. O dispositivo então atualiza a visualização de dados com base no segundo conjunto de um ou mais centros de conversação.
[046] Em algumas implementações, o dispositivo adicionalmente determina um ou mais atributos de dados correspondendo ao segundo conjunto de um ou mais centros de conversação; varre visualizações de dados exibidas para identificar uma ou mais das visualizações de dados exibidas que contêm marcas de dados cujas características correspondem a um primeiro atributo de dados em um ou mais atributos de dados; e realça as marcas de dados cujas características correspondem ao primeiro atributo de dados. Em alguma de tais implementações, o dispositivo adicionalmente filtra, a partir das visualizações de dados exibidas, resultados que contêm marcas de dados cujas características não correspondem ao um ou mais atributos de dados. Além disso, em algumas de tais implementações, o dispositivo recebe uma entrada do usuário para determinar se irá filtrar ou realçar as marcas de dados (por exemplo, através de um comando de linguagem natural, tal como “excluir”, “remover” e “somente filtrar”).
[047] Em algumas implementações, as características de visualização incluem um ou mais dentre cor, tamanho e formato. Em algumas implementações, as características de visualização correspondem a uma codificação visual de marcas de dados. Em algumas implementações, a codificação visual é um ou mais dentre cor, tamanho e formato.
[048] Em algumas implementações, o dispositivo determina se nenhuma das visualizações de dados exibidas contém marcas de dados cujas características correspondem ao primeiro atributo de dados, e, neste caso, gera uma especificação para uma nova visualização de dados com o primeiro atributo de dados (por exemplo, tipos de agregação) e exibe a nova visualização de dados. Em algumas de tais implementações, exibir a nova visualização de dados adicionalmente compreende determinar um tipo de gráfico com base na especificação; e gerar e
Petição 870190054547, de 13/06/2019, pág. 36/227
24/108 exibir o gráfico. Adicionalmente, em algumas de tais implementações, o gráfico é posicionado usando um algoritmo de disposição baseado em grade bidimensional, coordenado automaticamente outras visualizações de dados (algumas vezes chamadas aqui de “vistas”).
[049] Em algumas implementações, o dispositivo adicionalmente realiza uma sequência de operações compreendendo: calcular um segundo conjunto de uma ou mais funções analíticas associadas ao segundo conjunto de um ou mais centros de conversação, dessa forma criando um segundo conjunto de uma ou mais frases funcionais; selecionar uma primeira frase funcional a partir do segundo conjunto de uma ou mais frases funcionais, em que a primeira frase funcional compreende um critério de seleção de dados parametrizado; selecionar um intervalo inicial para valores dos parâmetros do critério de seleção de dados parametrizado; exibir um controle de interface editável pelo usuário (por exemplo, widgets) correspondendo ao critério de seleção de dados parametrizado, em que o controle de interface do usuário exibe os valores atuais dos parâmetros; e ordenar um conjunto exibido de um ou mais controles de interface do usuário editáveis com base na ordem das consultas no segundo comando de linguagem natural, em que a ordem das consultas é inferida enquanto se extrai o segundo conjunto de uma ou mais frases analíticas a partir do segundo comando de linguagem natural. Em algumas de tais implementações, o controle de interface do usuário permite o ajuste da primeira frase funcional. Adicionalmente, em algumas de tais implementações, o controle de interface do usuário exibe um controle deslizante, que permite que um usuário ajuste a primeira frase funcional. Em algumas de tais implementações, ordenar o conjunto exibido de um ou mais controles de interface do usuário editáveis adicionalmente compreende utilizar uma biblioteca que facilita a colocação compacta da visualização em escala de palavra pequena dentro do texto. Em algumas de tais implementações, a biblioteca é a Sparklificator®.
Petição 870190054547, de 13/06/2019, pág. 37/227
25/108 [050] Em algumas implementações, o dispositivo realiza uma sequência de operações direcionadas à correção automática de alguns erros do usuário. A sequência de operações compreende: determinar um primeiro símbolo (token) no segundo comando de linguagem natural que não corresponde a nenhuma das frases analíticas no segundo conjunto de uma ou mais frases analíticas (por exemplo, devido a uma falha de análise); buscar um termo grafado corretamente correspondendo ao primeiro símbolo usando uma biblioteca de busca através da comparação do primeiro símbolo com um ou mais aspectos do primeiro conjunto de dados; e substituir o termo grafado corretamente para o primeiro símbolo no segundo comando de linguagem natural para obter um terceiro comando de linguagem natural; e extrair o segundo conjunto de uma ou mais frases analíticas a partir do terceiro comando de linguagem natural. Em algumas de tais implementações, o um ou mais aspectos incluem atributos de dados, valores de células e palavras-chaves relacionadas do primeiro conjunto de dados. Em algumas de tais implementações, a biblioteca de busca é uma biblioteca de sequência difusa, tal como Fuse.js®.
[051] Em algumas de tais implementações, o dispositivo realiza uma sequência de operações compreendendo: determinar se não há nenhum termo grafado corretamente correspondendo ao primeiro símbolo; e, de acordo com uma determinação de que não há termo grafado corretamente correspondendo ao primeiro símbolo: analisar o segundo comando de linguagem natural para obter uma árvore de análise; podar a árvore de análise para remover a porção da árvore correspondendo ao primeiro símbolo; e extrair o segundo conjunto de uma ou mais frases analíticas com base na árvore de análise podada.
[052] Em algumas implementações, o dispositivo adicionalmente gera uma realimentação textual indicando que o primeiro símbolo não foi reconhecido, e, portanto, removido do segundo comando de linguagem natural - situação que
Petição 870190054547, de 13/06/2019, pág. 38/227
26/108 tipicamente ocorre quando a enunciação foi entendida apenas parcialmente. Em algumas de tais implementações, o dispositivo exibe o primeiro símbolo.
[053] Em algumas implementações, o dispositivo adicionalmente gera uma realimentação textual indicando que o termo grafado corretamente é usado como substituto para o primeiro símbolo no segundo comando de linguagem natural. Esta é geralmente a situação quando a enunciação não foi entendida com êxito, mas o dispositivo sugeriu uma consulta alternativa. Além disso, em algumas de tais implementações, o dispositivo exibe e realça o termo grafado corretamente.
[054] Tipicamente, um dispositivo eletrônico inclui um ou mais processadores, memória, um meio de exibição e um ou mais programas armazenados na memória. Os programas são configurados para execução pelo um ou mais processadores e são configurados para realizar qualquer um dos métodos aqui descritos. O um ou mais programas incluem instruções para exibir uma visualização de dados com base em um primeiro conjunto de dados recuperado de uma base de dados usando um primeiro conjunto de uma ou mais consultas. O um ou mais programas também incluem instruções para receber uma primeira entrada do usuário para especificar um primeiro comando em linguagem natural relacionado à visualização de dados. O um ou mais programas também incluem instruções para extrair um primeiro conjunto de uma ou mais frases analíticas a partir do primeiro comando em linguagem natural. O um ou mais programas também incluem instruções para calcular um primeiro conjunto de um ou mais centros de conversação associados ao primeiro comando em linguagem natural baseado no primeiro conjunto de uma ou mais frases analíticas. O um ou mais programas também incluem instruções para calcular um primeiro conjunto de funções analíticas associadas ao primeiro conjunto de um ou mais centros de conversação, criando assim um primeiro conjunto de uma ou mais frases funcionais. O um ou mais programas também incluem instruções para atualizar a visualização de dados com
Petição 870190054547, de 13/06/2019, pág. 39/227
27/108 base no primeiro conjunto de uma ou mais frases funcionais. O um ou mais programas também incluem instruções para receber uma segunda entrada do usuário para especificar um segundo comando em linguagem natural relacionado à visualização de dados atualizada. O um ou mais programas também incluem instruções para extrair um segundo conjunto de uma ou mais frases analíticas independentes a partir do segundo comando em linguagem natural. O um ou mais programas também incluem instruções para calcular um conjunto temporário de um ou mais centros de conversação associados ao segundo comando em linguagem natural baseado no segundo conjunto de uma ou mais frases analíticas. O um ou mais programas também incluem instruções para derivar um segundo conjunto de um ou mais centros de conversação a partir do primeiro conjunto de um ou mais centros de conversação e do conjunto temporário de um ou mais centros de conversação usando uma ou mais regras de transição. O um ou mais programas também incluem instruções para atualizar a visualização de dados com base no segundo conjunto de um ou mais centros de conversação, em que a atualização compreende: determinar um ou mais atributos de dados correspondendo ao segundo conjunto de um ou mais centros de conversação; varrer visualizações de dados exibidas para identificar uma ou mais das visualizações de dados exibidas que contêm marcas de dados cujas características correspondem a um primeiro atributo de dados em um ou mais atributos de dados; e realçar as marcas de dados cujas características correspondem ao primeiro atributo de dados.
[055] Em algumas implementações, um meio de armazenamento nãotemporário legível por computador armazena um ou mais programas configurados para execução por um dispositivo de computação contendo um ou mais processadores, memória e um meio de exibição. O um ou mais programas são configurado para realizar qualquer um dos métodos aqui descritos. O um ou mais programas incluem instruções para exibir uma visualização de dados com base em
Petição 870190054547, de 13/06/2019, pág. 40/227
28/108 um primeiro conjunto de dados recuperado de uma base de dados usando um primeiro conjunto de uma ou mais consultas. O um ou mais programas também incluem instruções para receber uma primeira entrada do usuário para especificar um primeiro comando em linguagem natural relacionado à visualização de dados. O um ou mais programas também incluem instruções para extrair um primeiro conjunto de uma ou mais frases analíticas a partir do primeiro comando em linguagem natural. O um ou mais programas também incluem instruções para calcular um primeiro conjunto de um ou mais centros de conversação associados ao primeiro comando em linguagem natural baseado no primeiro conjunto de uma ou mais frases analíticas. O um ou mais programas também incluem instruções para calcular um primeiro conjunto de funções analíticas associadas ao primeiro conjunto de um ou mais centros de conversação, criando assim um primeiro conjunto de uma ou mais frases funcionais. O um ou mais programas também incluem instruções para atualizar a visualização de dados com base no primeiro conjunto de uma ou mais frases funcionais. O um ou mais programas também incluem instruções para receber uma segunda entrada do usuário para especificar um segundo comando em linguagem natural relacionado à visualização de dados atualizada. O um ou mais programas também incluem instruções para extrair um segundo conjunto de uma ou mais frases analíticas independentes a partir do segundo comando em linguagem natural. O um ou mais programas também incluem instruções para calcular um conjunto temporário de um ou mais centros de conversação associados ao segundo comando em linguagem natural baseado no segundo conjunto de uma ou mais frases analíticas. O um ou mais programas também incluem instruções para derivar um segundo conjunto de um ou mais centros de conversação a partir do primeiro conjunto de um ou mais centros de conversação e do conjunto temporário de um ou mais centros de conversação usando uma ou mais regras de transição. O um ou mais programas também incluem instruções para atualizar a visualização de dados
Petição 870190054547, de 13/06/2019, pág. 41/227
29/108 com base no segundo conjunto de um ou mais centros de conversação, em que a atualização compreende: determinar um ou mais atributos de dados correspondendo ao segundo conjunto de um ou mais centros de conversação; varrer visualizações de dados exibidas para identificar uma ou mais das visualizações de dados exibidas que contêm marcas de dados cujas características correspondem a um primeiro atributo de dados em um ou mais atributos de dados; e realçar as marcas de dados cujas características correspondem ao primeiro atributo de dados.
[056] Dessa forma, são revelados métodos, sistemas e interfaces gráficas do usuário que permitem aos usuários explorar de forma eficiente os dados exibidos dentro de um aplicativo de visualização de dados.
[057] Tanto a descrição geral anterior como a descrição detalhada seguinte são exemplificativas e explanatórias, e servem para melhor entendimento da invenção conforme reivindicada.
BREVE DESCRIÇÃO DOS DESENHOS [058] Para uma melhor compreensão dos sistemas, métodos e interfaces gráficas do usuário supramencionados, bem como dos sistemas, métodos e interfaces gráficas do usuário adicionais que oferecem ferramentas analíticas de visualização de dados, deve-se fazer referência à Descrição das Implementações a seguir, em conjunto com os desenhos seguintes, nos quais numerais de referência similares referem-se a partes correspondentes por todas as figuras.
[059] A Figura 1 ilustra uma interface gráfica do usuário usada em algumas implementações.
[060] A Figura 2 é um diagrama de blocos de um dispositivo de computação de acordo com algumas implementações.
[061] A Figura 3A é um fluxograma de processo ilustrando um processo para utilizar linguagem natural aplicando princípios de pragmática para análise visual de um conjunto de dados de acordo com algumas implementações; e a Figura 3B é um
Petição 870190054547, de 13/06/2019, pág. 42/227
30/108 diagrama de máquina de estados que ilustra estados do centro de conversação e a transição entre os estados quando regras de transição específicas são acionadas, de acordo com algumas implementações.
[062] As Figuras 4A a 4B são diagramas ilustrando o uso de diferentes regras de transição no gerenciamento de conversações analíticas de acordo com algumas implementações; e as Figuras 4C a 4G ilustram interfaces gráficas do usuário (que se relacionam às Figuras 4A a 4B) para análise de dados interativa usando processamento de linguagem natural em um aplicativo de visualização de dados de acordo com algumas implementações.
[063] A Figura 5 é um diagrama ilustrando uma estrutura geral para a aplicação dos princípios da pragmática para analíticas visuais de acordo com algumas implementações.
[064] As Figuras 6A é um diagrama ilustrando a aplicação de princípios da pragmática para enunciações incompletas (algumas vezes chamadas aqui de “Elipse”) de acordo com algumas implementações; e as Figuras 6B a 6D ilustram interfaces gráficas do usuário (que se relacionam à Figura 6A) para análise de dados interativa usando processamento de linguagem natural em um aplicativo de visualização de dados de acordo com algumas implementações.
[065] A Figura 7A é um diagrama ilustrando a aplicação de princípios da pragmática para enunciações com expressões de referência (algumas vezes chamadas aqui de referências anafóricas) de acordo com algumas implementações; e as Figuras 7B a 7D ilustram interfaces gráficas do usuário (que se relacionam à Figura 7A) para análise de dados interativa usando processamento de linguagem natural em um aplicativo de visualização de dados de acordo com algumas implementações.
[066] A Figura 8A é um diagrama ilustrando a aplicação de princípios da pragmática para enunciações com conjunções de acordo com algumas
Petição 870190054547, de 13/06/2019, pág. 43/227
31/108 implementações; a Figura 8B ilustra uma interface gráfica do usuário (que se relaciona à Figura 8A) para análise de dados interativa usando processamento de linguagem natural em um aplicativo de visualização de dados de acordo com algumas implementações; e a Figura 8C ilustra como um sistema conecta iterativamente as funções analíticas dos nós adjacentes em uma árvore de análise por linearização, de acordo com algumas implementações.
[067] A Figura 9A é um diagrama ilustrando a aplicação de princípios da pragmática para gerenciar com a coesão lexical de acordo com algumas implementações; e as Figuras 9B a 9C ilustram interfaces gráficas do usuário (que se relacionam à Figura 9A) para análise de dados interativa usando processamento de linguagem natural em um aplicativo de visualização de dados de acordo com algumas implementações.
[068] A Figura 10A é um diagrama ilustrando a aplicação de princípios da pragmática para enunciações de reparo de acordo com algumas implementações; e as Figuras 10B a 10C ilustram interfaces gráficas do usuário (que se relacionam à Figura 10A) para análise de dados interativa usando processamento de linguagem natural em um aplicativo de visualização de dados de acordo com algumas implementações.
[069] A Figura 11A é um diagrama ilustrando a aplicação de princípios da pragmática para gerenciar respostas e realimentação de acordo com algumas implementações; a Figura 11B é uma visualização de dados que adicionalmente ilustra a metodologia ilustrada na Figura 11 A; e a Figura 11C mostra como um painel de instrumentos é construído progressivamente com base nas enunciações de entrada, de acordo com algumas implementações.
[070] A Figura 12A ilustra um conjunto de widgets gerados para gerenciar ambiguidade em uma consulta do usuário de acordo com algumas implementações; e a Figura 12B ilustra exemplos de realimentação para várias situações de acordo
Petição 870190054547, de 13/06/2019, pág. 44/227
32/108 com algumas implementações.
[071] As Figuras 13A-13J apresentam um fluxograma de um processo que usa linguagem natural para análise visual de um conjunto de dados aplicando princípios da pragmática, de acordo com algumas implementações.
[072] As Figuras 14A a 14R apresentam um fluxograma de um processo que usa linguagem natural para análise visual de um conjunto de dados aplicando princípios da pragmática, inclusive para gerenciar diversas formas de pragmática, de acordo com algumas implementações.
[073] As Figuras 15A a 15H apresentam um fluxograma de um processo que usa linguagem natural para análise visual de um conjunto de dados aplicando princípios da pragmática, inclusive para gerenciar ambiguidade em uma consulta do usuário, de acordo com algumas implementações.
[074] Será feita agora referência às implementações, exemplos das quais são ilustradas nos desenhos acompanhantes. Na descrição a seguir, numerosos detalhes específicos são apresentados de modo a possibilitar uma compressão aprofundada da presente invenção. No entanto, ficará claro para aqueles com conhecimento geral na técnica que a presente invenção pode ser praticada sem necessitar desses detalhes específicos.
DESCRIÇÃO DAS IMPLEMENTAÇÕES [075] A Figura 1 ilustra uma interface gráfica do usuário 100 para análise de dados interativa. A interface do usuário 100 inclui uma aba Data 114, e uma aba Analytics 116 de acordo com algumas implementações. Quando a aba Data 114 é selecionada, a interface do usuário 100 exibe uma região de informação de esquema 110, que também é chamada de painel de dados. A região de informação de esquema 110 fornece elementos de dados nomeados (por exemplo, nomes de campo) que podem ser selecionados e usados para construir uma visualização de dados. Em algumas implementações, a lista de nomes de campos é separada em
Petição 870190054547, de 13/06/2019, pág. 45/227
33/108 um grupo de dimensões (por exemplo, dados categóricos) e um grupo de medidas (por exemplo, quantidades numéricas). Algumas implementações também incluem uma lista de parâmetros. Quando a aba Analytics 116 é selecionada, a interface do usuário exibe uma lista de funções analíticas em vez dos elementos de dados (não ilustrado).
[076] A interface gráfica do usuário 100 também inclui uma região de visualização de dados 112. A região de visualização de dados 112 inclui uma pluralidade de regiões de regiões de prateleira, tal como uma região de prateleira de colunas 120 e uma região de prateleira de fileiras 122. Estão também são chamadas de prateleira de colunas 120 e prateleira de fileiras 122. Como ilustrado aqui, a região de visualização de dados 112 também tem um espaço grande para exibir um gráfico visual (também chamado aqui de visualização de dados). Uma vez que nenhum elemento de dados foi selecionado até o momento, o espaço, inicialmente, não possui gráfico visual. Em algumas implementações, a região de visualização de dados 112 tem múltiplas camadas que são chamadas de folhas.
[077] Em algumas implementações, a interface gráfica do usuário 100 também inclui uma região de processamento de linguagem natural 124. A região de processamento de linguagem natural 124 inclui uma barra de entrada (também chamada aqui de barra de comando) para receber comandos de linguagem natural. Um usuário pode interagir com a barra de entrada para fornecer comandos. Por exemplo, o usuário pode digitar um comando na barra de entrada para fornecer o comando. Além disso, o usuário pode interagir indiretamente com a barra de entrada utilizando um microfone para falar (por exemplo, um dispositivo de entrada de áudio 220) para fornecer comandos. Em algumas implementações, os elementos de dados são inicialmente associados à prateleira de colunas 120 e à prateleira de fileiras 122 (por exemplo, usando operações de arrastar e saltar a partir da região de informações de esquema 110 para a prateleira de colunas 120 e/ou para a prateleira
Petição 870190054547, de 13/06/2019, pág. 46/227
34/108 de fileiras 122). Após a associação inicial, o usuário pode usar comandos de linguagem natural (por exemplo, na região de processamento de linguagem natural 124) para adicionalmente explorar a visualização de dados exibida. Em alguns casos, um usuário cria a associação inicial usando a região de processamento de linguagem natural 124, o que resulta em um ou mais elementos de dados sendo colocados na prateleira de colunas 120 e na prateleira de fileiras 122. Por exemplo, o usuário pode fornecer um comando para criar uma relação entre o elemento de dados X e o elemento de dados Y. Em resposta ao recebimento do comando, a prateleira de coluna 120 e a prateleira de fileiras 122 podem ser preenchidas com os elementos de dados (por exemplo, a prateleira de colunas 120 pode ser preenchida com o elemento de dados X e a prateleira de fileiras 122 pode ser preenchida com o elemento de dados Y, ou vice-versa).
[078] A Figura 2 é um diagrama de blocos ilustrando um dispositivo de computação 200, que pode exibir a interface gráfica do usuário 100 de acordo com algumas implementações. Vários exemplos do dispositivo de computação 200 incluem um computador de mesa, um computador laptop, um computador tablet, e outros dispositivos de computação que possuem um meio de exibição e um processador capaz de executar um aplicativo de visualização de dados 230. O dispositivo de computação 200 tipicamente inclui uma ou mais unidades de processamento (processadores ou núcleos) 202, uma ou mais redes ou outras interfaces de comunicações 204, a memória 206 e um ou mais barramentos de comunicações 208 para interconectar esses componentes. Os barramentos de comunicação 208 opcionalmente incluem conjuntos de circuitos (algumas vezes chamados de chipset) que interconectam e controlam as comunicações entre os componentes do sistema. O dispositivo de computação 200 inclui uma interface do usuário 210. A interface do usuário 210 tipicamente inclui um dispositivo de exibição 212. Em algumas implementações, o dispositivo de computação 200 inclui
Petição 870190054547, de 13/06/2019, pág. 47/227
35/108 dispositivos de entrada, tal como um teclado, mouse e/ou outros botões de entrada 216. Como alternativa ou adicionalmente, em algumas implementações, o dispositivo de exibição 212 inclui uma superfície sensível ao toque 214, caso este em que o dispositivo de exibição 212 é um meio de exibição sensível ao toque. Em algumas implementações, a superfície sensível ao toque 214 é configurada para detectar vários gestos de deslizamento (por exemplo, gestos contínuos nas direções vertical e/ou horizontal) e/ou outros gestos (por exemplo, toque único/duplo). Nos dispositivos de computação que possuem um meio de exibição sensível a toque 214, um teclado físico é opcional (por exemplo, um teclado virtual) pode ser exibido quando a entrada do teclado é necessária). A interface do usuário 210 também inclui um dispositivo de saída de áudio 218, tais como alto-falantes, ou uma conexão de saída de áudio conectada aos alto-falantes, fontes de ouvido ou fones de cabeça. Adicionalmente, alguns dispositivos de computação 200 usam um microfone e reconhecimento por voz para complementar ou substituir o teclado. Opcionalmente, o dispositivo de computação 200 inclui um dispositivo de entrada de áudio 220 (por exemplo, um microfone) para capturar áudio (por exemplo, fala de um usuário).
[079] A memória 206 inclui memória de acesso aleatório de alta velocidade, tal como DRAM, SRAM, RAM DDR ou outros dispositivos de memória de estado sólido de acesso aleatório; e pode incluir memória não-volátil, tais como um ou mais dispositivos de armazenamento em disco magnético, dispositivos de armazenamento em disco óptico, dispositivos de memória flash ou outros dispositivos de armazenamento de estado sólido não-voláteis. Em algumas implementações, a memória 206 inclui um ou mais dispositivos de armazenamento localizados remotamente em relação ao(s) processador(es) 202. A memória 206, ou, em alternativa, o(s) dispositivo(s) de memória não-voláteis dentro da memória 206 incluem um meio de armazenamento não-temporário legível por computador. Em algumas implementações, a memória 206, ou o meio de armazenamento legível por
Petição 870190054547, de 13/06/2019, pág. 48/227
36/108 computador da memória 206, armazena os seguintes programas, módulos e estruturas de dados, ou um subconjunto ou superconjunto dos mesmos:
• um sistema operacional 222, que inclui procedimentos para manipular vários serviços básicos do sistema e para realizar tarefas dependentes de hardware;
• um módulo de comunicações 224 que é usado para conectar o dispositivo de computação 200 a outros computadores e dispositivos por meio da uma ou mais interfaces de rede de comunicação 204 (com ou sem fio), tal como a Internet, outras redes de longa distância, redes locais, redes metropolitanas, e assim por diante;
• um navegador da Rede (web) 226 (ou outro aplicativo capaz de exibir páginas da Rede), que permite que um usuário se comunique através de uma rede com computadores ou dispositivos remotos;
• um módulo de entrada de áudio 228 (por exemplo, um módulo de microfone) para processar o áudio capturado pelo dispositivo de entrada de áudio 220. O áudio capturado pode ser enviado a um servidor remoto e/ou processado por um aplicativo em execução no dispositivo de computação 200 (por exemplo, o aplicativo de visualização de dados 230);
• um aplicativo de visualização de dados 230 para gerar visualizações de dados e aspectos relacionados. O aplicativo 230 inclui uma interface gráfica do usuário 232 (por exemplo, a interface gráfica do usuário 100 ilustrada na Figura 1) para um usuário construir gráficos visuais. Por exemplo, um usuário seleciona uma ou mais fontes de dados 240 (que podem ser armazenadas no dispositivo de computação 200 ou armazenadas remotamente), seleciona campos de dados a partir da(s) fonte(s) de dados, e utiliza os campos selecionados para definir um gráfico visual; e • zero ou mais bases de dados ou fontes de dados 240 (por exemplo, uma primeira fonte de dados 240-1 e uma segunda fonte de dados 240-2), que são usadas pelo aplicativo de visualização de dados 230. Em algumas implementações,
Petição 870190054547, de 13/06/2019, pág. 49/227
37/108 as fontes de dados são armazenadas como arquivos de planilha, arquivos CSV, arquivos de texto, arquivos JSON, arquivos XML ou arquivos planos, ou armazenadas em uma base de dados relacionai.
[080] Em algumas implementações, o aplicativo de visualização de dados 230 inclui um módulo de geração de visualização de dados 234, que obtém a entrada do usuário (por exemplo, uma especificação visual 236), e gera um gráfico visual correspondente. O aplicativo de visualização de dados 230, em seguida, exibe o gráfico visual gerado na interface do usuário 232. Em algumas implementações, o aplicativo de visualização de dados 230 é executado como um aplicativo autônomo (por exemplo, um aplicativo desktop). Em algumas implementações, o aplicativo de visualização de dados 230 é executado dentro do navegador da Rede 226 ou em outro aplicativo utilizando páginas da Rede fornecidas por um servidor da Rede (por exemplo, um aplicativo baseado em servidor).
[081] Em algumas implementações, a informação que o usuário fornece (por exemplo, entrada do usuário) é armazenada como uma especificação visual 236. Em algumas implementações, a especificação visual 236 inclui comandos de linguagem natural anteriores recebidos a partir de um usuário ou propriedades especificadas pelo usuário através de comandos de linguagem natural.
[082] Em algumas implementações, o aplicativo de visualização de dados 230 inclui um módulo de processamento de linguagem 238 para processar (por exemplo, interpretar) comandos fornecidos por um usuário do dispositivo de computação. Em algumas implementações, os comandos são comandos de linguagem natural (por exemplo, capturados pelo dispositivo de entrada de áudio 220). Em algumas implementações, o módulo de processamento de linguagem 238 inclui sub-módulos, tal como um módulo de autocompletar, um módulo de pragmática e um módulo de ambiguidade, cada um dos quais é discutido em mais detalhes adiante.
Petição 870190054547, de 13/06/2019, pág. 50/227
38/108 [083] Em algumas implementações, a memória 206 armazena métricas e/ou pontuações determinadas pelo módulo de processamento de linguagem 238. Além disso, a memória 206 pode armazenar limiares e outros critérios, que são comparados com as métricas e/ou pontuações determinadas pelo módulo de processamento de linguagem 238. Por exemplo, o módulo de processamento de linguagem 238 pode terminar uma métrica de parentesco (discutida em detalhes abaixo) para uma palavra/frase analítica de um comando recebido. Em seguida, o módulo de processamento de linguagem 238 pode comparar a métrica de parentesco com um limiar armazenado na memória 206.
[084] Cada um dos módulos executáveis, aplicativos ou conjuntos de procedimentos identificados acima podem ser armazenados em um ou mais dos dispositivos de memória mencionados anteriormente, e corresponde a um conjunto de instruções para desempenhar uma função descrita acima. Os módulos ou programas identificados acima (isto é, conjuntos de instruções) não precisam ser implementados como softwares de programa, procedimentos ou módulos separados, e, dessa forma, vários subconjuntos desses módulos podem ser combinados ou de alguma outra forma reordenados nas várias implementações. Em algumas implementações, a memória 206 armazena um subconjunto dos módulos e estruturas de dados identificados acima. Adicionalmente, a memória 206 pode armazenar módulos ou estruturas de dados adicionais não descritos acima.
[085] Embora a Figura 2 ilustre um dispositivo de computação 200, a Figura 2 é concebida mais como uma descrição funcional dos vários aspectos que podem estar presentes em vez de como um esquema estrutural das implementações descritas aqui. Na prática, e como reconhecido pelos versados na técnica, os itens apresentados separadamente poderíam ser combinados e alguns itens poderíam ser separados.
[086] As Figuras 3A é um fluxograma de processo ilustrando um processo ou
Petição 870190054547, de 13/06/2019, pág. 51/227
39/108 uma estrutura para utilizar linguagem natural aplicando princípios de pragmática para análise visual de um conjunto de dados de acordo com algumas implementações. A estrutura baseada em um modelo de interação conversacional estende a abordagem de centralização empregada na teoria da pragmática para suportar estados de transição inter-sentencial para continuar, reter e deslocar o contexto dos atributos de dados em jogo. A estrutura suporta um “ciclo de análise visual”, uma interface que suporta a exploração iterativa fluida e refinamento nas analíticas visuais. A interação com análise visual é mais eficaz quando os usuários podem se focar em responder às perguntas que eles têm sobre seus dados, em vez de se focar em como operar a interface para a ferramenta de análise. A pragmática é particularmente importante para o fluxo de análise visual, onde questões e insights geralmente surgem a partir de questões anteriores e padrões de dados que uma pessoa observa.
[087] Sequências de enunciações que apresentam coerência formam uma conversação. A coerência é uma propriedade semântica da conversação, baseada na interpretação de cada enunciação individual em relação à interpretação de outras enunciações. Como mencionado anteriormente, de modo a interpretar corretamente um conjunto de enunciações, a estrutura de processo utiliza e estende um modelo geralmente usado para estrutura de discurso chamado de centralização conversacional, de acordo com algumas implementações. Neste modelo, as enunciações são divididas em segmentos de discurso constituintes, incorporando relações que podem ser válidas entre dois segmentos. Um centro refere-se às entidades servindo para vincular esta eloculação a outras enunciações no discurso. Considere um segmento de discurso DS com enunciações Lh, ..., Um. Cada enunciação Un (1 < n < m) no DS é atribuído a um conjunto de centros prospectivos, Cf (Un, DS) referindo-se ao foco atual da conversação; cada outra enunciação que não a enunciação inicial do segmento é atribuída a um conjunto de centros
Petição 870190054547, de 13/06/2019, pág. 52/227
40/108 regressivos, Cb (Un, DS). O conjunto de centros regressivos de uma nova enunciação L/n+i é Cb(Un+i, DS), que é igual aos centros prospectivos de Un (isto é, Cf(Un, DS)). No contexto de conversões analíticas visuais, os centros prospectivos e regressivos incluem atributos de dados e valores, propriedades visuais e ações analíticas (por exemplo, filtrar, realçar).
[088] Cada segmento de discurso apresenta tanto coerência global, isto é, o contexto global da conversação inteira, geralmente referindo-se a um tópico ou tema da conversação, e coerência local, ou seja, coerência entre as enunciações dentro dessa conversação. A coerência local refere-se à inferência de uma sequência de enunciações dentro de um contexto local através dos estados de transição de continuar, reter e substituir entre Cf(Un, DS) e Cb (Un, DS). A estrutura estende esta teoria de centralização conversacional para conversação analítica visual mediante introdução de um conjunto de regras para cada um desses constructos de coerência local, de acordo com algumas implementações.
[089] Dada uma enunciação Un, um sistema implementando esta estrutura responde executando uma série de funções analíticas derivadas dos centros prospectivos Cf(Un, DS). Uma função analítica F(X, op, v) consiste de uma variável X (que pode ser um atributo ou uma propriedade de visualização), um operador op, e um valor v (geralmente uma constante), de acordo com algumas implementações. Por exemplo, quando o usuário diz “measles in the uk”, o sistema cria duas funções, a saber, F_CAT (diseases, ==, measles) e F_CAT(country, ==, uk). Quando o usuário fornece uma nova enunciação L/n+i, o sistema primeiro cria um conjunto de centros temporários CtemP(Un+i, DS) a partir de L/n+i sem considerar nenhum contexto anterior. O sistema então aplica um conjunto de regras para criar um conjunto de centros prospectivos, Q(L/n+i, DS) com base em algumas operações definidas entre Cb (Un+pDS) e Ctemp (Un+i, DS). Os centros prospectivos são então usados para responder à enunciação do usuário de acordo com algumas implementações.
Petição 870190054547, de 13/06/2019, pág. 53/227
41/108 [090] A Figura 3A ilustra este processo para duas enunciações Un (302) e t/n+1 (312) de acordo com algumas implementações. O sistema cria (304) um conjunto de centros temporários CtemP(Un) (306) a partir de Un sem considerar nenhum contexto anterior. No momento de receber a enunciação Un, o sistema ou pré-calculou um conjunto de centros de conversação regressivos Cb (Un) (301) com base em uma enunciação anterior Un-i, ou, se Un for a primeira enunciação, inicializou Cb (Un) para um conjunto nulo. O sistema então aplica (308) uma ou mais regras de transição (descritas abaixo com referência à Figure 3B) para derivar um conjunto de centros prospectivos Cf (Un) (310) a partir dos centros regressivos Cb (Un) (301) e dos centros de conversação temporários Ctemp (Un) (306). Os centros de conversação prospectivos Cf (Un) (310) também são os centros de conversação regressivos Cb (Un+1) para a próxima enunciação L/n+i (312). O processo descrito até agora é repetido para a próxima enunciação L/n+i (312). O sistema calcula (314) um conjunto de centros temporários Ctemp(Un) (316) a partir de Un sem considerar nenhum contexto anterior. O sistema então aplica (318) a uma ou mais regras de transição para derivar um conjunto de centros prospectivos Cf (Un+i) (319) a partir dos centros regressivos Cb (Un+i) (310) e dos centros de conversação temporários Ctemp (Un+i) (316). O sistema usa os centros de conversação prospectivos Cf (Un+i) (319) para atualizar uma ou mais visualizações de dados de acordo com algumas implementações. O sistema também utiliza o conjunto de centros prospectivos Cf (Un+i) (319) como os centros de conversação regressivos Cb (Un+2) para a próxima enunciação Un+2, e assim por diante. Quando 0 usuário se move para um conjunto de dados diferente ou reinicia a visualização, 0 sistema atualiza a coerência global da conversação analítica, e remove todos os estados anteriores (inclusive os centros de conversação prospectivos, os centros de conversação regressivos e os centros de conversação temporários), de acordo com algumas implementações.
[091] A Figura 3B é um diagrama de máquina de estados que ilustra estados
Petição 870190054547, de 13/06/2019, pág. 54/227
42/108 do centro de conversação e a transição entre os estados, de acordo com algumas implementações. O estado 322 encapsula centros de conversação regressivos Cb e centros de conversação temporários Ctemp, e cada um dos estados 324, 326 e 328 representa diferentes estados dos centros de conversação prospectivos Cf. Os centros de conversação correspondem a uma enunciação L/n+i (não ilustrada). O que se segue é uma descrição de cada uma das regras de transição, isto é, quando cada transição ocorre e como os estados finais são calculados.
[092] A transição Continuar 323 continua o contexto a partir dos centros regressivos Cb para os centros prospectivos Cf, de acordo com algumas implementações. Em outras palavras, cada um dos centros de conversação nos centros de conversação regressivos Cb é incluído nos centros de conversação prospectivos Cf (324). Usando uma notação definida, para uma dada enunciação Un+i, em um segmento de discurso DS, como resultado desta transição,
Cb(Un+i, DS) θ Cf(Un+i, DS), junto com outras entidades [093] Esta transição ocorre quando uma variável Xestá em Ctemp (Un+i) mas não em Cb (Un+i, DS), de acordo com algumas implementações. Neste caso, o sistema realiza a seguinte operação de união:
Cf(Un+l, DS) = Cb (Un+p DS) U Ctemp (Un+1, DS) [094] A transição Reter 325 retém o contexto a partir dos centros regressivos Cb (322) nos centros prospectivos Cf (326) sem adicionar entidades adicionais aos centros prospectivos, de acordo com algumas implementação; ou seja,
Cf(Un+i, DS) = Cb(Un+p DS) [095] A transição Reter 325 é disparada quando a variável X está em Cb (Un+i, DS), mas não em CtemP(Un+i, DS), de acordo com algumas implementações.
[096] Em algumas implementações, com a transição Deslocar 327, o contexto se desloca a partir dos centros de conversação regressivos 322 para os centros de conversação prospectivos 328; ou seja,
Petição 870190054547, de 13/06/2019, pág. 55/227
43/108
Cf(Un+i,DS)* Cb(JJn+l,DS) [097] Em algumas implementações, a transição Deslocar 327 ocorre quando a variável X está tanto em Cb (Un+i, DS) quanto em Ctemp (Un+i, DS), mas os valores correspondentes são diferentes. Neste caso, o sistema substitui todos os centros regressivos Cb (Un+i, DS) contendo Xpor Ctemp (Un+i, DS). Como ilustra a Figura 3B, esta substituição pode ser representada usando a equação:
Cf (Un+1, DS) = Cb (Un+1, DS) — Xcb + Xctemp [098] Em algumas implementações, a transição Deslocar 327 também ocorre quando uma restrição de filtro é removida; por exemplo, remover um widget para “measles” (sarampo) desloca a variável “disease” (doença) de sarampo para todas as doenças.
[099] A Figuras 4A é um diagrama ilustrando o uso de diferentes regras de transição na manipulação de conversações analíticas de acordo com algumas implementações. Suponha que um sistema implemente a estrutura descrita acima com referência às Figuras 3A e 3B. Quando o sistema recebe uma enunciação 400 (por exemplo, “measles in the uk”), o sistema calcula (402) centros de conversação prospectivos (404) correspondendo à enunciação, e inicializa centros regressivos, de acordo com algumas implementações. Os centros de conversação para a enunciação ilustrativa incluem “measles” e “uk”. Com base nos centros de conversação calculados, o sistema aplica (406) filtros para atualizar a visualização, por exemplo, aplica filtros categóricos e espaciais mostrando “measles in the UK” (sarampo no Reino Unido) na visualização 408. A Figura 4D mostra uma versão ampliada da visualização 408. Como ilustrado na Figura 4D, a enunciação “measles in the UK” resulta no sistema mostrando uma visualização de “Disease Outbreaks Around the World” (Epidemias de Doenças em Todo o Mundo) com o foco em (DOENÇAS == Sarampo (442) e PAÍS == Reino Unido (444)). Referindo-se novamente à Figura 4A, supondo que o usuário responda à visualização 408 com
Petição 870190054547, de 13/06/2019, pág. 56/227
44/108 uma nova enunciação 410 (por exemplo, “show me the orange spike” (mostre-me o pico laranja)), o sistema calcula (412) os centros de conversação prospectivos aplicando a regra Continuar (descrita acima com referência a 323, Figura 3B). Isto se deve ao fato de que o centro de conversação temporário (não ilustrado) para o exemplo de enunciação incluir “orange spike” (pico laranja), que corresponde às características de visualização (um tipo de variável), a saber, forma variável (com o valor “spike” (pico)) e cor variável (com o valor “orange” (laranja)), e essas variáveis estão ausentes nos centros de conversação regressivos (404). Ademais, uma vez que a enunciação 410 não se refere às outras variáveis (DOENÇAS ou PAÍS) nos centros de conversação regressivos (404), o sistema não aplica a regra Reter ou a regra Deslocar. Os centros de conversação prospectivos (414) para enunciação 410 são, dessa forma, calculados como sendo {measles, uk, orange spike} (sarampo, reino unido, pico laranja). Com base nesses centros prospectivos, o sistema atualiza os gráficos correspondentes na visualização de dados, por exemplo, realçando o pico laranja na linha para sarampo no gráfico na visualização 418. A Figura 4E mostra uma versão ampliada da visualização 418. Como mostra o exemplo, o sistema realça e anota (446) o pico com as palavras “4.4 casos de Sarampo em 2014” em resposta à enunciação “mostre-me o pico laranja”, de acordo com algumas implementações.
[0100]A Figura 4B é outro diagrama adicionalmente ilustrando a aplicação de diferentes regras de transição para enunciações de exemplo. Este exemplo segue a resposta do usuário à visualização 328 na Figura 4A. Referindo-se à Figura 4B, quando o sistema recebe uma enunciação 420 (por exemplo, “mumps over there” (caxumba neste local)), o sistema calcula (422) centros de conversação prospectivos correspondendo à enunciação, de acordo com algumas implementações. Os centros de conversação regressivos (424) (por exemplo, {sarampo, reino unido, pico laranja}) correspondem aos centros de conversação
Petição 870190054547, de 13/06/2019, pág. 57/227
45/108 prospectivos (414) calculados na etapa anterior (em resposta à enunciação 410) ilustrada na Figura 4A. Os centros de conversação temporários (não ilustrados) para a enunciação 420 (por exemplo, “mumps over there” (“caxumba neste local”)) não incluem um centro de conversação (por exemplo, “orange spike” (“pico laranja”)) derivado para a enunciação anterior. Isto faz com que o sistema seja acionado para aplicar a regra Reter (descrita acima com referência a 325, Figura 3B). Por exemplo, os centros de conversação temporários incluem a variável DOENÇAS, mas o valor dessa variável é trocado de sarampo para caxumba. Isto faz com que o sistema seja acionado para aplicar a regra Deslocar (descrita acima com referência a 327, Figura 3B). Como resultado, o sistema calcula os centros de conversação prospectivos (424) (para, por exemplo, {mumps, uk} (caxumba, reino unido)). Com base nesses centros de conversação prospectivos, o sistema responde (426) mediante aplicação de filtros necessários (por exemplo, filtro espacial de retenção para “UK” (Reino Unido), filtro categórico de atualização para “mumps” (caxumba)), e atualizando a visualização (por exemplo, removendo o pico realçado na linha para caxumba), como ilustrado na visualização 428. A Figura 4F mostra uma versão ampliada da visualização 428. Como ilustrado na Figura 4F, a enunciação “mumps over there” (caxumba neste local) resulta no sistema mostrando uma visualização de “Disease Outbreaks Around the World” (Epidemias de Doenças em Todo o Mundo) com o foco em (DOENÇAS == Caxumba (448) e PAÍS == Reino Unido (450)).
[0101] Referindo-se novamente à Figura 4B, para continuar o exemplo, supondo-se que o usuário consulte com outra enunciação (430) (por exemplo, “measles epidemic in Malawi congo angola” (epidemia de sarampo em Malawi congo angola”), o sistema calcula (432) os centros prospectivos correspondendo a esta enunciação aplicando a regra Deslocar descrita acima. Para o exemplo ilustrado, a razão para aplicar a regra Deslocar é que os valores da variável DOENÇAS agora são diferentes, a saber, “measles” (sarampo) e “epidemic” (epidemia); de forma
Petição 870190054547, de 13/06/2019, pág. 58/227
46/108 similar, a região geográfica foi trocada de “UK” (Reino Unido) para “Malawi, Congo ad Angola” (Malawi, Congo e Angola). Com base na aplicação da regra Deslocar, o sistema calcula os centros de conversação prospectivos (434) (para este exemplo, os centros são {measles, epidemic, malawi, congo, angola} (sarampo, epidemia, malawi, congo, angola)). Com base nos centros de conversação prospectivos (434), o sistema responde (436) à enunciação adicionalmente pela aplicação de filtros apropriados (por exemplo, um filtro categórico para epidemia de sarampo, e um novo filtro espacial em Malawi, Congo e Angola, substituindo Reino Unido), desse modo gerando a visualização 438 (por exemplo, mostrando epidemia de sarampo em Malawi, Congo e Angola). A Figura 4G mostra uma versão ampliada da visualização 438. Como ilustrado na Figura 4G, a enunciação “measles epidemic in malawi congo angola” (“epidemia de sarampo em malawi congo angola) resulta no sistema mostrando uma visualização de “Disease Outbreaks Around the World” (Epidemias de Doenças em Todo o Mundo) com o foco em (DOENÇAS == Sarampo (452), IMPACTO = Epidemia (454), PAÍS == Malawi (456), PAÍS == Congo (458) e PAÍS == Angola 460)).
[0102] A Figura 4C ilustra as atualizações para as visualizações de dados em resposta às enunciações do usuário descritas acima com referência às Figuras 4A e 4B, de acordo com algumas implementações. As visualizações 408, 418, 428 e 438 foram descritas acima com referência às Figuras ampliadas 4D, 4E, 4F e 4G, respectivamente.
[0103]A Figura 5 é um diagrama ilustrando uma estrutura geral para a aplicação dos princípios da pragmática para analíticas visuais de acordo com algumas implementações. A estrutura utiliza e estende um modelo geralmente usado para estrutura do discurso chamado de centralização conversacional, de acordo com algumas implementações. Neste modelo, as enunciações são divididas em segmentos de discurso constituintes, incorporando relações que podem ser
Petição 870190054547, de 13/06/2019, pág. 59/227
47/108 válidas entre dois segmentos. Um centro refere-se às entidades servindo para vincular esta eloculação a outras enunciações no discurso. Considere um segmento de discurso DS com enunciações L/i, Um. Cada enunciação Un (1 < n < m) no DS é atribuído a um conjunto de centros prospectivos, Cf (Un, DS) referindo-se ao foco atual da conversação; cada outra enunciação que não a enunciação inicial do segmento é atribuída a um conjunto de centros regressivos, Cb (Un, DS). O conjunto de centros regressivos de uma nova enunciação L/n+i é Cb(Un+i, DS), que é igual aos centros prospectivos de Un (isto é, Cf (Un, DS)). No contexto de conversões analíticas visuais, os centros prospectivos e regressivos incluem atributos de dados e valores, propriedades visuais e ações analíticas (por exemplo, filtrar, realçar).
[0104] Dada uma enunciação Un, um sistema implementando esta estrutura responde executando uma série de funções analíticas derivadas dos centros prospectivos Cf (Un, DS). Uma função analítica F(X, op, v) consiste de uma variável X (que pode ser um atributo ou uma propriedade de visualização), um operador op, e um valor v (geralmente uma constante). Por exemplo, quando o usuário diz “measles in the uk”, o sistema cria duas funções, a saber, F_CAT (diseases, ==, measles) e F_CAT(country, ==, uk). Quando o usuário fornece uma nova enunciação L/n+i, o sistema primeiro cria um conjunto de centros temporários Ctemp(Un+i, DS) a partir de L/n+i sem considerar nenhum contexto anterior. O sistema então aplica um conjunto de regras para criar um conjunto de centros prospectivos, Cf (Un+i, DS) com base em algumas operações definidas entre Cb (Un+i,DS) e Ctemp (Un+i, DS). Os centros prospectivos são então usados para responder à enunciação do usuário de acordo com algumas implementações.
[0105]A Figura 5 ilustra este processo para duas enunciações Un (500) e L/n+i (520) de acordo com algumas implementações. O sistema calcula (526) um conjunto de centros temporários CtemP(Un+i) (528) a partir de L/n+i sem considerar nenhum contexto anterior. No momento de receber a enunciação L/n+i, o sistema ou
Petição 870190054547, de 13/06/2019, pág. 60/227
48/108 pré-calculou um conjunto de centros de conversação regressivos Cb (Un+i) (504) com base na enunciação anterior Un, ou, se Un tiver sido a primeira enunciação, inicializou Cb (Un+i) (504) para um conjunto nulo.
[0106]A centralização de conversação postula que as enunciações exibem conexão entre elas. A maneira pela qual essas enunciações se encadeiam umas com as outras para formar uma conversação é chamada de coesão. A coesão se dá como resultado da combinação tanto de estruturas gramaticais quanto lexicais nas frases constituintes. Sendo assim, a identificação da estrutura da frase é um ponto de partida lógico para resolver essa enunciação em uma ou mais funções analíticas aplicadas à visualização. A estrutura de frase inclui tanto estrutura lexical quanto gramatical. Na Figura 5, um sistema implementando esta estrutura calcula a estrutura de frase para a enunciação L/n+i (520) na etapa 522. Tipicamente, um analisador é usado para calcular a estrutura da frase. Um analisador recebe uma oração de entrada (algumas vezes chamada de consulta ou comando de linguagem natural) e decompõe a oração de entrada em uma sequência de símbolos (elementos linguísticos) por meio da aplicação de um conjunto de regras gramaticais específicas a uma determinada linguagem natural, tal como o inglês. Em algumas implementações, as regras gramaticais podem ser modificadas para se adequar ao ambiente. Em algumas implementações, aplica-se uma gramática probabilística para fornecer uma descrição estrutural das consultas de entrada. As gramáticas probabilísticas são úteis para resolver ambiguidades na análise de orações. As distribuições de probabilidade (para regras de produção gramatical) podem ser estimadas a partir de um corpus de orações analisadas a mão, por exemplo. Algumas implementações deduzem a estrutura sintática adicional empregando um Etiquetador Morfossintático (POS Tagger) que atribui componentes da oração, como substantivo, verbo, adjetivo, a cada palavra (algumas vezes chamada de símbolo). Algumas implementações resolvem a saída analisada em atributos de dados
Petição 870190054547, de 13/06/2019, pág. 61/227
49/108 ordenados e categóricos correspondentes. Como mostram as linhas tracejadas que conectam os blocos 500 e 510, em algumas implementações, o sistema também calcula (510) a estrutura de frase para a enunciação L/n(500).
[0107] Com a(s) estrutura(s) de frase, o sistema prossegue para a determinação (530) do tipo de formas pragmáticas (exemplos das quais são descritos abaixo com referências às Figuras 6A a 10G) e qualquer outra informação relacionada à estrutura da frase (por exemplo, elementos linguísticos presentes em uma enunciação, mas ausentes em outra). Com base na forma pragmática e na informação de estrutura de frase (532), o sistema então deriva (534) centros de conversação prospectivos Cf (536) da enunciação LUi (520) usando os centros de conversação temporários (528) e os centros de conversação regressivos Cb (504), de acordo com algumas implementações. Gomo mostra a Figura 5, mesmo antes de receber a enunciação L/n+i (520), o sistema deriva e/ou exibe uma ou mais visualizações iniciais (508) com base nos centros de conversação regressivos Cb (504) por meio da aplicação (506) de um primeiro conjunto de operações (por exemplo, aplicação de filtros) às visualizações existentes. Em algumas implementações, com base nos centros de conversação prospectivos Cf (536), o sistema aplica (538) um segundo conjunto de operações (por exemplo, aplicação de filtros) para atualizar as visualizações existentes ou gerar novas visualizações (540).
[0108] As Figuras 6A é um diagrama ilustrando a aplicação de princípios de pragmática para enunciações incompletas (algumas vezes chamadas de elipse) de acordo com algumas implementações. As elipses são fragmentos de orações sintaticamente incompletos que excluem um ou mais elementos linguísticos. Essas enunciações podem ser entendidas melhor com o contexto estabelecido anteriormente. A Figura 6A ilustra como uma enunciação incompleta “townhomes” (“casas”) é entendida no contexto da enunciação anterior “houses in less than 1M in Ballard” (“casas a menos de 1M em Ballard”). Quando o sistema recebe uma
Petição 870190054547, de 13/06/2019, pág. 62/227
50/108 enunciação Un (600), que, neste exemplo, é a enunciação “houses in less than 1M in Ballard” (“casas a menos de 1M em Ballard”), o sistema calcula centros prospectivos e inicializa centros regresssivos (para a enunciação L/n+i) na etapa 602, usando a metodologia descrita acima com referência à Figura 5 (etapa 502), de acordo com algumas implementações. Para a enunciação de exemplo, o sistema calcula o conjunto de centros de conversação como sendo {houses, ballard, e 1M} (casas, ballard e 1M). Em algumas implementações, o sistema aplica (606) filtros ao conjunto de dados com base no conjunto de centros de conversação (604), e exibe uma visualização de dados (608). Neste exemplo, o sistema aplica filtros numéricos e espaciais mostrando casas a menos de $1M em Ballard. A Figura 6D mostra uma versão ampliada da visualização 608. Como ilustrado na Figura 6C, a enunciação “houses less than 1M in Ballard” (casas a menos de 1M em Ballard) resulta no sistema mostrando uma visualização de “Past Home Sales - Seattle” (Vendas de Casas Anteriores - Seattle”) com o foco em (LAST_SALE_PRICE menor do que 1.0M (642) em Ballard (644)). Referindo-se novamente à Figura 6A, em algumas implementações, o sistema também calcula a estrutura de frase (610) para a enunciação Un na etapa 610 usando uma ou mais técnicas descritas acima com referência à etapa 510 da Figura 5.
[0109] Em algumas implementações, quando o sistema recebe uma enunciação LUi (620), que, neste exemplo, é a enunciação “townhomes” (casas), o sistema calcula (626) centros de conversação temporários para LUi (620). Para este exemplo, o sistema calcula os centros de conversação (628) como sendo o conjunto {townhomes} (casas). Adicionalmente, o sistema calcula (622) a estrutura de frase para a enunciação L/n+i (620) usando as técnicas descritas acima com referência à etapa 522 (Figura 5), de acordo com algumas implementações.
[0110] Como mencionado acima, as elipses excluem um ou mais elementos linguísticos. Com o auxílio das estruturas de frase (612 e 624), o sistema determina
Petição 870190054547, de 13/06/2019, pág. 63/227
51/108 um subconjunto de centros de conversação da enunciação Un (600) que corresponde a elementos linguísticos ausentes na enunciação L/n+i (620), de acordo com algumas implementações. Neste exemplo, o sistema calcula o subconjunto como sendo o conjunto {ballard, 1M}, uma vez que os elementos linguísticos, ou seja, um sintagma nominal que se refere a um local após um sintagma preposicional (correspondendo a “ballard”) e um sintagma nominal que se refere a um valor de preço após outro sintagma preposicional (correspondendo a “1M” ou, mais precisamente, “inferior a 1M”), estão ausentes na enunciação L/n+i (620), mas estavam presentes na enunciação Un (600). Por outro lado, o sintagma “houses” (casas) na enunciação Un (600) e o sintagma “townhomes” (casas na cidade) na enunciação L/n+i (620) correspondem a elementos linguísticos similares (por exemplo, ambos os sintagmas são sintagmas nominais e se referem a tipos de casas).
[0111]Na etapa 634, o sistema combina o conjunto temporário de centros de conversação, que, neste exemplo, é o conjunto {townhomes} (casas na cidade), com o subconjunto de centros de conversação (632) para chegar a um conjunto de centros de conversação prospectivos (638) para a enunciação LUi, de acordo com algumas implementações. Com base no conjunto calculado de centros de conversação prospectivos (636), o sistema determina o tipo de filtros a ser aplicado ao conjunto de dados e aplica os filtros apropriados na etapa 638 para exibir uma visualização de dados apropriada (640), de acordo com algumas implementações. Neste exemplo, uma vez que os centros de conversação “ballard” e “1M” foram retidos a partir dos centros de conversação regressivos (604), o sistema retém o filtro numérico (correspondendo a 1M) e o filtro espacial (correspondendo a Ballard). Além disso, uma vez que o valor do centro de conversação (correspondendo à variável home_type) foi alterado de “townhomes” (casas na cidade) para “houses” (casas), o sistema aplica um filtro categórico em home_type para mostrar as casas
Petição 870190054547, de 13/06/2019, pág. 64/227
52/108 na cidade (em vez de somente casas). A Figura 6D mostra uma versão ampliada da visualização 640. Como ilustrado na Figura 6D, a enunciação “townhomes” (casas na cidade) resulta no sistema mostrando uma visualização de “Past Home Sales Seattle” (Vendas de Casa Anteriores - Seattle) retendo o último widget ou filtro LAST_SALE_PRICE (642) e o filtro espacial 644 da visualização anterior 608, e substituindo o HOME_TYPE por “townhouses” (casas na cidade) (646).
[0112] A Figura 6B ilustra as atualizações para as visualizações de dados em resposta às enunciações do usuário descritas acima com referência à Figura 6A, de acordo com algumas implementações. As visualizações 608 e 640 foram descritas acima com referência às Figuras ampliadas 6C e 6D, respectivamente.
[0113]A Figura 7A é um diagrama ilustrando a aplicação de princípios de pragmática para enunciações com expressões de referência (algumas vezes chamadas aqui de referências anafóricas) de acordo com algumas implementações. As expressões de referência ajudam a unificar o texto e a criar economia, evitando repetição desnecessária. O referenciamento é uma forma de conversação que, em vez de ser interpretada semanticamente por si mesma, faz referência a alguma outra coisa para sua interpretação. Quando a interpretação está dentro do texto, isto é conhecido como referenciamento anafórico. Na interação com analíticas visuais, a referência pertence a tributos de dados e funções analíticas. A Figura 7A ilustra como uma enunciação “ano anterior” é entendida no contexto da enunciação anterior “prices in 2015” (preços em 2015). Quando o sistema recebe uma enunciação Un (700), que, neste exemplo, é a enunciação “prices in 2015” (“preços em 2015”), o sistema calcula centros prospectivos e inicializa centros regresssivos (para a enunciação L/n+i) na etapa 702, usando a metodologia descrita acima com referência à Figura 5 (etapa 502), de acordo com algumas implementações. Para a enunciação de exemplo, o sistema calcula o conjunto de centros de conversação como sendo {prices, 2015} (preços, 2015). Em algumas implementações, o sistema aplica (706)
Petição 870190054547, de 13/06/2019, pág. 65/227
53/108 filtros ao conjunto de dados com base no conjunto de centros de conversação (704), e exibe uma visualização de dados (708). Neste exemplo, o sistema aplica filtros temporais mostrando preços de casas no ano de 2015. A Figura 7C mostra uma versão ampliada da visualização 708. Como ilustrado na Figura 7C, a enunciação “prices in 2015” (preços em 2015) resulta no sistema mostrando uma visualização de “Past Home Sales - Seattle” (Vendas de Casas Anteriores - Seattle”) em 2015. Embora não ilustrada, uma visualização anterior, por exemplo, em resposta a uma enunciação anterior, fez com que o sistema verificasse preços em Seattle. Referindo-se novamente à Figura 7A, quando o sistema recebe uma enunciação t/n+1 (720), que, neste exemplo, é a enunciação “previous year” (ano anterior), o sistema calcula (722) a estrutura de frase para a enunciação L/n+i (720) usando técnicas descritas acima com referência à etapa 522 (Figura 5), de acordo com algumas implementações.
[0114] Como mencionado acima, expressões de referência com referências anafóricas fazem referência a alguma outra coisa dentro do texto. Com base na estrutura da frase (724), o sistema identifica (726) anáforas na enunciação L/n+i (720), de acordo com algumas implementações. Neste exemplo, o sistema identifica a anáfora (728) “previous” (anterior). Usando a anáfora identificada, o sistema, em seguida, identifica (734) o bloco frasal (732) contendo a referência para identificar as entidades às quais a referência está se referindo, de acordo com algumas implementações. Para o exemplo ilustrado, o sistema identifica bloco frasal “year” (ano) que corresponde à anáfora “previous” (anterior). Com base na anáfora identificada e no bloco frasal, na etapa 730, o sistema pesquisa através dos centros regressivos para encontrar tais entidades e substitui a referência anafórica por essas entidades, de acordo com algumas implementações. Adicionalmente, em algumas implementações, como é o caso neste exemplo, o sistema também detecta e aplica funções apropriadas ao valor da entidade. Para o exemplo ilustrado, o sistema
Petição 870190054547, de 13/06/2019, pág. 66/227
54/108 também detecta que o usuário está se referindo ao ano “anterior”, e, portanto, o valor de 2015 é decrementado em 1 antes de chegar ao valor certo para a variável “year” (ano). O sistema calcula a data para “anterior” usando uma função temporal (por exemplo, DATECALC), de acordo com algumas implementações. O sistema chega a um conjunto de centros de conversação prospectivos (736), que, para este exemplo, é o conjunto {prices, 2014} (preços, 2014). Com base neste conjunto, o sistema realiza etapas necessárias para atualizar a visualização na etapa 738, de acordo com algumas implementações. Para este exemplo, o sistema retém uma referência a ano e atualiza o filtro temporal para 2014, para mostrar a visualização em 740. A Figura 7D mostra uma versão ampliada da visualização 740. Como ilustrado na Figura 7D, a enunciação “previous year” (ano anterior) resulta no sistema mostrando uma visualização de “Past Home Sales - Seattle” (Vendas de Casas Anteriores - Seattle”) em 2014, o ano anterior a 2014 (a partir da visualização anterior).
[0115]As Figuras 7B a 7D ilustram interfaces gráficas do usuário (que se relacionam à Figura 7A) para análise de dados interativa usando processamento de linguagem natural em um aplicativo de visualização de dados de acordo com algumas implementações. A Figura 7B ilustra as atualizações para as visualizações de dados em resposta às enunciações do usuário descritas acima com referência à Figura 7A, de acordo com algumas implementações. As visualizações 708 e 740 foram descritas acima com referência às Figuras ampliadas 7C e 7D, respectivamente.
[0116] Embora não ilustrado na Figura 7A, em algumas implementações, um sistema repete as etapas para reconhecer múltiplas referência anafóricas em uma única expressão. Adicionalmente, em algumas implementações, o sistema identifica muitos tipos de referência anafóricas na dada enunciação, tal como “that” (este), “those” (aqueles), “them” (eles(as)), “ones” (os), “previous” (anterior), “next”
Petição 870190054547, de 13/06/2019, pág. 67/227
55/108 (próximo). Como outro exemplo ilustrativo, considere a enunciação “Show fremont, queen anne, and ballard” (“Mostre fremont, queen anne e ballard”) seguido pela enunciação “condos in those districts” (“condomínios nesses distritos”). Neste exemplo, those (esses) está se referindo a alguns valores (isto é, fremont, queen anne, e ballard) do atributo vizinhança, conforme indicado pela palavra “districts” (bairros).
[0117] Em algumas implementações, as referências se referem a valores de um atributo de dados. Em algumas implementações, as referências se referem a ações que precisam ser executadas pelo sistema. Por exemplo, considere a enunciação “filter out ballard” (filtre ballard) seguida por “do that to fremont” (faça isto em fremont). Aqui, a palavra that (isto) não é seguida imediatamente por nenhum substantivo, mas precedida imediatamente por uma palavra verbal “do” (faça). Em tais casos, o sistema determina uma ou mais ações mencionadas na enunciação anterior, que, neste exemplo, a ação “filter out” (filtrar).
[0118] Em algumas implementações, o sistema suporta referências que se situam fora do texto, e no contexto da visualização. Em algumas de tais implementações, o centro prospective Cf faz referência ao contexto dentro da visualização, em vez do texto no centro regressivo Cb. Em algumas implementações, esta forma de referenciamento indireto inclui uma referência dêitica que se refere a algum objeto o ambiente, geralmente por indicação. Em algumas de tais implementações, o sistema suporta referência dêiticas por permitir interação multimodal (mouse + fala/texto). A Figura 7E mostra uma visualização ilustrativa em resposta a uma referência dêitica. Em algumas implementações, esta a forma de referenciamento indireto inclui uma referência de propriedade de visualização que usa propriedades na visualização, tais como propriedades de marca, texto em rótulos, eixos geométricos e títulos. A Figura 7F mostra um exemplo de visualização em resposta a uma referência a uma propriedade de visualização.
Petição 870190054547, de 13/06/2019, pág. 68/227
56/108 [0119]A Figura 8A é um diagrama ilustrando a aplicação de princípios da pragmática para enunciações com conjunções de acordo com algumas implementações. As conjunções nas enunciações comunicam uma gama de relações entre os fragmentos de frases chamados conjuntos Em uma conversação, os usuários tendem a construir iterativamente uma consulta composta pelas adição de múltiplos conjuntos, geralmente evitando o uso explícito de conjunções e conectores, como “e”, “ou” e “além disso” entre as frases. A Figura 8A ilustra como uma enunciação “houses in Ballard under 600k last summer” (casas em Ballard a menos de 600 mil último verão) é entendida no contexto da enunciação anterior “houses in Ballard” (casas em Ballard). Quando o sistema recebe uma enunciação Un (800), que, neste exemplo, é a enunciação “houses in Ballard” (“casas em Ballard”), o sistema calcula centros prospectivos e inicializa centros regresssivos (para a enunciação LUi) na etapa 802, usando a metodologia descrita acima com referência à Figura 5 (etapa 502), de acordo com algumas implementações. Para a enunciação de exemplo, o sistema calcula o conjunto de centros de conversação como sendo {houses, ballard} (casas, ballard). Em algumas implementações, o sistema aplica (806) filtros ao conjunto de dados com base no conjunto de centros de conversação (804), e exibe uma visualização de dados (808). Neste exemplo, o sistema aplica filtros categóricos e espaciais mostrando casas em Ballard.
[0120]Quando o sistema recebe uma enunciação L/n+i (810), que, neste exemplo, é a enunciação “houses in Ballard under 600k last summer” (casas em Ballard a menos de 600 mil último verão), o sistema calcula (812) a estrutura de frase para a enunciação LUi (810) usando técnicas descritas acima com referência à etapa 522 (Figura 5), de acordo com algumas implementações. Como mencionado acima, uma consulta composta consiste de múltiplos conjuntos (algumas vezes implícitos) entre as frases constituintes. Com base na estrutura da frase (814), o sistema identifica (816) conjuntos na enunciação L/n+i (810), de acordo com algumas
Petição 870190054547, de 13/06/2019, pág. 69/227
57/108 implementações. Neste exemplo, o sistema identifica múltiplas consultas (818), ou seja, “houses” (casas), “in Ballard” (em Ballard), “under 600k” (a menos de 600 mil) e “last summer” (último verão). Com base nessas consultas (818) e no conjunto de centros de conversão regressivos (804), o sistema calcula (820) um conjunto de centros de conversação prospectivos (822) de acordo com algumas implementações. Por exemplo, o sistema seleciona o contexto correspondente a partir da enunciação Un (800), e adiciona os novos centros de conversação derivados dos conjuntos a partir da enunciação L/n+i (810). O conjunto de centros de conversação prospectivos (822), para este exemplo, é o conjunto {houses, ballard, <600k, last summer} (casas, ballard, <600mil, último verão). Com base neste conjunto, o sistema realiza etapas necessárias para refinar a visualização atual na etapa 824, de acordo com algumas implementações. Para este exemplo, o sistema aplica um filtro numérico no preço da casa e um filtro temporal para mostrar o verão passado, para mostrar a visualização em 826. A Figura 8B mostra uma versão ampliada da visualização 826. Como mostra a Figura 8B, a enunciação “houses in Ballard under 600k last summer” (casas em Ballard a menos de 600 mil último verão) resulta no sistema ilustrando uma visualização de “Past Home Sales - Seattle” (Vendas de Casas Passadas - Seattle) em Ballard (828), com LAST_SALE_PRICE (830), abaixo de 600 mil (832), último verão. Para este exemplo, o sistema adicionalmente resolve o período (para “último verão”) com base na visualização anterior, como o período de tempo 2015-6 a 2015-8-31 (834), de acordo com algumas implementações.
[0121]A Figura 8C ilustra como um sistema conecta iterativamente as funções analíticas dos nós adjacentes em uma árvore de análise por linearização, de acordo com algumas implementações. Encontrar coerência de dados implícita entre os conjuntos é, por vezes, uma tarefa desafiadora. No exemplo ilustrado na Figura 8B, todos os conjuntos referem-se à mesma entidade “houses In Ballard” (casas em
Petição 870190054547, de 13/06/2019, pág. 70/227
58/108
Ballard). No entanto, há casos em que os conjuntos mapeiam para diferentes entidades. Um exemplo de enunciação é “houses in Ballard under 600k condos in South Lake Union” (casas em Ballard a menos de 600 mil condomínios em South Lake Union”). O sistema determina se os conjuntos individuais resolvem para a mesma entidade ou para diferentes entidades, de acordo com algumas implementações. Em algumas de tais implementações, o sistema emprega uma técnica baseada em regra que toma uma enunciação potencialmente longa com conjunções possivelmente implícitas, traduzindo a enunciação em um conjunto de funções analíticas encadeadas juntas por operadores lógicos. O sistema então executa essas funções analíticas em resposta à enunciação do usuário, de acordo com algumas implementações.
[0122] Em algumas implementações, o sistema resolve múltiplos conjuntos dentro de enunciações compostas para invocar uma ou mais funções analíticas correspondentes através de um processo de linearização. Em algumas de tais implementações, uma função analítica F(X, op, v) consiste de uma variável X (por exemplo, um atributo), um operador op, e um valor v. Cada atributo é categórico ou ordenado. O tipo de dados ordenado é adicionalmente categorizado em ordinal e quantitativo. O processo de linearização considera os tipos de atributos e operadores para combinar funções analíticas usando operadores lógicos (isto é, δ, v), como descrito abaixo.
[0123]Aplicando o operador v: Quando dois ou mais conjuntos adjacentes compartilham um atributo e se o tipo de dados desse atributo for categórico, então o sistema conecta esses conjuntos por v, de acordo com algumas implementações. De modo similar, se esse atributo compartilhado for ordenado e o operador da função for ==, o sistema aplica v, de acordo com algumas implementações. Em tais casos, v é logicamente mais apropriado como uma escolha, pois aplicar δ não correspondería a nenhum item na tabela de dados. Por exemplo, se a enunciação
Petição 870190054547, de 13/06/2019, pág. 71/227
59/108 for “show me condos and townhomes” (mostre-me condomínios e casas na cidade), então o sistema gera a seguinte combinação de funções analíticas: (F_CAT(homeType, ==, condo) v F_CAT(homeType, ==, townhome)), de acordo com algumas implementações. Neste exemplo, tanto “condo” quanto “town-home” pertencem ao mesmo atributo categórico, isto é, homeType. Uma vez que uma determinada casa (item) não pode ser tanto “condo” (condomínio) quanto “townhome” (casa na cidade) ao mesmo tempo, aplicar o operador v é logicamente mais apropriado do que aplicar o operador a. De maneira similar, se o usuário emitir “2 3 bedroom houses” (casas 2 3 quartos), o sistema gera (F_ORDINAL(bed, ==, 2) v F ORDINAL(bed, ==, 3)), de acordo com algumas implementações. O operador v também é apropriado se o tipo de atributo for ordenado e envolver a condição X<vi e X>v2, onde vi<v2. Por exemplo, se a enunciação for “before 2013 and after 2014” (antes de 2013 e depois de 2014), então o operador v será usado entre os dois conjuntos, e acordo com algumas implementações. Novamente, neste caso, aplicar o operador δ resultaria em nenhuma correspondência para itens na tabela de dados.
[0124]Aplicando o operador δ: O operador a é apropriado se o tipo de atributo for ordenado e envolver a condição X<vi e X>v2, onde vi<v2. Por exemplo, “houses over 400k and under 700k” (casas acima de 400 mil e abaixo de 700 mil) resolve para (F NUMERIC(price, >, 4000000) a F NUMERIC(price, <, 700000)). “Beds between 2 to 4” (Quartos entre 2 a 4) resolve para (F ORDINAL(beds, >=, 2) a F NUMERIC(beds, <=, 4)). Note que aplicar o operador v resultaria em correspondência com todos os itens na tabela de dados. Em algumas implementações, o operador a também é aplicado quando não há atributo comum entre dois conjuntos. Por exemplo, a enunciação “price under 600k with 2 beds” (preço abaixo de 600 mil com 2 quartos” resolve para (F ORDINAL(beds, ==, 2) a F NUMERIC(price, <=, 600000)).
[0125] De modo a gerar a representação de função analítica da enunciação
Petição 870190054547, de 13/06/2019, pág. 72/227
60/108 inteira, o sistema atravessa uma árvore de análise correspondente para a enunciação gerada por um analisador (por exemplo, analisador descrito acima em referência à Figura 5) em pós-ordem e aplicar as duas regras acima iterativamente nas frases conforme ilustrado na Figura 8C. Para os exemplos ilustrados na Figura 8C, o sistema adota a enunciação “condos under 600K townhomes under 1M” (condomínios abaixo de 600 mil casas na cidade abaixo de 1M”) como entrada, e aplica iterativamente as regras acima para gerar a cadeia de funções analíticas.
[0126]A Figura 9A é um diagrama ilustrando a aplicação de princípios da pragmática para gerenciar com a coesão lexical de acordo com algumas implementações. Os três tipos anteriores de pragmática - elipse, referenciamento e conjunção, fornecem coesão gramatical à conversação. Além desses construtos gramaticais, os usuários geralmente encontram formas de expressas conceitos através de significados de palavras relacionados, isto é, sentidos na conversação, termo chamado de coesão lexical. Esses sentidos de palavras podem ser tão simples quanto variações de ortografia, radical e pluralidade (por exemplo, “lucro” e “lucros”), sinônimos (por exemplo, “país” e “nação”), até termos relacionados ou que ocorrem juntos (por exemplo, “violência” e “crime”). Geralmente, os sentidos de palavras estão relacionados entre si dentro de um contexto semântico.
[0127]A Figura 9A ilustra como uma enunciação “the cheapest” (o mais barato) é entendida no contexto da enunciação anterior “most expensive houses in Queen Anne” (casas mais caras em Queen Anne). Quando o sistema recebe uma enunciação Un (900), que, neste exemplo, é a enunciação “most expensive houses in Queen Anne” (casas mais caras em Queen Anne), o sistema calcula centros prospectivos e inicializa centros regressivos (para a enunciação LUi) na etapa 902, usando a metodologia descrita acima com referência à Figura 5 (etapa 502), de acordo com algumas implementações. Para a enunciação de exemplo, o sistema calcula o conjunto de centros de conversação como sendo {most expensive, houses,
Petição 870190054547, de 13/06/2019, pág. 73/227
61/108
Queen Anne} (mais caras, casas, Queen Anne). Em algumas implementações, ο sistema mapeia (906) um ou mais centros de conversação para uma função analítica correspondente para gerar uma visualização de dados (908), de acordo com algumas implementações. No exemplo ilustrado, o sistema mapeia “most expensive” (“mais caras”) para a função analítica TOP_N(sale_price) de “houses” (casas). Algumas implementações também anotam a faixa de preço por clareza. Neste exemplo, o sistema aplica filtros categóricos e espaciais mostrando casas em Ballard. A Figura 9B mostra uma versão ampliada da visualização 908. Como mostra a Figura 9B, a enunciação “most expensive houses in Queen Anne” (casas mais caras em Queen Anne) resulta no sistema mostrando uma visualização de “Past Home Sales - Seattle” (Vendas de Casas Passadas - Seattle) que compreende os 10% primeiros de LAST_SALE_PRICE (928) em Queen Anne (930), de acordo com algumas implementações.
[0128]Quando o sistema recebe uma enunciação L/n+i (910), que, neste exemplo, é a enunciação “the cheapest” (as mais baratas), o sistema calcula (912) a estrutura de frase para a enunciação LUi (914) usando as técnicas descritas acima com referência à etapa 522 (Figura 5), de acordo com algumas implementações. Como mencionado acima, uma enunciação do usuário, às vezes, possui sentidos de palavras que são melhor entendidos no contexto de enunciações anteriores. Com base na estrutura da frase (914), o sistema identifica (916) candidatos para coesão lexical na enunciação L/n+i (910), de acordo com algumas implementações. Neste exemplo, o sistema identifica um candidato “cheapest” (mais barato) (918) para a análise de coesão. Com base no um ou mais candidatos de coesão identificados (918) e no conjunto de centros de conversão regressivos (904), o sistema calcula (920) um conjunto de centros de conversação prospectivos (922) de acordo com algumas implementações. Para o exemplo ilustrado, o sistema calcula o atributo de dados semanticamente relacionado (por exemplo, sale_price) correspondendo aos
Petição 870190054547, de 13/06/2019, pág. 74/227
62/108 candidatos de coesão lexical (por exemplo, “mais caro” ou “mais barato”), substituindo atributos numéricos relevantes, enquanto continua o restante do contexto a partir da enunciação Un (904), de acordo com algumas implementações.
[0129] Em algumas implementações, o sistema identifica sentidos de palavras de atributo empregando o modelo Word2vec® contendo representações vetoriais aprendidas de grandes corpus de texto, calculando vetores de palavras usando uma rede neural recorrente. Em algumas implementações, o parentesco semântico Srei entre uma palavra w/ em uma dada enunciação e um atributo de dados dj, é o valor máximo de uma pontuação calculada como se segue:
cos(vw·,-, ΐγ/, j + (1 — λ) — ~ ~ ~ (í)
Na fórmula (1), dist(S/,m, Sj,n) é a distância de Wu-Palmer entre os dois sentidos Si,m, Sj,n. V vdj são as representações em vetor de wi e esse dj, respectivamente, λ é um fator de ponderação aplicado a uma distância de cosseno em pares entre os vetores.
[0130]O modelo Word2vec® é usado aqui somente como um exemplo. Uma série de outros modelos de redes neurais pode ser usada para identificar sentidos de palavras, como o GloVe® da Universidade de Stanford. Algumas bibliotecas, como o GenSim® e Deeplearning4j®, oferecem uma escolha de modelos de representação vetorial de palavras diferentes em um único pacote.
[0131] Em algumas implementações, o sistema não somente calcula o parentesco semântico entre os termos e atributos de dados, mas também calcula o tipo de função analítica associada a cada termo. Por exemplo, o sistema realiza as etapas adicionais para as consultas “show me the cheapest houses near Ballard” (mostre-me as casas mais baratas perto de Ballard) ou “where are the mansions in South Lake Union? (onde ficam as mansões no South Lake Union?). O sistema considera as definições de dicionário correspondentes como aspectos adicionais para esses vetores de palavras, e verifica se as definições contêm adjetivos
Petição 870190054547, de 13/06/2019, pág. 75/227
63/108 quantitativos como “menos”, “mais”, “baixo”, “alto” usando um etiquetador POS, de acordo com algumas implementações. O sistema então mapeia funções analíticas apropriadas para esses adjetivos, de acordo com algumas implementações. A Figura 9B ilustra um exemplo em que a expressão “mais caro” é mapeada para os N primeiros (preço de venda). A Figura 9C ilustra outro exemplo em que o termo “mais barato” é mapeado para os N últimos (preço de venda). A Figura 9D, similarmente, ilustra uma visualização (940) em que o termo “deadliest” (mais mortais) é mapeado para os N primeiros valores do atributo “fatalidades”) (942).
[0132] Referindo-se novamente à Figura 9A, para o exemplo em execução, o sistema calcula o conjunto de centros de conversação prospectivos (922) como sendo {the cheapest, houses, Queen Anne} (as mais baratas, casas, Queen Anne), de acordo com algumas implementações. Com base neste conjunto, o sistema realiza etapas necessárias para refinar a visualização atual na etapa 924 para gerar uma visualização de atualização (926), de acordo com algumas implementações. Para este exemplo, o sistema mapeia “cheapest” (mais baratas) para os N últimos (sale_price), e refina a visualização atual por meio da aplicação de um filtro numérico no preço das casas. A Figura 9C mostra uma versão ampliada da visualização 926. Como mostra a Figura 9C, a enunciação “the cheapest” (as mais baratas) resulta no sistema mostrando uma visualização de “Past Home Sales Seattle” (Vendas de Casas Passadas - Seattle) (926), com o 10% últimos de LAST_SALE_PRICE (932) em Queen Anne (930), de acordo com algumas implementações.
[0133]A Figura 10A é um diagrama ilustrando a aplicação de princípios da pragmática para enunciações de reparo de acordo com algumas implementações. No decorrer de uma conversação, é comum que os usuários corrijam ou esclareçam uma enunciação anterior. Em algumas implementações, o sistema oferece suporte ao uso de enunciações de reparo acompanhantes para modificar ou “reparar” uma
Petição 870190054547, de 13/06/2019, pág. 76/227
64/108 enunciação potencialmente ambígua ou modificar o comportamento padrão de como os resultados são apresentados ao usuário. Por exemplo, para atualizar o comportamento padrão do sistema, tal como realçar para seleção, um usuário pode usar enunciações como “no, filter instead” (não, filtrar em vez disso). Como outro exemplo, para atualizar atributos de dados, um usuário pode usar enunciações como “get rid of condo” (livrar-se de condomínios) ou “change from condo to townhomes” (trocar de condomínio para casas na cidade), como mostra a Figura 7.
[0134] A Figura 10A ilustra como uma enunciação “remove condos” (remover condomínios) é entendida no contexto da enunciação anterior “houses in green lake” (casas em green lake). Quando o sistema recebe uma enunciação Un (1000), que, neste exemplo, é a enunciação “houses in green lake” (“casas em green lake”), ο sistema calcula centros prospectivos e inicializa centros regresssivos (para a enunciação L/n+i) na etapa 1002, usando a metodologia descrita acima com referência à Figura 5 (etapa 502), de acordo com algumas implementações. Para a enunciação de exemplo, o sistema calcula o conjunto de centros de conversação como sendo {houses, green lake} (casas, green lake). O sistema gera ou atualiza (1006) uma visualização de dados (1008) com base no conjunto calculado de centros de conversação (1004), de acordo com algumas implementações. Em algumas implementações, o sistema aplica filtros ao conjunto de dados com base no conjunto de centros de conversação (1004), e exibe uma visualização de dados (1008). Neste exemplo, o sistema aplica filtros categóricos e espaciais mostrando casas em Green Lake. A Figura 10B mostra uma versão ampliada da visualização 1008. Como ilustrado na Figura 10B, a enunciação “houses in green lake” (casas em green lake) resulta no sistema no sistema mostrando uma visualização de “Past Home Sales - Seattle” (Vendas de Casas Anteriores - Seattle”) em Green Lake (1028).
[0135]Quando o sistema recebe uma enunciação L/n+i (1010), que, neste
Petição 870190054547, de 13/06/2019, pág. 77/227
65/108 exemplo, é a enunciação “remove condos” (remover condomínios), o sistema calcula (1012) a estrutura de frase para a enunciação L/n+i (1010) usando as técnicas descritas acima com referência à etapa 522 (Figura 5), de acordo com algumas implementações. Como mencionado acima, uma enunciação de reparo corrige ou esclarece uma enunciação anterior. Com base na estrutura de frase (1014), o sistema identifica (1016) a enunciação L/n+i (1010) como sendo uma enunciação de reparo e então identifica os termos de reparo relevantes (1018) dentro da enunciação, de acordo com algumas implementações. Neste exemplo, o sistema identifica um termo de reparo “remover” dentro da enunciação “remove condos” (“remover condomínios”). Com base no conjunto de uma ou mais enunciações de reparo e termos de reparo (1018), o sistema calcula (1020) um conjunto de centros de conversação prospectivos (1022), de acordo com algumas implementações. Por exemplo, o sistema identifica centros de conversação e/ou atributos de dados na enunciação anterior que se relacionaram ao um ou mais termos de reparo identificados, de acordo com algumas implementações. Em algumas implementações, como ilustrado na Figura 10A, o sistema repara ou realiza a desambiguação entre os centros de conversação com base nos termos de reparo (1018). O conjunto de centros de conversação prospectivos (1022), para este exemplo, é o conjunto {houses not including condos, green lake} (não incluindo condomínios, green lake). Com base neste conjunto, o sistema realiza etapas necessárias (1024) para atualizar os resultados a partir da visualização anterior, de acordo com algumas implementações. Para este exemplo, o sistema filtra condomínios para mostrar a visualização em 1026. A Figura 10C mostra uma versão ampliada da visualização 1026. Como ilustrado na Figura 10C, a enunciação “remove condos” (remover condomínios) resulta no sistema ilustrando uma visualização de “Past Home Sales - Seattle” (Vendas de Casas Anteriores - Seattle”) em Green Lake (1028), filtrando HOME_TYPE == Condo/Coop (1030).
Petição 870190054547, de 13/06/2019, pág. 78/227
66/108 [0136]A Figura 11A é um diagrama ilustrando a aplicação de princípios da pragmática para gerenciar respostas e realimentação de acordo com algumas implementações. Uma estrutura geral para a aplicação dos princípios da pragmática para analíticas visuais é primeiramente descrita aqui para oferecer contexto. A estrutura utiliza e estende um modelo geralmente usado para estrutura do discurso chamado de centralização conversacional, de acordo com algumas implementações. Neste modelo, as enunciações são divididas em segmentos de discurso constituintes, incorporando relações que podem ser válidas entre dois segmentos. Um centro refere-se às entidades servindo para vincular esta eloculação a outras enunciações no discurso. Considere um segmento de discurso DS com enunciações L/i, Um. Cada enunciação Un (1 < n < m) no DS é atribuído a um conjunto de centros prospectivos, Cf (Un, DS) referindo-se ao foco atual da conversação; cada outra enunciação que não a enunciação inicial do segmento é atribuída a um conjunto de centros regressivos, Cb (Un, DS). O conjunto de centros regressivos de uma nova enunciação L/n+i é Cb(Un+i, DS), que é igual aos centros prospectivos de Un (isto é, Cf (Un, DS)). No contexto de conversões analíticas visuais, os centros prospectivos e regressivos incluem atributos de dados e valores, propriedades visuais e ações analíticas (por exemplo, filtrar, realçar).
[0137] Dada uma enunciação Un, um sistema implementando esta estrutura responde executando uma série de funções analíticas derivadas dos centros prospectivos Cf(Un, DS). Uma função analítica F(X, op, v) consiste de uma variável X (que pode ser um atributo ou uma propriedade de visualização), um operador op, e um valor v (geralmente uma constante). Por exemplo, quando o usuário diz “measles in the uk”, o sistema cria duas funções, a saber, F_CAT (diseases, ==, measles) e F_CAT(country, ==, uk). Quando o usuário fornece uma nova enunciação L/n+i, o sistema primeiro cria um conjunto de centros temporários Ctemp(Un+i, DS) a partir de L/n+i sem considerar nenhum contexto anterior. O sistema
Petição 870190054547, de 13/06/2019, pág. 79/227
67/108 então aplica um conjunto de regras para criar um conjunto de centros prospectivos, Cf (Un+i, DS) com base em algumas operações definidas entre Cb (Un+i,DS) e Ctemp (Un+i, DS). Os centros prospectivos são então usados para responder à enunciação do usuário de acordo com algumas implementações.
[0138] Para suportar uma conversação, as visualizações apresentadas pelo sistema fornecem respostas coesivas e relevantes a várias enunciações. Algumas vezes, o sistema responde alterando a codificação visual das visualizações existentes, enquanto que, em outros casos, o sistema cria um novo gráfico para suportar a conversação analítica visual de forma mais eficaz. Além das respostas de visualização apropriadas, o sistema ajuda o usuário a entender como o sistema interpretou uma enunciação produzindo realimentação apropriada, e permite que o usuário retifique a interpretação através de alguns controles de interface, à medida que necessário. Em um painel de instrumentos tradicional, os usuários interagem selecionando itens ou atributos em uma visualização que são realçados para fornecer realimentação visual imediata. Simultaneamente, outros gráficos são atualizados realçando ou filtrando os itens. Em uma interface de linguagem natural, entretanto, em vez de fazer uma seleção explícita por mouse/teclado, o usuário menciona diferentes atributos e valores, fazendo disso uma tarefa não-trivial de decidir como cada vista dentro de um painel de instrumentos deverá responder à enunciação. Outra complicação surge quando o sistema precisa suportar múltiplas visualizações.
[0139] A Figura 11A mostra uma metodologia para gerar respostas de acordo com algumas implementações. Para decidir como as vistas (V) em um painel de instrumentos deverão responder à enunciação, um sistema de acordo com algumas implementações procede da seguinte forma. O sistema calcula um conjunto de centros de conversação prospectivos (1100) Q(L/n+i) correspondendo à enunciação Un+\ com base nos centros de conversação de uma enunciação anterior Un+i e em
Petição 870190054547, de 13/06/2019, pág. 80/227
68/108 um conjunto de centros de conversação temporários calculados usando somente o contexto/enunciação atual. O sistema cria (1102) uma lista de todos os atributos de dados (1104). Em seguida, o sistema determina (1106), por exemplo, invocando um gerenciado de visualização, se qualquer uma das visualizações existentes codifica um respectivo atributo na lista de atributos de dados (1104). Em seguida, o sistema determina (1118), se uma visualização (chamada aqui algumas vezes de vista) codifica diretamente (por exemplo, sem usar quaisquer funções agregadas, como contar ou média) o respectivo atributo como suas dimensões (por exemplo, como um aspecto da visualização). Caso seja constatado que o atributo é codificado por uma visualização existente V (isto é, a condição verificada em 1118 é verdadeira/sim), o sistema realça (1122) marcas relacionadas a critérios correspondendo ao respectivo atributo para um painel de instrumentos atualizado (1124). Se o sistema, por outro lado, determinar que uma visualização selecionada (ilustrada como a visualização V) não codifica diretamente o respectivo atributo, o sistema filtra (1120) os resultados que não correspondem a critérios para um painel de instrumentos atualizado (1124), de acordo com algumas implementações. Este é tipicamente o caso quando um gráfico secundário aplica transformações de dados adicionais no conjunto de resultados (por exemplo, usando um gráfico de linhas ou gráfico de barras). Em algumas de tais implementações, o sistema adicionalmente realça um ou mais resultados que casam com critérios correspondendo ao respectivo atributo para o painel de instrumentos atualizado (1124).
[0140] A Figura 11B é um exemplo de visualização (1170) que adicionalmente ilustra a metodologia apresentada na Figura 11 A, de acordo com algumas implementações. O sistema realça os itens que correspondem aos critérios “measles in the uk” (sarampo no Reino Unido) no gráfico de mapa (1172). O sistema também realça a série (1176) no gráfico de linha (1174), e realça a barra (1180) no gráfico de barras (1178) representando “measles” (sarampo). No entanto, o gráfico
Petição 870190054547, de 13/06/2019, pág. 81/227
69/108 de barras (1182) no impacto não pode realçar nenhuma marca, pois ele não codifica nenhum atributo na lista de atributos (por exemplo, lista {Xi,X2, Xm} (1104)). Portanto, 0 sistema filtra os resultados que não correspondem aos critérios “measles in the uk” (sarampo no Reino Unido) e atualiza 0 gráfico de maneira correspondente. Nota-se que os usuários podem alterar 0 comportamento padrão expressando explicitamente a escolha quanto a se irá filtrar vs. realçar (por exemplo, “excluir”, ’’remover”, “somente filtrar”).
[0141] Durante 0 fluxo de análise visual, pode haver situações em que a visualização existente não pode atender às necessidades de informação crescentes do usuário. Este cenário podería surgir, por exemplo, quando um atributo de dados específico não pode ser codificado de maneira eficaz na visualização existente (por exemplo, valores de tempo em um mapa), justificando a necessidade de criar uma nova visualização em resposta. Tirando inspiração de um trabalho que conecta visualização com especificação de linguagem, 0 sistema suporta a criação de diferentes tipos de visualizações (por exemplo, gráfico de barras, gráfico de linhas, gráfico de mapa e gráfico de dispersão), de acordo com algumas implementações.
[0142]A Figura 11C mostra como um painel de instrumentos é construído progressivamente com base nas enunciações de entrada. O sistema gera a visualização 1140 em resposta à enunciação “average price by neighborhood” (“preço médio por vizinhança”). Quando 0 usuário fornece uma próxima enunciação “average price over time” (preço médio ao longo do tempo), 0 sistema responde gerando um gráfico de linhas (1152) na visualização (1150) que mostra a progressão temporal do preço médio. Agora, se 0 usuário, em seguida, fornecer uma enunciação “by home type” (por tipo de casa), 0 sistema aperfeiçoa 0 gráfico de linhas (1152) com linhas (1162) correspondendo aos diferentes tipos de casas na visualização (1160).
[0143] Referindo-se novamente à Figura 11 A, 0 algoritmo subjacente para
Petição 870190054547, de 13/06/2019, pág. 82/227
70/108 criar ou alterar uma visualização existente funciona da seguinte forma. Primeiro, o sistema determina (1106) se a criação de uma nova visualização ou alteração de uma existente é necessária. O sistema analisa os atributos especificados nos centros prospectivos Cf (Un+i) (1100), e busca por qualquer visualização atual que codifique essas propriedades de dados. Se não houver correspondência com a especificação das visualizações existentes, ilustrado como a seta “Não” próxima ao bloco de decisão 1106, o sistema gera uma nova especificação correspondente consistindo de atributos e tipos de agregação. Na Figura 11 A, isto é ilustrado pela etapa 1108, que decide o tipo de gráfico (por exemplo, um gráfico de barras, um gráfico e mapas, ou gráfico de dispersão) usando um algoritmo, de acordo com algumas implementações. Em algumas de tais implementações, o sistema emprega um algoritmo de apresentação automático para decidir o tipo de gráfico gerado com base nesta especificação. Em algumas de tais implementações, o sistema usa uma versão simplificada do algoritmo de apresentação automática descrito em Show me: Automatic presentation for visual analysis, de autoria de J. Mackinlay, P. Hanrahan, e C. Stole, o qual é incorporado junto ao presente para fins de referência. Uma vez que o tipo de gráfico (1110) seja decidido, o sistema gera (1112) o tipo de gráfico para obter um gráfico gerado (1114). O sistema então posiciona o novo gráfico (1114), de acordo com algumas implementações. Em algumas de tais implementações, o sistema usa um algoritmo de disposição baseado em grade bidimensional, coordenando automaticamente a apresentação do novo gráfico (1114) com outras vistas da visualização. O painel de instrumentos atualizado (1124) responde às enunciações subsquentes através de ações como realçar ou filtrar.
[0144] Nota-se ainda que, embora não ilustrado na Figura 11 A, o sistema repete pelo menos as etapas 1106, 1118, 1120, 1122, 1108, 1112 e 1116 para cada atributo de dados na lista de atributos de dados (1104), de acordo com algumas implementações.
Petição 870190054547, de 13/06/2019, pág. 83/227
71/108 [0145]A Figura 12A ilustra um conjunto de widgets gerados para gerenciar ambiguidade em uma consulta do usuário de acordo com algumas implementações. Um desafio para os sistemas de compreensão de linguagem natural que suportam diálogo interativo é determinar a intenção da enunciação. Em algumas implementações, o sistema resolve automaticamente várias formas de ambiguidades sintáticas, lexicais e semânticas. Essas resoluções são expressas na forma de widgets e realimentação para ajudar o usuário a entender a intenção do sistema e a origem de como a enunciação foi interpretada. Ao manipular esses widgets e visualizar a realimentação de quais resultados são ilustrados na visualização, o usuário pode, por exemplo, instanciar uma enunciação de reparo acompanhante para sobrepor ou esclarecer as decisões do sistema tomadas.
[0146] Em algumas implementações, o sistema identifica um ou mais widgets a partir das funções analíticas derivadas de uma enunciação. Em algumas de tais implementações, o sistema organiza e apresenta os widgets de uma maneira intuitiva de modo que o usuário possa entender como o sistema interpreta sua enunciação e subsequentemente modificar a interpretação usando esses widgets. Para esse fim, o sistema assume a enunciação original e ordena os widgets na mesma sequência que os termos de consulta correspondentes. Em algumas de tais implementações, o sistema consegue realizar isto utilizando uma biblioteca, tal como Sparklificator®, que facilita a colocação e visualização em escala de palavra pequena dentro do texto de uma maneira compacta. Além disso, algumas implementações oferecem um conjunto de interfaces aos usuários, incluindo a capacidade de manipular e/ou remover um widget, modificar a consulta, e resolver consultas ambíguas.
[0147]A Figura 12A mostra como o sistema apresenta os widgets para a enunciação “condo near Ballard under 1.2M” (“condomínio próximo a Ballard abaixo de 1.2M”, de acordo com algumas implementações. Neste exemplo, o primeiro termo
Petição 870190054547, de 13/06/2019, pág. 84/227
72/108 “condo” (condomínio) foi resolvido para o widget representando o critério “HOME_TYPE equals Condo/coop” (1202). Em seguida, o segundo widget transmite a distância difusa representada por “near Ballard” (1204). Uma vez que “under 1,2M” não menciona explicitamente nenhum atributo, o sistema determina se o valor 1200000 está dentro do intervalo de valores mínimos e máximos de qualquer atributo numérico nos dados. Se tal atributo existir (LAST_SALE_PRICE neste caso), o sistema comunica isso ao usuário (através do widget 1206), e então permite que ele altere o atributo usando o menu suspenso (1208).
[0148]Além de lidar com a ambiguidade, em algumas implementações, o sistema também oferece realimentação e dicas úteis para modificar o texto, quando o sistema fracassa em entender completamente a consulta. Por exemplo, se o sistema não conseguir analisar com êxito a dada enunciação, o sistema primeiro tenta corrigir automaticamente os termos grafados incorretamente comparando os símbolos com os atributos, valores de células e palavras-chaves relacionadas no conjunto de dados atual utilizando correlação de sequência difusa. Quando o usuário forma uma consulta que é reconhecida parcialmente, o sistema poda os termos não reconhecidos da árvore de análise correspondente, e então mostra os resultados com base nos símbolos que são entendidos. A Figura 12B mostra diferentes exemplos de situações e a realimentação correspondente gerada pelo sistema, de acordo com algumas implementações.
[0149]As Figuras 13A a 13J apresentam um fluxograma ilustrando um método 1300 para utilizar (1302) linguagem natural para análise visual de um conjunto de dados aplicando princípios da pragmática. As etapas do método 1300 podem ser realizadas por um computador (por exemplo, um dispositivo de computação 200). Em algumas implementações, o computador inclui (1304) um meio de exibição, um ou mais processadores, e uma memória. As Figuras 13A a 13J correspondem a instruções armazenadas em uma memória de computador ou meio
Petição 870190054547, de 13/06/2019, pág. 85/227
73/108 de armazenamento legível por computador (por exemplo, a memória 206 do dispositivo de computação 200). A memória armazena (1306) um ou mais programas configurados para execução pelo um ou mais processadores (por exemplo, o(s) processador(es) 202). Por exemplo, as operações do método 1300 são realizadas, pelo menos em parte, por um módulo de geração de visualização de dados 234 e/ou por um módulo de processamento de linguagem 238.
[0150] Em algumas implementações, o dispositivo exibe (1308) uma visualização de dados com base em um conjunto de dados recuperado a partir de uma base de dados usando um primeiro conjunto de uma ou mais consultas. Por exemplo, referindo-se à Figura 1, um usuário pode associar um ou mais campos de dados a partir de uma região de informações de esquema 110 com uma ou mais prateleiras (por exemplo, a prateleira de colunas 120 e a prateleira de fileiras 122, Figura 1) na região de visualização de dados 112. Em resposta ao recebimento das associações do usuário, em algumas implementações, o computador recupera dados para os campos de dados a partir do conjunto de dados usando um conjunto de uma ou mais consultas, e então exibe uma visualização de dados (por exemplo, a visualização de dados 408) na região de visualização de dados 112 que corresponde às entradas de usuário recebidas. A exibição das visualizações de dados é discutida em mais detalhes anteriormente com referência à Figura 1.
[0151]O computador recebe (1310) uma primeira entrada do usuário para especificar um primeiro comando de linguagem natural relacionado à visualização de dados exibida. Em algumas implementações, a entrada do usuário é recebida como entrada de texto (por exemplo, por meio do teclado 216 ou por meio da tela sensível ao toque 214) a partir de um usuário na região de entrada de dados no meio de exibição em proximidade à visualização de dados exibida. Em algumas implementações, a entrada do usuário é recebida como um comando de voz usando um microfone (por exemplo, um dispositivo de entrada de áudio 220) acoplado ao
Petição 870190054547, de 13/06/2019, pág. 86/227
74/108 computador. Por exemplo, referindo-se à Figura 4A, a visualização de dados exibida 408 diz respeito a sarampo no Reino Unido. O recebimento de entradas (por exemplo, comandos/consultas) a partir de um usuário é discutido em mais detalhes acima com referência à Figura 1.
[0152] Com base na visualização de dados exibida, o computador extrai (1312) um primeiro conjunto de uma ou mais frases analíticas independentes a partir do primeiro comando em linguagem natural. Por exemplo, referindo-se à Figura 4A, o primeiro comando de linguagem natural recebido pelo computador lê “measles in the uk” (sarampo no Reino Unido). A visualização de dados exibida antes de receber o primeiro comando de linguagem natural diz respeito a epidemias de doenças em todo o mundo. Em algumas implementações, o computador extrai “measles” (sarampo) e “in the uk” (no Reino Unido) do primeiro comando de linguagem natural, pois essas frases analíticas se relacionam à visualização de dados exibida. Quando as frases possuem referência direta aos campos de dados na visualização de dados exibida, a extração (1312) é direta: coleta todas as frases que são referências diretas aos campos de dados. Em algumas implementações, o computador separa o radical ou remove “stopwords (palavras irrelevantes), palavras de enchimento, ou qualquer conjunto de palavras da consulta recebida, e extrai (1312) todas as outras frases do primeiro comando de linguagem natural, uma vez que podem estar relacionadas à visualização de dados exibida. Algumas implementações usam esta abordagem quando as frases no comando de linguagem natural possuem alguma referência indireta aos campos de dados na visualização exibida.
[0153]O módulo de processamento de linguagem 238 calcula (1314) um primeiro conjunto de um ou mais centros de conversação associados ao primeiro comando de linguagem natural baseado no primeiro conjunto de uma ou mais frases analíticas, de acordo com algumas implementações. Uma estrutura baseada em um modelo de interação conversacional é descrita acima com referência às Figuras 3A,
Petição 870190054547, de 13/06/2019, pág. 87/227
75/108 e 11. Um centro se refere às entidades que servem para vincular essa enunciação (algumas vezes chamada aqui de comando de linguagem natural) a outras enunciações em um discurso (uma série de enunciações). Os centros de conversação incluem atributos de dados e valores, propriedades visuais e ações analíticas. Calcular os centros de conversação com base nas frases analíticas inclui mapear as frases analíticas para um ou mais centros de conversação após transformações e análises necessárias. Para o exemplo de enunciação measles in the uk (sarampo no Reino Unido), o módulo de processamento de linguagem 238 processa a frase measles (sarampo) e analisa a frase para inferir que ela se refere ao atributo de dados “DISEASE” (doença), como ilustrado na Figura 4D descrita acima.
[0154]Subsequentemente, o módulo de processamento de linguagem 238 calcula (1316) um primeiro conjunto de funções analíticas associadas ao primeiro conjunto de um ou mais centros de conversação, desse modo criando um primeiro conjunto de uma ou mais frases funcionais, de acordo com algumas implementações. Como descrito acima com referência às Figuras 3A, 5 e 11, cada uma das funções analíticas consiste de uma variável, um operador e um valor, de acordo com algumas implementações. Em algumas implementações, para o exemplo de enunciação “measles in the uk” (sarampo no Reino Unido), o módulo de processamento de linguagem 238 cria duas funções, a saber, F_CAT (diseases, ==, measles) e F_CAT(country, ==, uk). Em algumas implementações, como outro exemplo, para uma enunciação “condos under 600K” (condomínios abaixo de 600 mil), o módulo de processamento de linguagem 238 cria duas funções F_CAT(homeType, == condo) e F_NUMERIC(price, <, 600000). Em ambos esses exemplos, o módulo de processamento de linguagem 238 busca um ou mais atributos relacionados à visualização de dados exibida que corresponde ao primeiro conjunto de um ou mais centros de conversação para identificar um primeiro
Petição 870190054547, de 13/06/2019, pág. 88/227
76/108 conjunto de atributos de dados, de acordo com algumas implementações. O módulo de processamento de linguagem 238 também identifica, ao examinar o primeiro conjunto de um ou mais centros de conversação, um primeiro conjunto de operadores (por exemplo, operador ==, operador <) e um primeiro conjunto de valores correspondendo ao primeiro conjunto de atributos de dados, de acordo com algumas implementações. Com o primeiro conjunto de variáveis (atributos), e o primeiro conjunto correspondente de operadores e primeiro conjunto de valores, o módulo de processamento de linguagem 238 constrói o primeiro conjunto de uma ou mais funções analíticas, criando assim o primeiro conjunto de uma ou mais frases funcionais.
[0155] Em algumas implementações, o computador atualiza (1318) a visualização de dados com base em um primeiro conjunto de uma ou mais frases funcionais calculadas na etapa 1316. Como mostra a Figura 131, em algumas implementações, o computador consulta novamente (1372) a base de dados usando um segundo conjunto de uma ou mais consultas com base no primeiro conjunto de uma ou mais frases funcionais, desse modo recuperando um segundo conjunto de dados. Em alguns casos, a repetição da consulta à base de dados é realizada localmente no dispositivo de computação usando dados armazenados ou em cache no dispositivo de computação. Por exemplo, a repetição da consulta é normalmente realizada localmente quando o comando de linguagem natural especifica um ou mais filtros. Em algumas de tais implementações, o computador atualiza (1374), a visualização de dados com base no segundo conjunto de dados. Em algumas implementações, o computador adicionalmente cria e exibe (1376) uma nova visualização de dados (por exemplo, sem atualizar a uma ou mais visualizações de dados existentes) usando o segundo conjunto de dados.
[0156] Referindo-se agora novamente à Figura 13B, o computador recebe (1320) uma segunda entrada do usuário para especificar um segundo comando de
Petição 870190054547, de 13/06/2019, pág. 89/227
77/108 linguagem natural relacionado à visualização de dados exibida. Em algumas implementações, a entrada do usuário é recebida como entrada de texto (por exemplo, por meio do teclado 216 ou por meio da tela sensível ao toque 214) a partir de um usuário na região de entrada de dados no meio de exibição em proximidade à visualização de dados exibida. Em algumas implementações, a entrada do usuário é recebida como um comando de voz usando um microfone (por exemplo, um dispositivo de entrada de áudio 220) acoplado ao computador. Por exemplo, referindo-se à Figura 4A, a visualização de dados exibida 408 refere-se a sarampo no Reino Unido, quando o computador recebe a segunda entrada do usuário “show me the orange spike” (mostre-me o pico laranja). O recebimento de entradas (por exemplo, comandos/consultas) a partir de um usuário é discutido em mais detalhes acima com referência à Figura 1.
[0157] Com base na visualização de dados exibida, o computador extrai (1322) um segundo conjunto de uma ou mais frases analíticas independentes a partir do segundo comando de linguagem natural. Por exemplo, referindo-se à Figura 4A, o segundo comando de linguagem natural (410) recebido pelo computador lê “show me the orange spike” (mostre-me o pico laranja). Em algumas implementações, para este exemplo, o computador extrai “the orange spike” (o pico laranja) do segundo comando de linguagem natural, pois essas frases analíticas relacionam-se à visualização de dados exibida (que se refere a sarampo no Reino Unido, e tem um pico laranja, uma propriedade de visualização). Quando as frases possuem referência direta aos campos de dados na visualização de dados exibida, a extração (1322) é direta: coleta todas as frases que são referências diretas aos campos de dados. Em algumas implementações, o computador separa o radical ou remove “stopwords (palavras irrelevantes), palavras de enchimento, ou qualquer conjunto de palavras da consulta recebida, e extrai (1322) todas as outras frases do segundo comando de linguagem natural, uma vez que podem estar relacionadas à
Petição 870190054547, de 13/06/2019, pág. 90/227
78/108 visualização de dados exibida. Algumas implementações usam esta abordagem quando as frases no comando de linguagem natural possuem alguma referência indireta aos campos de dados na visualização exibida.
[0158]O módulo de processamento de linguagem (1324) calcula um conjunto temporário de um ou mais centros de conversação associados ao segundo comando de linguagem natural baseado no segundo conjunto de uma ou mais frases analíticas, de acordo com algumas implementações.
[0159]O módulo de processamento de linguagem (1326) deriva um segundo conjunto de um ou mais centros de conversação a partir do primeiro conjunto de um ou mais centros de conversação e do conjunto temporário de um ou mais centros de conversação usando uma ou mais regras de transição, de acordo com algumas implementações. Em algumas de tais implementações (1332), cada um dos centros de conversação do primeiro conjunto de um ou mais centros de conversação, do conjunto temporário de um ou mais centros de conversação, e do segundo conjunto de um ou mais centros de conversação compreende um valor para uma variável (por exemplo, um atributo de dados ou uma propriedade de visualização). Em algumas de tais implementações, o módulo de processamento de linguagem usa as regras de transição realizando uma sequência de operações(como mostra a Figura 13C) compreendendo: determinar (1334) se uma primeira variável está incluída no primeiro conjunto de um ou mais centros de conversação; determinar (1336) se a primeira variável está incluída no conjunto temporário de um ou mais centros de conversação; determinar (1338) uma respectiva regra de transição da uma ou mais regras de transição a ser aplicada com base em se a primeira variável está incluída no primeiro conjunto de um ou mais centros de conversação e/ou no conjunto temporário de um ou mais centros de conversação; e aplicar (1339) a respectiva regra de transição.
[0160] Em algumas implementações, como mostra a Figura 13D, a uma ou
Petição 870190054547, de 13/06/2019, pág. 91/227
79/108 mais regras de transição usadas pelo módulo de processamento de linguagem 238 compreendem (1340) compreendem uma regra CONTINUAR para incluir cada centro de conversação no primeiro conjunto de um ou mais centros de conversação no segundo conjunto de um ou mais centros de conversação, e adicionar um ou mais centros de conversação do conjunto temporário de um ou mais centros de conversação ao segundo conjunto de um ou mais centros de conversação. Em algumas de tais implementações, aplicar (1342) a respectiva regra de transição compreende: de acordo com uma determinação de que (i) a primeira variável está incluída no conjunto temporário de um ou mais centros de conversação, e (ii) de que a primeira variável não está incluída no primeiro conjunto de um ou mais centros de conversação, aplicar (1344) a regra CONTINUAR para incluir a primeira variável no segundo conjunto de um ou mais centros de conversação.
[0161] Em algumas implementações, como ilustrado na Figura 13E, a uma ou mais regras de transição usadas pelo módulo de processamento de linguagem 238 compreendem (1346) compreendem uma regra RETER para reter cada centro de conversação no primeiro conjunto de um ou mais centros de conversação no segundo conjunto de um ou mais centros de conversação sem adicionar nenhum centro de conversação do conjunto temporário de um ou mais centros de conversação ao segundo conjunto de um ou mais centros de conversação. Em algumas de tais implementações, aplicar (1348) a respectiva regra de transição compreende: de acordo com uma determinação de que (i) a primeira variável está incluída no primeiro conjunto de um ou mais centros de conversação, e (ii) de que a primeira variável não está incluída no conjunto temporário de um ou mais centros de conversação, aplicar (1350) a regra RETER para incluir cada centro de conversação no primeiro conjunto de um ou mais centros de conversação no segundo conjunto de um ou mais centros de conversação.
[0162] Em algumas implementações, como mostra a Figura 13F, a uma ou
Petição 870190054547, de 13/06/2019, pág. 92/227
80/108 mais regras de transição usadas pelo módulo de processamento de linguagem 238 compreendem (1352) uma regra DESLOCAR para incluir cada centro de conversação no primeiro conjunto de um ou mais centros de conversação no segundo conjunto de um ou mais centros de conversação, e substituir um ou mais centros de conversação no segundo conjunto de um ou mais centros de conversação por centros de conversação no conjunto temporário de um ou mais centros de conversação. Em algumas de tais implementações, aplicar (1354) a respectiva regra de transição compreende: de acordo com uma determinação (1356) de que (i) a primeira variável está incluída no conjunto temporário de um ou mais centros de conversação, e (ii) de que a primeira variável não está incluída no primeiro conjunto de um ou mais centros de conversação, o módulo de processamento de linguagem 228 realiza uma sequência de operações para: determinar (1358) se o valor da primeira variável no primeiro conjunto de um ou mais centros de conversação é diferente do valor da primeira variável no conjunto temporário de um ou mais centros de conversação; e, de acordo com uma determinação de que os valores da primeira variável são diferentes, aplicar (1360) a regra DESLOCAR para incluir cada centro de conversação no primeiro conjunto de um ou mais centros de conversação no segundo conjunto de um ou mais centros de conversação, e substituir o valor para a primeira variável no segundo conjunto de um ou mais centros de conversação pelo valor para a primeira variável no conjunto temporário de um ou mais centros de conversação. Em algumas de tais implementações, aplicar (1354) a respectiva regra de transição adicionalmente compreende, como mostra a Figura 13G, determinar (1362) se um widget correspondendo à primeira variável foi removido pelo usuário, e de acordo com a determinação de que o widget foi removido, aplicar (1364) a regra DESLOCAR para incluir cada centro de conversação no primeiro conjunto de um ou mais centros de conversação no segundo conjunto de um ou mais centros de conversação, e
Petição 870190054547, de 13/06/2019, pág. 93/227
81/108 substituir o valor para a primeira variável no segundo conjunto de um ou mais centros de conversação por um novo valor (pro exemplo, um valor máximo, um valor de superconjunto) que inclui o valor da primeira variável no primeiro conjunto de um ou mais centros de conversação.
[0163] Referindo-se agora novamente à Figura 13B, o módulo de processamento de linguagem 238 calcula (1328) um segundo conjunto de uma ou mais funções analíticas associadas ao segundo conjunto de um ou mais centros de conversação, dessa forma criando um segundo conjunto de uma ou mais frases funcionais. O módulo de processamento de linguagem 238 realiza esta etapa, usando o segundo conjunto de um ou mais centros de conversação calculados na etapa 1326, de uma maneira similar à etapa 1316 descrita acima.
[0164]O Computador atualiza (1330) a visualização de dados com base no segundo conjunto de uma ou mais frases funcionais, de acordo com algumas implementações. Em algumas implementações, como mostra a Figura 13J, o computador repete a consulta (1378) à base de dados usando um segundo conjunto de uma ou mais consultas com base no primeiro conjunto de uma ou mais frases funcionais, desse modo recuperando um terceiro conjunto de dados; e atualiza (1380) a visualização de dados com base no terceiro conjunto de dados. Adicionalmente, em algumas de tais implementações, o computador cria e exibe (1382) uma nova visualização de dados (por exemplo, sem atualizar a uma ou mais visualizações de dados existentes) usando o terceiro conjunto de dados.
[0165] Em algumas implementações, como mostra a Figura 13H, o computador adicionalmente determina (1366) se o usuário selecionou um conjunto de dados diferente do primeiro conjunto de dados, determina (1368) se o usuário reiniciou a visualização de dados; e, de acordo com uma determinação de que (i) o usuário selecionou um conjunto de dados diferente, ou (ii) usuário reiniciou a visualização de dados, reinicia (1370) cada um do primeiro conjunto de um ou mais
Petição 870190054547, de 13/06/2019, pág. 94/227
82/108 centros de conversação, o conjunto temporário de um ou mais centros de conversação, e o segundo conjunto de um ou mais centros de conversação para um conjunto vazio que não inclui nenhum centro de conversação.
[0166]As Figuras 14A a 14R apresentam um fluxograma ilustrando um método 1400 para usar (1402) linguagem natural para análise visual de um conjunto de dados aplicando princípios da pragmática, inclusive para gerenciar diversas formas de pragmática, de acordo com algumas implementações. As etapas do método 1400 podem ser realizadas por um computador (por exemplo, um dispositivo de computação 200). Em algumas implementações, o computador inclui (1404) um meio de exibição, um ou mais processadores, e uma memória. As Figuras 14A a 14R correspondem a instruções armazenadas em uma memória de computador ou meio de armazenamento legível por computador (por exemplo, a memória 206 do dispositivo de computação 200). A memória armazena (1406) um ou mais programas configurados para execução pelo um ou mais processadores (por exemplo, o(s) processador(es) 202). Por exemplo, as operações do método 1400 são realizadas, pelo menos em parte, por um módulo de geração de visualização de dados 234 e/ou por um módulo de processamento de linguagem 238.
[0167] Em algumas implementações, o dispositivo exibe (1408) uma visualização de dados com base em um conjunto de dados recuperado a partir de uma base de dados usando um primeiro conjunto de uma ou mais consultas. Por exemplo, referindo-se à Figura 1, um usuário pode associar um ou mais campos de dados a partir de uma região de informações de esquema 110 com uma ou mais prateleiras (por exemplo, a prateleira de colunas 120 e a prateleira de fileiras 122, Figura 1) na região de visualização de dados 112. Em resposta ao recebimento das associações do usuário, em algumas implementações, o computador recupera dados para os campos de dados a partir do conjunto de dados usando um conjunto de uma ou mais consultas, e então exibe uma visualização de dados (por exemplo, a
Petição 870190054547, de 13/06/2019, pág. 95/227
83/108 visualização de dados 408) na região de visualização de dados 112 que corresponde às entradas de usuário recebidas. A exibição das visualizações de dados é discutida em mais detalhes anteriormente com referência à Figura 1.
[0168]O computador recebe (1410) uma primeira entrada do usuário para especificar um primeiro comando de linguagem natural relacionado à visualização de dados exibida. Em algumas implementações, a entrada do usuário é recebida como entrada de texto (por exemplo, por meio do teclado 216 ou por meio da tela sensível ao toque 214) a partir de um usuário na região de entrada de dados no meio de exibição em proximidade à visualização de dados exibida. Em algumas implementações, a entrada do usuário é recebida como um comando de voz usando um microfone (por exemplo, um dispositivo de entrada de áudio 220) acoplado ao computador. Por exemplo, referindo-se à Figura 6A, a visualização de dados exibida 608 diz respeito a casas a menos de 1M em Ballard. O recebimento de entradas (por exemplo, comandos/consultas) a partir de um usuário é discutido em mais detalhes acima com referência à Figura 1.
[0169] Com base na visualização de dados exibida, o computador extrai (1412) um primeiro conjunto de uma ou mais frases analíticas independentes a partir do primeiro comando em linguagem natural. Por exemplo, referindo-se à Figura 6A, o primeiro comando de linguagem natura recebido pelo computador lê “houses less than 1M in Ballard” (casas a menos de 1M em Ballard). A visualização de dados exibida antes de receber o primeiro comando de linguagem natural diz respeito a vendas de casas anteriores em Seattle. Em algumas implementações, o computador extrai “houses” (casas) e “less than 1M” (a menos de 1M) e “in Ballard” (em Ballard) do primeiro comando de linguagem natural, pois essas frases analíticas se relacionam à visualização de dados exibida. Quando as frases possuem referência direta aos campos de dados na visualização de dados exibida, a extração (1412) é direta: coleta todas as frases que são referências diretas aos campos de dados. Em
Petição 870190054547, de 13/06/2019, pág. 96/227
84/108 algumas implementações, o computador separa o radical ou remove “stopwords (palavras irrelevantes), palavras de enchimento, ou qualquer conjunto de palavras da consulta recebida, e extrai (1412) todas as outras frases do primeiro comando de linguagem natural, uma vez que podem estar relacionadas à visualização de dados exibida. Algumas implementações usam esta abordagem quando as frases no comando de linguagem natural possuem alguma referência indireta aos campos de dados na visualização exibida.
[0170]0 módulo de processamento de linguagem 238 calcula (1414) um primeiro conjunto de um ou mais centros de conversação associados ao primeiro comando de linguagem natural baseado no primeiro conjunto de uma ou mais frases analíticas, de acordo com algumas implementações. Uma estrutura baseada em um modelo de interação conversacional é descrita acima com referência às Figuras 3A, 5 e 11. Um centro se refere às entidades que servem para vincular essa enunciação (algumas vezes chamada aqui de comando de linguagem natural) a outras enunciações em um discurso (uma série de enunciações) Os centros de conversação incluem atributos de dados e valores, propriedades visuais e ações analíticas. Calcular os centros de conversação com base nas frases analíticas inclui mapear as frases analíticas para um ou mais centros de conversação após transformações e análises necessárias. Para o exemplo de enunciação houses less than 1M in Ballard (casas a menos de 1M em Ballard), o módulo de processamento de linguagem 238 processa a frase less than 1M (a menos de 1M) e analisa a frase para inferir que ela se refere ao atributo de dados LAST_SALE_PRICE, como ilustrado na Figura 6C descrita acima.
[0171]Subsequentemente, o módulo de processamento de linguagem 238 calcula (1416) um primeiro conjunto de funções analíticas associadas ao primeiro conjunto de um ou mais centros de conversação, desse modo criando um primeiro conjunto de uma ou mais frases funcionais, de acordo com algumas
Petição 870190054547, de 13/06/2019, pág. 97/227
85/108 implementações. Como descrito acima com referência às Figuras 3A, 5 e 11, cada uma das funções analíticas consiste de uma variável, um operador e um valor, de acordo com algumas implementações. Em algumas implementações, para o exemplo de enunciação “houses less than 1M in Ballard”, o módulo de processamento de linguagem 238 cria duas funções, cria quatro funções F_CAT(homeType, == condo), F_CAT(homeType, == townhouse), F_CAT(homeType == single), e F_NUMERIC(price, <, 500000). Neste exemplo, o módulo de processamento de linguagem 238 busca um ou mais atributos relacionados à visualização de dados exibida que corresponde ao primeiro conjunto de um ou mais centros de conversação para identificar um primeiro conjunto de atributos de dados, de acordo com algumas implementações. O módulo de processamento de linguagem 238 também identifica, ao examinar o primeiro conjunto de um ou mais centros de conversação, um primeiro conjunto de operadores (por exemplo, operador ==, operador <) e um primeiro conjunto de valores correspondendo ao primeiro conjunto de atributos de dados, de acordo com algumas implementações. Com o primeiro conjunto de variáveis (atributos), e o primeiro conjunto correspondente de operadores e primeiro conjunto de valores, o módulo de processamento de linguagem 238 constrói o primeiro conjunto de uma ou mais funções analíticas, criando assim o primeiro conjunto de uma ou mais frases funcionais.
[0172] Em algumas implementações, o computador atualiza (1418) a visualização de dados com base em um primeiro conjunto de uma ou mais frases funcionais calculadas na etapa 1416.
[0173] Referindo-se agora à Figura 14B, o computador recebe (1420) uma segunda entrada do usuário para especificar um segundo comando de linguagem natural relacionado à visualização de dados exibida. Em algumas implementações, a entrada do usuário é recebida como entrada de texto (por exemplo, por meio do
Petição 870190054547, de 13/06/2019, pág. 98/227
86/108 teclado 216 ou por meio da tela sensível ao toque 214) a partir de um usuário na região de entrada de dados no meio de exibição em proximidade à visualização de dados exibida. Em algumas implementações, a entrada do usuário é recebida como um comando de voz usando um microfone (por exemplo, um dispositivo de entrada de áudio 220) acoplado ao computador. Por exemplo, referindo-se à Figura 6A, a visualização de dados exibida 608 diz respeito a casas a menos de 1M em Ballard, quando o computador recebe a segunda entrada do usuário “townhomes” (casas na cidade). O recebimento de entradas (por exemplo, comandos/consultas) a partir de um usuário é discutido em mais detalhes acima com referência à Figura 1.
[0174] Com base na visualização de dados exibida, o computador extrai (1422) um segundo conjunto de uma ou mais frases analíticas independentes a partir do segundo comando de linguagem natural. Por exemplo, referindo-se à Figura 6A, o segundo comando de linguagem natural (620) recebido pelo computador lê “townhomes” (casas na cidade). Em algumas implementações, para este exemplo, o computador extrai “townhomes” (casas na cidade) a partir do segundo comando de linguagem natural, uma vez que esta frase analítica se relaciona à visualização de dados exibida (que diz respeito a casas na cidade em Ballard). Quando as frases possuem referência direta aos campos de dados na visualização de dados exibida, a extração (1422) é direta: coleta todas as frases que são referências diretas aos campos de dados. Em algumas implementações, o computador separa o radical ou remove “stopwords (palavras irrelevantes), palavras de enchimento, ou qualquer conjunto de palavras da consulta recebida, e extrai (1422) todas as outras frases do segundo comando de linguagem natural, uma vez que podem estar relacionadas à visualização de dados exibida. Algumas implementações usam esta abordagem quando as frases no comando de linguagem natural possuem alguma referência indireta aos campos de dados na visualização exibida.
Petição 870190054547, de 13/06/2019, pág. 99/227
87/108 [0175]O módulo de processamento de linguagem (1424) calcula um conjunto temporário de um ou mais centros de conversação associados ao segundo comando de linguagem natural baseado no segundo conjunto de uma ou mais frases analíticas, de acordo com algumas implementações.
[0176]O módulo de processamento de linguagem calcula (1426) a coesão entre o primeiro conjunto de uma ou mais frases analíticas e o segundo conjunto de uma ou mais frases analíticas, e deriva um segundo conjunto de um ou mais centros de conversação do primeiro conjunto de um ou mais centros de conversação e do conjunto temporário de um ou mais centros de conversação baseado na coesão, de acordo com algumas implementações. Como mostra a Figura 14C, em algumas implementações, calcular a coesão compreende identificar (1434) uma estrutura de frase do segundo conjunto de uma ou mais frases analíticas. O cálculo da estrutura de frase é descrito acima com referência à Figura 5 (etapas 522 ou 510), e através do exemplo na Figura 6A (etapas 610 e 622), de acordo com algumas implementações. Em algumas implementações, identificar a estrutura da frase compreende analisar (1436) o segundo comando de linguagem natural aplicando uma gramática probabilística (como explicado com referência a 522 ou 51, Figura 5), dessa forma obtendo uma saída analisada. Em algumas implementações, esta etapa adicionalmente compreende deduzir (1438) a estrutura sintática empregando uma API de análise de partes do discurso fornecida por uma biblioteca de ferramentas para processamento de linguagem natural, novamente como descrito acima com referência à Figura 5. Em algumas implementações, a saída analisada é resolvida (1440) pelo módulo de processamento de linguagem para atributos de dados e categóricos correspondentes. Por exemplo, para a enunciação “townhomes” (casas na cidade) (620) na Figura 6A, o módulo de processamento de linguagem resolve o atributo categórico como sendo o tipo de casa. Em algumas implementações, embora não ilustrado, o módulo de processamento de linguagem
Petição 870190054547, de 13/06/2019, pág. 100/227
88/108 resolve a saída analisada para atributos de dados e categóricos correspondentes após a etapa 1442.
[0177]Quando a estrutura de frase é identificada na etapa 1434, o módulo de processamento de linguagem identifica uma ou mais formas das formas pragmáticas com base na estrutura de frase, de acordo com algumas implementações. Subsequentemente, o módulo de processamento de linguagem deriva (1446) o segundo conjunto de um ou mais centros de conversação a partir do primeiro conjunto de um ou mais centros de conversação e do conjunto temporário de um ou mais centros de conversação com base na uma ou mais formas de pragmática identificadas. As Figuras 14D, 14E, 14H e 141 descritas abaixo ilustram como diferentes tipos de formas pragmáticas são identificados e como o segundo conjunto de um ou mais centros de conversação é identificado com base na forma identificada de pragmática.
[0178] Em algumas implementações, o módulo de processamento de linguagem 238 calcula (1430) um segundo conjunto de uma ou mais funções analíticas associadas ao segundo conjunto de um ou mais centros de conversação, dessa forma criando um segundo conjunto de uma ou mais frases funcionais. O módulo de processamento de linguagem 238 realiza esta etapa, usando o segundo conjunto de um ou mais centros de conversação calculados na etapa 1426, de uma maneira similar à etapa 1416 descrita acima.
[0179] Em algumas implementações, como mostra a Figura 14P, o módulo de processamento de linguagem 238 calcula (14.186) o parentesco semântico entre o segundo conjunto de uma ou mais frases analíticas extraídas e um ou mais atributos de dados incluídos na visualização de dados atualizada, e calcula (14.188) funções analíticas associadas ao segundo conjunto de uma ou mais frases analíticas, dessa forma criando o segundo conjunto de uma ou mais frases funcionais, com base no parentesco semântico de um ou mais atributos de dados.
Petição 870190054547, de 13/06/2019, pág. 101/227
89/108
Em algumas implementações, o módulo de processamento de linguagem 238 calcula termos semanticamente relacionados para expressões lexicalmente coesivas. O processo de calcular o parentesco semântico e calcular as funções analíticas com base no parentesco semântico foi descrito acima com referência às Figuras 9A-9D. Em algumas implementações, embora não ilustrado na Figura 14B, calcular o segundo conjunto de uma ou mais funções analíticas e o segundo conjunto de uma ou mais frases funcionais com base no parentesco semântico de atributos de dados é realizado além da (ao invés de como alternativa à) etapa 1430 descrita acima.
[0180] Em algumas implementações, como mostra a Figura 14Q, o módulo de processamento de linguagem 238 calcula o parentesco semântico mediante o treinamento (14.190) de um primeiro modelo de rede neural em um corpus de texto grande, desse modo aprendendo representações vetoriais de palavras. Em algumas de tais implementações (14.192), o primeiro modelo de rede neural compreende o modelo Word2vec®. Em algumas implementações, o módulo de processamento de linguagem 238 calcula (1494) um primeiro vetor de palavra para uma primeira palavra em uma primeira frase no segundo conjunto de uma ou mais frases analíticas usando um segundo modelo de rede neural, o primeiro mapeamento de vetor de palavra mapeando a primeira palavra para as representações vetoriais de palavras aprendidas na etapa 14.190. Em algumas de tais implementações (14.196), o segundo modelo de rede neural compreende o modelo de rede neural recorrente. Em algumas implementações, o módulo de processamento de linguagem calcula (14.198) um segundo vetor de palavra para um primeiro atributo de dados no um ou mais atributos de dados usando o segundo modelo de rede neural, o segundo vetor de palavra mapeando o primeiro atributo de dados para as representações vetoriais de palavras aprendidas na etapa 14.190. Embora não ilustrado na Figura 14Q, o cálculo do primeiro vetor de palavra e do segundo vetor de palavra pode ser
Petição 870190054547, de 13/06/2019, pág. 102/227
90/108 realizado em paralelo pelo módulo de processamento de linguagem 238. Subsequentemente, o módulo de processamento de linguagem calcula (14.200) o parentesco entre o primeiro vetor de palavra e o segundo vetor de palavra usando uma métrica de similaridade, de acordo com algumas implementações. Em algumas de tais implementações (14.202), a métrica de similaridade se baseia pelo menos (i) na distância de Wu-Palmer entre os sentidos de palavra associados ao primeiro vetor de palavra e ao segundo vetor de palavra, (ii) em um fator de ponderação, e (iii) em uma distância de cosseno em pares entre o primeiro vetor de palavra e o segundo vetor de palavra.
[0181] Em algumas implementações, como mostra a Figura 14R, o módulo de processamento de linguagem 238 obtém (14.204) definições de palavra para o segundo conjunto de uma ou mais frases analíticas a partir de um dicionário disponível publicamente, determina (14.206) se as definições de palavra contêm um ou mais adjetivos predefinidos usando uma API de análise morfossintática fornecida por uma biblioteca de ferramentas para processamento de linguagem natural, e, de acordo com a determinação de que as definições de palavra contêm um ou mais adjetivos predefinidos, mapeia o um ou mais adjetivos redefinidos para uma ou mais funções analíticas. Essas operações foram descritas acima com referência à Figura 9B, de acordo com algumas implementações. O módulo de processamento de linguagem 238 calcula o tipo de função analítica para um ou mais termos no segundo conjunto de uma ou mais frases analíticas. Por exemplo, o termo “cheapest” (mais barato) é mapeado para Bottom_N(sale price).
[0182] Referindo-se agora novamente à Figura 14B, o computador atualiza (1432) a visualização de dados com base no segundo conjunto de uma ou mais frases funcionais, de acordo com algumas implementações.
[0183] Cada uma das Figuras 14D, 14E, 14H e 141 mostra as etapas realizadas pelo módulo de processamento de linguagem 238 para lidar com
Petição 870190054547, de 13/06/2019, pág. 103/227
91/108 diferentes tipos de formas pragmáticas identificados com base na estrutura da frase, e de que maneira o segundo conjunto de um ou mais centros de conversação é derivado com base na forma identificada de pragmática, de acordo com algumas implementações.
[0184]A Figura 14D mostra as etapas realizadas pelo módulo de processamento de linguagem 238 para derivar o segundo conjunto de um ou mais centros de conversação para enunciação incompletas, de acordo com algumas implementações. O módulo de processamento de linguagem 238 identifica (1448) a forma pragmática como sendo uma enunciação incompleta determinando se um ou mais elementos linguísticos estão ausentes na estrutura da frase, de acordo com algumas implementações. Em algumas implementações, subsequentemente, o módulo de processamento de linguagem 238 deriva (1450) o segundo conjunto de um ou mais centros de conversação realizando uma sequência de operações (1452) que inclui: determinar (1454) um primeiro subconjunto de centros de conversação no primeiro conjunto de um ou mais centros de conversação, o primeiro subconjunto de centros de conversação correspondendo ao um ou mais elementos linguísticos ausentes na estrutura da frase, e calcular (1456) o segundo conjunto de um ou mais centros de conversação combinando o conjunto temporário de um ou mais centros de conversação com o primeiro subconjunto de centros de conversação. A Figura 6A descrita acima mostra uma implementação que deriva o segundo conjunto de um ou mais centros de conversação para enunciações incompletas.
[0185]A Figura 14E mostra as etapas realizadas pelo módulo de processamento de linguagem 238 para derivar o segundo conjunto de um ou mais centros de conversação para expressões de referência, de acordo com algumas implementações. O módulo de processamento de linguagem 238 identifica (1458) a forma pragmática como sendo uma expressão de referência determinando se uma ou mais referências anafóricas estão presentes na estrutura da frase, de acordo com
Petição 870190054547, de 13/06/2019, pág. 104/227
92/108 algumas implementações. Em algumas implementações, subsequentemente, o módulo de processamento de linguagem 238 deriva (1460) o segundo conjunto de um ou mais centros de conversação realizando uma sequência de operações (1462) que inclui: buscar (1464) o primeiro conjunto de um ou mais centros de conversação para encontrar um primeiro subconjunto de centros de conversação que corresponde a um bloco frasal no segundo comando de linguagem natural que contém uma primeira referência anafórica da uma ou mais referências anafóricas, e calcular (1466) o segundo conjunto de um ou mais centros de conversação com base no conjunto temporário de um ou mais centros de conversação e no primeiro subconjunto de centros de conversação. A Figura 7A descrita acima mostra uma implementação que deriva o segundo conjunto de um ou mais centros de conversação para expressões de referência.
[0186] Em algumas implementações, o módulo de processamento de linguagem 238 determina (1468) se a primeira referência anafórica é uma referência a uma propriedade de visualização na visualização de dados atualizada (algumas vezes chamada aqui de referência dêitica), e, de acordo com uma determinação de que a referência anafórica é uma referência dêitica, calcula (1470) o segundo conjunto de um ou mais centros de conversação com base no conjunto temporário de um ou mais centros de conversação, e dados relacionados à propriedade de visualização.
[0187] Em algumas implementações, como ilustrado na Figura 14F, o módulo de processamento de linguagem 238 determina (1472) se a primeira referência anafórica é acompanhada por um verbo no segundo comando de linguagem natural, e, de acordo com uma determinação de que a referência anafórica é acompanhada por um verbo (1474), busca (1476) o primeiro conjunto de um ou mais centros de conversação para encontrar um primeiro centro de conversação de ação que se refere a um verbo de ação, e calcula (1478) o segundo conjunto de um ou mais
Petição 870190054547, de 13/06/2019, pág. 105/227
93/108 centros de conversação com base no conjunto temporário de um ou mais centros de conversação e no primeiro subconjunto de centros de conversação.
[0188] Em algumas implementações, como mostra a Figura 14G, o módulo de processamento de linguagem 238 determina (1480) se a primeira referência anafórica é uma referência dêitica que se refere a algum objeto no ambiente, e, de acordo com uma determinação de que a referência anafórica é uma referência dêitica, calcula (1482) o segundo conjunto de um ou mais centros de conversação com base no conjunto temporário de um ou mais centros de conversação, e uma característica do objeto.
[0189]A Figura 14H mostra as etapas realizadas pelo módulo de processamento de linguagem 238 para derivar o segundo conjunto de um ou mais centros de conversação para enunciações de reparo, de acordo com algumas implementações. O módulo de processamento de linguagem 238 identifica (1484) a forma pragmática como sendo uma enunciação de reparo determinando se a estrutura de frase corresponde a uma ou mais enunciações de reparo predefinidas, de acordo com algumas implementações. Em algumas implementações, subsequentemente, o módulo de processamento de linguagem 238 deriva (1486) o segundo conjunto de um ou mais centros de conversação realizando uma sequência de operações (1488) que inclui: calcular (1490) o segundo conjunto de um ou mais centros de conversação com base no conjunto temporário de um ou mais centros de conversação, e atualizar (1492) um ou mais atributos de dados no segundo conjunto de um ou mais centros de conversação com base na uma ou mais enunciações de reparo predefinidas e na estrutura de frase. A Figura 10A descrita acima mostra uma implementação que deriva o segundo conjunto de um ou mais centros de conversação para enunciações de reparo.
[0190] Em algumas implementações, o módulo de processamento de linguagem 238 determina (1494) se a estrutura da frase corresponde a uma
Petição 870190054547, de 13/06/2019, pág. 106/227
94/108 enunciação de reparo para modificar um comportamento padrão relacionado à exibição de uma visualização de dados, e, de acordo com uma determinação de que a estrutura da frase corresponde a uma enunciação de reparo para modificar um comportamento padrão, altera (1496) o comportamento padrão relacionado à exibição.
[0191]A Figura 141 mostra as etapas realizadas pelo módulo de processamento de linguagem 238 para derivar o segundo conjunto de um ou mais centros de conversação para expressões conjuntivas, de acordo com algumas implementações. O módulo de processamento de linguagem 238 identifica (1498) a forma pragmática como sendo uma expressão conjuntiva determinando se o segundo comando de linguagem natural é uma expressão conjuntiva por (i) determinar a presença explícita ou implícita de conjunções na estrutura da frase, e (ii) determinar se o conjunto temporário de um ou mais centros de conversação inclui cada centro de conversação no primeiro conjunto de um ou mais centros de conversação, de acordo com algumas implementações. Em algumas implementações, subsequentemente, o módulo de processamento de linguagem 238 deriva (14.100) o segundo conjunto de um ou mais centros de conversação calculando (14.104) o segundo conjunto de um ou mais centros de conversação com base no conjunto temporário de um ou mais centros de conversação, de acordo com a determinação (14.102) de que o segundo comando de linguagem natural é uma expressão conjuntiva. A Figura 8A descrita acima mostra uma implementação que deriva o segundo conjunto de um ou mais centros de conversação para enunciações com conjunções.
[0192] Em algumas implementações, o módulo de processamento de linguagem 238 determina (14.106) se o segundo comando de linguagem natural tem mais de um conjunto, e, de acordo com a determinação de que o segundo comando de linguagem natural tem mais de um conjunto, calcula (14.108) o segundo conjunto
Petição 870190054547, de 13/06/2019, pág. 107/227
95/108 de uma ou mais funções analíticas linearizando o segundo comando de linguagem natural.
[0193] Em algumas implementações, o módulo de processamento de linguagem 238 lineariza o segundo comando de linguagem natural realizando uma sequência de operações ilustradas na Figura 14J. A sequência de operações inclui gerar (14.110) uma árvore de análise para o segundo comando de linguagem natural, atravessar (14.112) a árvore de análise em pós-ordem para extrair uma primeira frase analítica e uma segunda frase analítica, em que a primeira frase analítica e a segunda frase analítica são nós adjacentes na árvore de análise, e combinar (14.114) a primeira função analítica com a segunda função analítica mediante aplicação de um ou mais operadores lógicos com base em uma ou mais características da primeira função analítica e da segunda função analítica, em que a uma ou mais características incluem tipo de atributo, tipo de operador e um valor.
[0194] Cada uma das Figuras 14K-14O ilustra diferentes instâncias da última etapa (14.114) de combinar a primeira função analítica com a segunda função analítica, de acordo com algumas implementações. Em cada caso (como ilustrado pelos rótulos 14.116, 14.126, 14.36, 14.150, e 14.168 nas respectivas figuras), a primeira função analítica compreende um primeiro atributo, um primeiro operador e um primeiro valor; a segunda função analítica compreende um segundo atributo, um segundo operador e um segundo valor.
[0195] Na Figura 14K, o módulo de processamento de linguagem 238 combina (14.118) a primeira função analítica com a segunda função analítica realizando uma sequência de operações, de acordo com algumas implementações. A sequência de operações inclui: determinar (14.120) se o primeiro atributo é um atributo do tipo categórico ou um atributo do tipo ordenado, e determinar se o segundo atributo é um atributo do tipo categórico ou um atributo do tipo ordenado, determinar (14.122) se o primeiro atributo e o segundo atributo são idênticos, de
Petição 870190054547, de 13/06/2019, pág. 108/227
96/108 acordo com uma determinação de que o primeiro atributo e o segundo atributo são idênticos e ambos são atributos do tipo categórico, aplicar (14.124) um operador de união para combinar a primeira função analítica e a segunda função analítica.
[0196] Na Figura 14L, o módulo de processamento de linguagem 238 combina (14.128) a primeira função analítica com a segunda função analítica realizando uma sequência de operações, de acordo com algumas implementações. A sequência de operações inclui: determinar (14.130) se o primeiro atributo é um atributo do tipo categórico ou um atributo do tipo ordenado, e determinar se o segundo atributo é um atributo do tipo categórico ou um atributo do tipo ordenado, determinar (14.132) se o primeiro atributo e o segundo atributo são idênticos, de acordo com uma determinação de que o primeiro atributo e o segundo atributo não são idênticos, aplicar (14.134) o operador de interseção para combinar a primeira função analítica e a segunda função analítica.
[0197] Na Figura 14M, o módulo de processamento de linguagem 238 combina (14.138) a primeira função analítica com a segunda função analítica realizando uma sequência de operações, de acordo com algumas implementações. A sequência de operações inclui: determinar (14.140) se o primeiro atributo é um atributo do tipo categórico ou um atributo do tipo ordenado, e determinar se o segundo atributo é um atributo do tipo categórico ou um atributo do tipo ordenado, determinar (14.142) se o primeiro atributo e o segundo atributo são idênticos, de acordo com uma determinação de que o primeiro atributo e o segundo atributo são idênticos e ambos são atributos do tipo ordenado (14.144);. determinar (14.146) os tipos de operadores do primeiro operador e do segundo operador, e, de acordo com uma determinação de que tanto o primeiro operador quanto o segundo operador são operadores de igualdade, aplicar (14.148) o operador de união para combinar a primeira função analítica e a segunda função analítica.
[0198] Na Figura 14N, o módulo de processamento de linguagem 238
Petição 870190054547, de 13/06/2019, pág. 109/227
97/108 combina (14.152) a primeira função analítica com a segunda função analítica realizando uma sequência de operações, de acordo com algumas implementações. A sequência de operações inclui: determinar (14.154) se o primeiro atributo é um atributo do tipo categórico ou um atributo do tipo ordenado, e determinar se o segundo atributo é um atributo do tipo categórico ou um atributo do tipo ordenado, determinar (14.156) se o primeiro atributo e o segundo atributo são idênticos, e, de acordo com uma determinação de que o primeiro atributo e o segundo atributo são idênticos e ambos são atributos do tipo ordenado: determinar (14.160) os tipos de operadores do primeiro operador e do segundo operador; de acordo com uma determinação de que o primeiro operador é um operador “menor do que” e o segundo operador é um operador “maior do que” (14.162): determinar (14.164) se o primeiro valor é menor do que o segundo valor, e, de acordo com uma determinação de que o primeiro valor é menor do que o segundo valor, aplicar (14.166) o operador de união para combinar a primeira função analítica e a segunda função analítica.
[0199] Na Figura 140, o módulo de processamento de linguagem 238 combina (14.170) a primeira função analítica com a segunda função analítica realizando uma sequência de operações, de acordo com algumas implementações. A sequência de operações inclui: determinar (14.172) se o primeiro atributo é um atributo do tipo categórico ou um atributo do tipo ordenado, e determinar se o segundo atributo é um atributo do tipo categórico ou um atributo do tipo ordenado, determinar (14.174) se o primeiro atributo e o segundo atributo são idênticos, de acordo com uma determinação de que o primeiro atributo e o segundo atributo são idênticos e ambos são atributos do tipo ordenado (14.176): determinar (14.178) os tipos de operadores do primeiro operador e do segundo operador; de acordo com uma determinação de que o primeiro operador é um operador “maior do que” e o segundo operador é um operador “menor do que” (14.180): determinar (14.182) se o primeiro valor é menor do que o segundo valor, e, de acordo com uma determinação
Petição 870190054547, de 13/06/2019, pág. 110/227
98/108 de que o primeiro valor é menor do que o segundo valor, aplicar (14.184) o operador de interseção para combinar a primeira função analítica e a segunda função analítica.
[0200]As Figuras 15A a 15H apresentam um fluxograma de um processo (método 1500) que usa (1502) linguagem natural para análise visual de um conjunto de dados aplicando princípios da pragmática, inclusive para gerenciar respostas e realimentação, e para lidar com ambiguidade em uma consulta do usuário, de acordo com algumas implementações. As etapas do método 1500 podem ser realizadas por um computador (por exemplo, um dispositivo de computação 200). Em algumas implementações, o computador inclui (1504) um meio de exibição, um ou mais processadores, e uma memória. As Figuras 15A a 15H correspondem a instruções armazenadas em uma memória de computador ou meio de armazenamento legível por computador (por exemplo, a memória 206 do dispositivo de computação 200). A memória armazena (1506) um ou mais programas configurados para execução pelo um ou mais processadores (por exemplo, o(s) processador(es) 202). Por exemplo, as operações do método 1500 são realizadas, pelo menos em parte, por um módulo de geração de visualização de dados 234 e/ou por um módulo de processamento de linguagem 238.
[0201] Em algumas implementações, o dispositivo exibe (1508) uma visualização de dados com base em um conjunto de dados recuperado a partir de uma base de dados usando um primeiro conjunto de uma ou mais consultas. Por exemplo, referindo-se à Figura 1, um usuário pode associar um ou mais campos de dados a partir de uma região de informações de esquema 110 com uma ou mais prateleiras (por exemplo, a prateleira de colunas 120 e a prateleira de fileiras 122, Figura 1) na região de visualização de dados 112. Em resposta ao recebimento das associações do usuário, em algumas implementações, o computador recupera dados para os campos de dados a partir do conjunto de dados usando um conjunto
Petição 870190054547, de 13/06/2019, pág. 111/227
99/108 de uma ou mais consultas, e então exibe uma visualização de dados (por exemplo, a visualização de dados 408) na região de visualização de dados 112 que corresponde às entradas de usuário recebidas. A exibição das visualizações de dados é discutida em mais detalhes anteriormente com referência à Figura 1.
[0202]0 computador recebe (1510) uma primeira entrada do usuário para especificar um primeiro comando de linguagem natural relacionado à visualização de dados exibida. Em algumas implementações, a entrada do usuário é recebida como entrada de texto (por exemplo, por meio do teclado 216 ou por meio da tela sensível ao toque 214) a partir de um usuário na região de entrada de dados no meio de exibição em proximidade à visualização de dados exibida. Em algumas implementações, a entrada do usuário é recebida como um comando de voz usando um microfone (por exemplo, um dispositivo de entrada de áudio 220) acoplado ao computador. Por exemplo, referindo-se à Figura 6A, a visualização de dados exibida 608 diz respeito a casas a menos de 1M em Ballard. O recebimento de entradas (por exemplo, comandos/consultas) a partir de um usuário é discutido em mais detalhes acima com referência à Figura 1.
[0203] Com base na visualização de dados exibida, o computador extrai (1512) um primeiro conjunto de uma ou mais frases analíticas independentes a partir do primeiro comando em linguagem natural. Por exemplo, referindo-se à Figura 6A, o primeiro comando de linguagem natura recebido pelo computador lê “houses less than 1M in Ballard” (casas a menos de 1M em Ballard). A visualização de dados exibida antes de receber o primeiro comando de linguagem natural diz respeito a vendas de casas anteriores em Seattle. Em algumas implementações, o computador extrai “houses” (casas) e “less than 1M” (a menos de 1M) e “in Ballard” (em Ballard) do primeiro comando de linguagem natural, pois essas frases analíticas se relacionam à visualização de dados exibida. Quando as frases possuem referência direta aos campos de dados na visualização de dados exibida, a extração (1512) é
Petição 870190054547, de 13/06/2019, pág. 112/227
100/108 direta: coleta todas as frases que são referências diretas aos campos de dados. Em algumas implementações, o computador separa o radical ou remove “stopwords (palavras irrelevantes), palavras de enchimento, ou qualquer conjunto de palavras da consulta recebida, e extrai (1412) todas as outras frases do primeiro comando de linguagem natural, uma vez que podem estar relacionadas à visualização de dados exibida. Algumas implementações usam esta abordagem quando as frases no comando de linguagem natural possuem alguma referência indireta aos campos de dados na visualização exibida.
[0204]O módulo de processamento de linguagem 238 calcula (1514) um primeiro conjunto de um ou mais centros de conversação associados ao primeiro comando de linguagem natural baseado no primeiro conjunto de uma ou mais frases analíticas, de acordo com algumas implementações. Uma estrutura baseada em um modelo de interação conversacional é descrita acima com referência às Figuras 3A, 5 e 11. Um centro se refere às entidades que servem para vincular essa enunciação (algumas vezes chamada aqui de comando de linguagem natural) a outras enunciações em um discurso (uma série de enunciações) Os centros de conversação incluem atributos de dados e valores, propriedades visuais e ações analíticas. Calcular os centros de conversação com base nas frases analíticas inclui mapear as frases analíticas para um ou mais centros de conversação após transformações e análises necessárias. Para o exemplo de enunciação houses less than 1M in Ballard (casas a menos de 1M em Ballard), o módulo de processamento de linguagem 238 processa a frase less than 1M (a menos de 1M) e analisa a frase para inferir que ela se refere ao atributo de dados LAST_SALE_PRICE, como ilustrado na Figura 6C descrita acima.
[0205]Subsequentemente, o módulo de processamento de linguagem 238 calcula (1516) um primeiro conjunto de funções analíticas associadas ao primeiro conjunto de um ou mais centros de conversação, desse modo criando um primeiro
Petição 870190054547, de 13/06/2019, pág. 113/227
101/108 conjunto de uma ou mais frases funcionais, de acordo com algumas implementações. Como descrito acima com referência às Figuras 3A, 5 e 11, cada uma das funções analíticas consiste de uma variável, um operador e um valor, de acordo com algumas implementações. Em algumas implementações, para o exemplo de enunciação “houses less than 1M in Ballard”, o módulo de processamento de linguagem 238 cria duas funções, cria quatro funções F_CAT(homeType, == condo), F_CAT(homeType, == townhouse), F_CAT(homeType == single), e F_NUMERIC(price, <, 500000). Neste exemplo, o módulo de processamento de linguagem 238 busca um ou mais atributos relacionados à visualização de dados exibida que corresponde ao primeiro conjunto de um ou mais centros de conversação para identificar um primeiro conjunto de atributos de dados, de acordo com algumas implementações. O módulo de processamento de linguagem 238 também identifica, ao examinar o primeiro conjunto de um ou mais centros de conversação, um primeiro conjunto de operadores (por exemplo, operador ==, operador <) e um primeiro conjunto de valores correspondendo ao primeiro conjunto de atributos de dados, de acordo com algumas implementações. Com o primeiro conjunto de variáveis (atributos), e o primeiro conjunto correspondente de operadores e primeiro conjunto de valores, o módulo de processamento de linguagem 238 constrói o primeiro conjunto de uma ou mais funções analíticas, criando assim o primeiro conjunto de uma ou mais frases funcionais.
[0206] Em algumas implementações, o computador atualiza (1518) a visualização de dados com base em um primeiro conjunto de uma ou mais frases funcionais calculadas na etapa 1516.
[0207] Referindo-se agora à Figura 15B, o computador recebe (1520) uma segunda entrada do usuário para especificar um segundo comando de linguagem natural relacionado à visualização de dados exibida. Em algumas implementações, a
Petição 870190054547, de 13/06/2019, pág. 114/227
102/108 entrada do usuário é recebida como entrada de texto (por exemplo, por meio do teclado 216 ou por meio da tela sensível ao toque 214) a partir de um usuário na região de entrada de dados no meio de exibição em proximidade à visualização de dados exibida. Em algumas implementações, a entrada do usuário é recebida como um comando de voz usando um microfone (por exemplo, um dispositivo de entrada de áudio 220) acoplado ao computador. Por exemplo, referindo-se à Figura 6A, a visualização de dados exibida 608 diz respeito a casas a menos de 1M em Ballard, quando o computador recebe a segunda entrada do usuário “townhomes” (casas na cidade). O recebimento de entradas (por exemplo, comandos/consultas) a partir de um usuário é discutido em mais detalhes acima com referência à Figura 1.
[0208] Com base na visualização de dados exibida, o computador extrai (1522) um segundo conjunto de uma ou mais frases analíticas independentes a partir do segundo comando de linguagem natural. Por exemplo, referindo-se à Figura 6A, o segundo comando de linguagem natural (620) recebido pelo computador lê “townhomes” (casas na cidade). Em algumas implementações, para este exemplo, o computador extrai “townhomes” (casas na cidade) a partir do segundo comando de linguagem natural, uma vez que esta frase analítica se relaciona à visualização de dados exibida (que diz respeito a casas na cidade em Ballard). Quando as frases possuem referência direta aos campos de dados na visualização de dados exibida, a extração (1522) é direta: coleta todas as frases que são referências diretas aos campos de dados. Em algumas implementações, o computador separa o radical ou remove “stopwords (palavras irrelevantes), palavras de enchimento, ou qualquer conjunto de palavras da consulta recebida, e extrai (1522) todas as outras frases do segundo comando de linguagem natural, uma vez que podem estar relacionadas à visualização de dados exibida. Algumas implementações usam esta abordagem quando as frases no comando de linguagem natural possuem alguma referência indireta aos campos de dados na visualização
Petição 870190054547, de 13/06/2019, pág. 115/227
103/108 exibida.
[0209]0 módulo de processamento de linguagem (1524) calcula um conjunto temporário de um ou mais centros de conversação associados ao segundo comando de linguagem natural baseado no segundo conjunto de uma ou mais frases analíticas, de acordo com algumas implementações.
[0210]O módulo de processamento de linguagem (1526) deriva um segundo conjunto de um ou mais centros de conversação a partir do primeiro conjunto de um ou mais centros de conversação e do conjunto temporário de um ou mais centros de conversação usando uma ou mais regras de transição, de acordo com algumas implementações.
[0211]O Computador atualiza (1528) a visualização de dados com base no segundo conjunto de uma ou mais frases funcionais, de acordo com algumas implementações.
[0212] Referindo-se à Figura 15C, em algumas implementações, o módulo de processamento de linguagem 238 determina (1530) um ou mais atributos de dados correspondendo ao segundo conjunto de um ou mais centros de conversação. O módulo de processamento de linguagem 238 então varre (1532) visualizações de dados exibidas para identificar uma ou mais das visualizações de dados exibidas que contêm marcas de dados cujas características correspondem a um primeiro atributo de dados no um ou mais atributos de dados, de acordo com algumas implementações. Em algumas de tais implementações (1534), as características de visualização incluem um ou mais dentre cor, tamanho e formato. Em algumas de tais implementações (1536), as características de visualização correspondem a uma codificação visual de marcas de dados.
[0213]Subsequentemente, o computador realça (1538) as marcas de dados cujas características correspondem ao primeiro atributo de dados, de acordo com algumas implementações. Em alguma de tais implementações, o computador filtra
Petição 870190054547, de 13/06/2019, pág. 116/227
104/108 (1540)os resultados das visualizações de dados exibidas que contêm marcas de dados cujas características não correspondem ao um ou mais atributos de dados. Além disso, em algumas de tais implementações, o computador recebe (1542) uma entrada do usuário para determinar se irá filtrar ou realçar as marcas de dados, e filtra ou realça as marcas de dados nas visualizações de dados exibidas com base na determinação. A Figura 11A descrita acima mostrou um exemplo de aplicação dos princípios da pragmática para gerenciar respostas e realimentação de acordo com algumas implementações. As descrições para a Figura 11A se aplicam às etapas ilustradas na Figura 15C. Por exemplo, a etapa 1102 na Figura 11A para criar uma lista de todos os atributos de dados corresponde à etapa 1530 para determinar um ou mais atributos de dados. De maneira similar, a etapa 1106 para decidir qual da visualização existente codifica um respectivo atributo corresponde à etapa 1532 para varrer as visualizações de dados exibidas.
[0214] Referindo-se agora à Figura 15D, em algumas implementações, o computador determina (1544) se nenhuma das visualizações de dados exibidas contém marcas de dados cujas características correspondem ao primeiro atributo de dados. Em algumas implementações, de acordo com a determinação de que nenhuma das visualizações de dados exibidas contém marcas de dados cujas características correspondem ao primeiro atributo de dados (1546): o computador gera (1548) uma especificação para uma nova visualização de dados com o primeiro atributo de dados, e exibe (1550) a nova visualização de dados. Em algumas implementações exibir (1550) a nova visualização de dados inclui: determinar (1552) um tipo de gráfico baseado na especificação, e gerar e exibir (1554) o gráfico. Em algumas de tais implementações (1556), o gráfico é posicionado usando um algoritmo de disposição baseado em grade bidimensional, coordenado automaticamente com outras visualizações de dados.
[0215] Referindo-se à Figura 15E, em algumas implementações, o módulo de
Petição 870190054547, de 13/06/2019, pág. 117/227
105/108 processamento de linguagem 238 calcula (1558) um segundo conjunto de uma ou mais funções analíticas associadas ao segundo conjunto de um ou mais centros de conversação, dessa forma criando um segundo conjunto de uma ou mais frases funcionais. Em algumas implementações, o computador seleciona (1560) uma primeira frase funcional a partir do segundo conjunto de uma ou mais frases funcionais, em que a primeira frase funcional compreende um critério de seleção de dados parametrizado. Em algumas implementações, o computador seleciona (1562) um intervalo inicial para valores dos parâmetros do critério de seleção de dados parametrizado. Em algumas implementações, o computador exibe (1564) um controle de interface editável do usuário correspondendo ao critério de seleção de dados parametrizado, em que o controle de interface do usuário exibe os valores atuais dos parâmetros. Em algumas de tais implementações (1566), o controle de interface do usuário permite o ajuste da primeira frase funcional. Adicionalmente, em algumas de tais implementações (1568), o controle de interface do usuário exibe um controle deslizante, que permite que um usuário ajuste a primeira frase funcional. Em algumas implementações, o computador ordena (1570) um conjunto exibido de um ou mais controles de interface do usuário editáveis com base na ordem das consultas no segundo comando em linguagem natural, em que a ordem das consultas é inferida enquanto se extrai o segundo conjunto de uma ou mais frases analíticas a partir do segundo comando de linguagem natural. Em algumas de tais implementações, o computador usa (1572) uma biblioteca que facilita a colocação compacta de visualização de escala de palavra pequena dentro do texto. Em algumas de tais implementações (1574), a biblioteca é a Sparklificator®. A Figura 12A descrita acima mostra um exemplo de ilustração de uma interface que inclui um conjunto selecionável de widgets apresentados ao usuário, de acordo com algumas implementações.
[0216] Referindo-se à Figura 15F, em algumas implementações, o
Petição 870190054547, de 13/06/2019, pág. 118/227
106/108 computador determina (1576) um primeiro símbolo no segundo comando de linguagem natural que não corresponde a nenhuma das frases analíticas no segundo conjunto de uma ou mais frases analíticas. Em algumas implementações, o computador busca (1578) por um termo grafado corretamente correspondendo ao primeiro símbolo usando uma biblioteca de busca por meio da comparação do primeiro símbolo com um ou mais aspectos do primeiro conjunto de dados. Em algumas de tais implementações (1580), o um ou mais aspectos incluem atributos de dados, valores de células e palavras-chaves relacionadas do primeiro conjunto de dados. Em algumas de tais implementações (1582), a biblioteca de busca é Fuse.js®.
[0217] Em algumas implementações, o módulo de processamento de linguagem 238 substitui (1584) o termo grafado corretamente para o primeiro símbolo no segundo comando de linguagem natural para obter um terceiro comando de linguagem natural, e extrai (1586) o segundo conjunto de uma ou mais frases analíticas do terceiro comando de linguagem natural.
[0218] Em algumas implementações, como ilustrado na Figura 15G, o módulo de processamento de linguagem 238 determina (1588) se não há nenhum termo grafado corretamente correspondendo ao primeiro símbolo. De acordo com uma determinação de que não há nenhum termo grafado corretamente correspondendo ao primeiro símbolo (1590), o módulo de processamento de linguagem analisa (1592) o segundo comando de linguagem natural para obter uma árvore de análise, poda (1594) a árvore de análise para remover a parte da árvore correspondendo ao primeiro símbolo, e extrai (1596) a árvore de análise para remover a parte da árvore correspondendo ao primeiro símbolo. Em algumas de tais implementações, o módulo de processamento de linguagem 238 substitui (1598) o termo grafado corretamente para o primeiro símbolo no segundo comando de linguagem natural para obter um terceiro comando de linguagem natural, e o
Petição 870190054547, de 13/06/2019, pág. 119/227
107/108 computador exibe (15.100) o primeiro símbolo.
[0219] Em algumas implementações, como ilustrado na Figura 15H, o computador gera (15.102) uma realimentação textual indicando que o termo grafado corretamente é usado como substituto para o primeiro símbolo no segundo comando de linguagem natural. Além disso, em algumas de tais implementações, o computador exibe (15.104) e realça o termo grafado corretamente. A Figura 12B descrita acima mostra diferentes exemplos de situações e a realimentação correspondente gerada pelo computador, de acordo com algumas implementações.
[0220] A terminologia usada na descrição desta invenção serve apenas ao intuito de descrever implementações específicas e não visa limitar a presente invenção. Como usado na descrição da invenção e das reivindicações anexas, as formas singulares um, uma, o e a pretendem incluir também as formas plurais, salvo indicação em contrário pelo contexto. Também será entendido que o termo “e/ou”, como usado aqui, refere-se a e engloba toda e qualquer combinação possível de um ou mais dos itens listados associados. Deve-se ainda entender que os termos compreende e/ou compreendendo, quando utilizados no presente relatório descritivo, especificam a presença de aspectos, etapas, operações, elementos e/ou componentes mencionados, mas não excluem a presença ou adição de um ou mais aspectos, etapas, operações, elementos, componentes e/ou grupos diferentes dos mesmos.
[0221]A descrição precedente, para fins de explanação, foi descrita com referência a implementações específicas. No entanto, as discussões ilustrativas acima não pretendem ser exaustivas ou limitar o a invenção às formas exatas reveladas. Muitas modificações e variações são possíveis à luz dos ensinamentos acima. As implementações foram escolhidas e descritas de modo a explicar de melhor maneira os princípios da invenção e suas aplicações práticas, permitindo dessa forma que outros indivíduos versados na técnica utilizem da melhor maneira a
Petição 870190054547, de 13/06/2019, pág. 120/227
108/108 invenção e várias implementações com diversas modificações na medida em que sejam apropriadas ao uso específico contemplado.

Claims (71)

  1. REIVINDICAÇÕES
    1. Método para utilizar linguagem natural para análise visual de um conjunto de dados, CARACTERIZADO por compreender:
    em um computador provido de um meio de exibição, um ou mais processadores, e uma memória armazenando um ou mais programas configurados para execução pelo um ou mais processadores:
    exibir uma visualização de dados baseado em um primeiro conjunto de dados recuperado a partir de uma base de dados usando um primeiro conjunto de uma ou mais consultas;
    receber uma primeira entrada do usuário para especificar um primeiro comando de linguagem natural relacionado à visualização de dados;
    extrair um primeiro conjunto de uma ou mais frases analíticas independentes a partir do primeiro comando de linguagem natural;
    calcular um primeiro conjunto de um ou mais centros de conversação associados ao primeiro comando de linguagem natural baseado no primeiro conjunto de uma ou mais frases analíticas;
    calcular um primeiro conjunto de funções analíticas associadas ao primeiro conjunto de um ou mais centros de conversação, criando assim um primeiro conjunto de uma ou mais frases funcionais; e atualizar a visualização de dados baseado no primeiro conjunto de uma ou mais frases funcionais.
  2. 2. Método, de acordo com a reivindicação 1, CARACTERIZADO por adicionalmente compreender:
    receber uma segunda entrada do usuário para especificar um segundo comando de linguagem natural relacionado à visualização de dados atualizada;
    extrair um segundo conjunto de uma ou mais frases analíticas independentes a partir do segundo comando de linguagem natural;
    Petição 870190054547, de 13/06/2019, pág. 122/227
    2/32 calcular um conjunto temporário de um ou mais centros de conversação associados ao segundo comando de linguagem natural baseado no segundo conjunto de uma ou mais frases analíticas;
    derivar um segundo conjunto de um ou mais centros de conversação a partir do primeiro conjunto de um ou mais centros de conversação e do conjunto temporário de um ou mais centros de conversação usando uma ou mais regras de transição;
    calcular um segundo conjunto de uma ou mais funções analíticas associadas ao segundo conjunto de um ou mais centros de conversação, dessa forma criando um segundo conjunto de uma ou mais frases funcionais; e atualizar a visualização de dados baseado no segundo conjunto de uma ou mais frases funcionais.
  3. 3. Método, de acordo com a reivindicação 2, CARACTERIZADO pelo fato de que cada um dos centros de conversação do primeiro conjunto de um ou mais centros de conversação, do conjunto temporário de um ou mais centros de conversação, e do segundo conjunto de um ou mais centros de conversação compreende um valor para uma variável que especifica ou um atributo de dados ou uma propriedade de visualização de dados, e em que usar a uma ou mais regras de transição compreende:
    determinar se uma primeira variável está incluída no primeiro conjunto de um ou mais centros de conversação;
    determinar se a primeira variável está incluída no conjunto temporário de um ou mais centros de conversação;
    determinar uma respectiva regra de transição da uma ou mais regras de transição a ser aplicada baseado em se a primeira variável está incluída no primeiro conjunto de um ou mais centros de conversação e/ou no conjunto temporário de um ou mais centros de conversação; e
    Petição 870190054547, de 13/06/2019, pág. 123/227
    3/32 aplicar a respectiva regra de transição.
  4. 4. Método, de acordo com a reivindicação 3, CARACTERIZADO pelo fato de que a uma ou mais regras de transição compreendem uma regra CONTINUAR para incluir cada centro de conversação no primeiro conjunto de um ou mais centros de conversação no segundo conjunto de um ou mais centros de conversação, e adicionar um ou mais centros de conversação do conjunto temporário de um ou mais centros de conversação ao segundo conjunto de um ou mais centros de conversação.
  5. 5. Método, de acordo com a reivindicação 4, CARACTERIZADO pelo fato de que aplicar a respectiva regra de transição compreende:
    de acordo com uma determinação de que (i) a primeira variável está incluída no conjunto temporário de um ou mais centros de conversação, e (ii) de que a primeira variável não está incluída no primeiro conjunto de um ou mais centros de conversação, aplicar a regra CONTINUAR para incluir a primeira variável no segundo conjunto de um ou mais centros de conversação.
  6. 6. Método, de acordo com a reivindicação 3, CARACTERIZADO pelo fato de que a uma ou mais regras de transição compreendem uma regra RETER para reter cada centro de conversação no primeiro conjunto de um ou mais centros de conversação no segundo conjunto de um ou mais centros de conversação sem adicionar nenhum centro de conversação do conjunto temporário de um ou mais centros de conversação ao segundo conjunto de um ou mais centros de conversação.
  7. 7. Método, de acordo com a reivindicação 6, CARACTERIZADO pelo fato de que aplicar a respectiva regra de transição compreende:
    de acordo com uma determinação de que (i) a primeira variável está incluída no primeiro conjunto de um ou mais centros de conversação, e (ii) de que a primeira variável não está incluída no conjunto temporário de um ou mais centros de
    Petição 870190054547, de 13/06/2019, pág. 124/227
    4/32 conversação, aplicar a regra RETER para incluir cada centro de conversação no primeiro conjunto de um ou mais centros de conversação no segundo conjunto de um ou mais centros de conversação.
  8. 8. Método, de acordo com a reivindicação 3, CARACTERIZADO pelo fato de que a uma ou mais regras de transição compreendem uma regra DESLOCAR para incluir cada centro de conversação no primeiro conjunto de um ou mais centros de conversação no segundo conjunto de um ou mais centros de conversação, e substituir um ou mais centros de conversação no segundo conjunto de um ou mais centros de conversação por centros de conversação no conjunto temporário de um ou mais centros de conversação.
  9. 9. Método, de acordo com a reivindicação 8, CARACTERIZADO pelo fato de que aplicar a respectiva regra de transição compreende:
    de acordo com uma determinação de que (i) a primeira variável está incluída no primeiro conjunto de um ou mais centros de conversação, e (ii) de que a primeira variável está incluída no conjunto temporário de um ou mais centros de conversação:
    determinar se um primeiro valor da primeira variável no primeiro conjunto de um ou mais centros de conversação é diferente de um segundo valor da primeira variável no conjunto temporário de um ou mais centros de conversação;
    de acordo com uma determinação de que o primeiro valor é diferente do segundo valor, aplicar a regra DESLOCAR para incluir cada centro de conversação no primeiro conjunto de um ou mais centros de conversação no segundo conjunto de um ou mais centros de conversação, e substituir o valor para a primeira variável no segundo conjunto de um ou mais centros de conversação pelo segundo valor.
  10. 10. Método, de acordo com a reivindicação 8, CARACTERIZADO por adicionalmente compreender:
    determinar se um widget correspondendo à primeira variável foi removido
    Petição 870190054547, de 13/06/2019, pág. 125/227
    5/32 pelo usuário; e de acordo com uma determinação de que o widget foi removido, aplicar a regra DESLOCAR para incluir cada centro de conversação no primeiro conjunto de um ou mais centros de conversação no segundo conjunto de um ou mais centros de conversação, e substitui o valor para a primeira variável no segundo conjunto de um ou mais centros de conversação por um novo valor que inclui o primeiro valor.
  11. 11. Método, de acordo com a reivindicação 1, CARACTERIZADO por adicionalmente compreender:
    determinar se o usuário selecionou um conjunto de dados diferente do primeiro conjunto de dados;
    determinar se o usuário reiniciou a visualização de dados; e de acordo com uma determinação de que (I) o usuário selecionou um conjunto de dados diferente, ou (li) usuário reiniciou a visualização de dados, reiniciar cada um do primeiro conjunto de um ou mais centros de conversação, do conjunto temporário de um ou mais centros de conversação, e do segundo conjunto de um ou mais centros de conversação para um conjunto vazio que não inclui nenhum centro de conversação.
  12. 12. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que atualizar a visualização de dados com base no primeiro conjunto de uma ou mais frases funcionais compreende:
    repetir a consulta à base de dados usando um segundo conjunto de uma ou mais consultas baseado no primeiro conjunto de uma ou mais frases funcionais, dessa forma recuperando um segundo conjunto de dados; e atualizar a visualização de dados com base no segundo conjunto de dados.
  13. 13. Método, de acordo com a reivindicação 12, CARACTERIZADO por adicionalmente compreender criar e exibir uma nova visualização de dados usando o segundo conjunto de dados.
    Petição 870190054547, de 13/06/2019, pág. 126/227
    6/32
  14. 14. Método, de acordo com a reivindicação 2, CARACTERIZADO pelo fato de que atualizar a visualização de dados com base no segundo conjunto de uma ou mais frases funcionais compreende:
    repetir a consulta à base de dados usando um terceiro conjunto de uma ou mais consultas baseado no segundo conjunto de uma ou mais frases funcionais, dessa forma recuperando um terceiro conjunto de dados; e atualizar a visualização de dados com base no terceiro conjunto de dados.
  15. 15. Método, de acordo com a reivindicação 14, CARACTERIZADO por adicionalmente compreender criar e exibir uma nova visualização de dados usando o terceiro conjunto de dados.
  16. 16. Dispositivo eletrônico, CARACTERIZADO por compreender:
    um meio de exibição;
    um ou mais processadores;
    memória; e um ou mais programas, em que o um ou mais programas são armazenados na memória e configurados para serem executados pelo um ou mais processadores, o um ou mais programas incluindo instruções para:
    exibir uma visualização de dados baseado em um primeiro conjunto de dados recuperado a partir de uma base de dados usando um primeiro conjunto de uma ou mais consultas;
    receber uma primeira entrada do usuário para especificar um primeiro comando de linguagem natural relacionado à visualização de dados;
    extrair um primeiro conjunto de uma ou mais frases analíticas independentes a partir do primeiro comando de linguagem natural;
    calcular um primeiro conjunto de um ou mais centros de conversação associados ao primeiro comando de linguagem natural baseado no primeiro conjunto de uma ou mais frases analíticas;
    Petição 870190054547, de 13/06/2019, pág. 127/227
    7/32 calcular um primeiro conjunto de funções analíticas associadas ao primeiro conjunto de um ou mais centros de conversação, criando assim um primeiro conjunto de uma ou mais frases funcionais; e atualizar a visualização de dados baseado no primeiro conjunto de uma ou mais frases funcionais.
  17. 17. Dispositivo eletrônico, de acordo com a reivindicação 15, CARACTERIZADO pelo fato de que o um ou mais programas adicionalmente compreendem instruções para:
    receber uma segunda entrada do usuário para especificar um segundo comando de linguagem natural relacionado à visualização de dados atualizada;
    extrair um segundo conjunto de uma ou mais frases analíticas independentes a partir do segundo comando de linguagem natural;
    calcular um conjunto temporário de um ou mais centros de conversação associados ao segundo comando de linguagem natural baseado no segundo conjunto de uma ou mais frases analíticas;
    derivar um segundo conjunto de um ou mais centros de conversação a partir do primeiro conjunto de um ou mais centros de conversação e do conjunto temporário de um ou mais centros de conversação usando uma ou mais regras de transição;
    calcular um segundo conjunto de uma ou mais funções analíticas associadas ao segundo conjunto de um ou mais centros de conversação, dessa forma criando um segundo conjunto de uma ou mais frases funcionais; e atualizar a visualização de dados baseado no segundo conjunto de uma ou mais frases funcionais.
  18. 18. Meio de armazenamento não-temporário legível por computador armazenando um ou mais programas configurados para execução por um dispositivo eletrônico com um meio de exibição, CARACTERIZADO pelo fato de que
    Petição 870190054547, de 13/06/2019, pág. 128/227
    8/32 o um ou mais programas compreendem instruções para:
    exibir uma visualização de dados baseado em um primeiro conjunto de dados recuperado a partir de uma base de dados usando um primeiro conjunto de uma ou mais consultas;
    receber uma primeira entrada do usuário para especificar um primeiro comando de linguagem natural relacionado à visualização de dados;
    extrair um primeiro conjunto de uma ou mais frases analíticas independentes a partir do primeiro comando de linguagem natural;
    calcular um primeiro conjunto de um ou mais centros de conversação associados ao primeiro comando de linguagem natural baseado no primeiro conjunto de uma ou mais frases analíticas;
    calcular um primeiro conjunto de funções analíticas associadas ao primeiro conjunto de um ou mais centros de conversação, criando assim um primeiro conjunto de uma ou mais frases funcionais; e atualizar a visualização de dados baseado no primeiro conjunto de uma ou mais frases funcionais.
  19. 19. Meio de armazenamento não-temporário legível por computador, de acordo com a reivindicação 18, CARACTERIZADO pelo fato de que o um ou mais programas adicionalmente compreendem instruções para:
    receber uma segunda entrada do usuário para especificar um segundo comando de linguagem natural relacionado à visualização de dados atualizada;
    extrair um segundo conjunto de uma ou mais frases analíticas independentes a partir do segundo comando de linguagem natural;
    calcular um conjunto temporário de um ou mais centros de conversação associados ao segundo comando de linguagem natural baseado no segundo conjunto de uma ou mais frases analíticas;
    derivar um segundo conjunto de um ou mais centros de conversação a partir
    Petição 870190054547, de 13/06/2019, pág. 129/227
    9/32 do primeiro conjunto de um ou mais centros de conversação e do conjunto temporário de um ou mais centros de conversação usando uma ou mais regras de transição;
    calcular um segundo conjunto de uma ou mais funções analíticas associadas ao segundo conjunto de um ou mais centros de conversação, dessa forma criando um segundo conjunto de uma ou mais frases funcionais; e atualizar a visualização de dados baseado no segundo conjunto de uma ou mais frases funcionais.
  20. 20. Método para utilizar linguagem natural para análise visual de um conjunto de dados, CARACTERIZADO por compreender:
    em um computador provido de um meio de exibição, um ou mais processadores, e uma memória armazenando um ou mais programas configurados para execução pelo um ou mais processadores:
    exibir uma visualização de dados baseado em um primeiro conjunto de dados recuperado a partir de uma base de dados usando um primeiro conjunto de uma ou mais consultas;
    receber uma primeira entrada do usuário para especificar um primeiro comando de linguagem natural relacionado à visualização de dados;
    extrair um primeiro conjunto de uma ou mais frases analíticas independentes a partir do primeiro comando de linguagem natural;
    calcular um primeiro conjunto de um ou mais centros de conversação associados ao primeiro comando de linguagem natural baseado no primeiro conjunto de uma ou mais frases analíticas;
    calcular um primeiro conjunto de funções analíticas associadas ao primeiro conjunto de um ou mais centros de conversação, criando assim um primeiro conjunto de uma ou mais frases funcionais;
    atualizar a visualização de dados baseado no primeiro conjunto de uma ou
    Petição 870190054547, de 13/06/2019, pág. 130/227
    10/32 mais frases funcionais;
    receber uma segunda entrada do usuário para especificar um segundo comando de linguagem natural relacionado à visualização de dados atualizada;
    extrair um segundo conjunto de uma ou mais frases analíticas independentes a partir do segundo comando de linguagem natural;
    calcular um conjunto temporário de um ou mais centros de conversação associados ao segundo comando de linguagem natural baseado no segundo conjunto de uma ou mais frases analíticas;
    calcular a coesão entre o primeiro conjunto de uma ou mais frases analíticas e o segundo conjunto de uma ou mais frases analíticas, e derivar um segundo conjunto de um ou mais centros de conversação do primeiro conjunto de um ou mais centros de conversação e do conjunto temporário de um ou mais centros de conversação com base na coesão;
    calcular um segundo conjunto de uma ou mais funções analíticas associadas ao segundo conjunto de um ou mais centros de conversação, dessa forma criando um segundo conjunto de uma ou mais frases funcionais; e atualizar a visualização de dados baseado no segundo conjunto de uma ou mais frases funcionais.
  21. 21. Método, de acordo com a reivindicação 20, CARACTERIZADO pelo fato de que calcular a coesão e derivar o segundo conjunto de um ou mais centros de conversação com base na coesão compreende:
    identificar uma estrutura de frase do segundo conjunto de uma ou mais frases analíticas;
    identificar uma ou mais formas de pragmática com base na estrutura da frase; e derivar um segundo conjunto de um ou mais centros de conversação a partir do primeiro conjunto de um ou mais centros de conversação e do conjunto
    Petição 870190054547, de 13/06/2019, pág. 131/227
    11/32 temporário de um ou mais centros de conversação com base na uma ou mais formas de pragmática.
  22. 22. Método, de acordo com a reivindicação 21, CARACTERIZADO pelo fato de que identificar a estrutura da frase compreende:
    analisar o segundo comando de linguagem natural aplicando uma gramática probabilística, dessa forma obtendo uma saída analisada; e resolver a saída analisada em atributos de dados e categóricos correspondentes.
  23. 23. Método, de acordo com a reivindicação 22, CARACTERIZADO pelo fato de que analisar o segundo comando de linguagem natural adicionalmente compreende deduzir a estrutura sintática empregando uma API de análise morfossintática fornecida por uma biblioteca de ferramentas para processamento de linguagem natural.
  24. 24. Método, de acordo com a reivindicação 21, CARACTERIZADO pelo fato de que:
    identificar a uma ou mais formas de pragmática compreende determinar se o segundo comando de linguagem natural é uma enunciação incompleta por meio da determinação de se um ou mais elementos linguísticos estão ausentes na estrutura da frase; e derivar o segundo conjunto de um ou mais centros de conversação compreende:
    de acordo com a determinação de que o segundo comando de linguagem natural é uma enunciação incompleta:
    determinar um primeiro subconjunto de centros de conversação no primeiro conjunto de um ou mais centros de conversação, o primeiro subconjunto de centros de conversação correspondendo ao um ou mais elementos linguísticos ausentes na estrutura da frase; e
    Petição 870190054547, de 13/06/2019, pág. 132/227
    12/32 calcular o segundo conjunto de um ou mais centros de conversação combinando o conjunto temporário de um ou mais centros de conversação com o primeiro subconjunto de centros de conversação.
  25. 25. Método, de acordo com a reivindicação 21, CARACTERIZADO pelo fato de que:
    identificar a uma ou mais formas de pragmática compreende determinar se o segundo comando de linguagem natural é uma expressão de referência por meio da determinação de se uma ou mais referências anafóricas estão presentes na estrutura da frase; e derivar o segundo conjunto de um ou mais centros de conversação compreende:
    de acordo com a determinação de que o segundo comando natural é uma expressão de referência:
    pesquisar o primeiro conjunto de um ou mais centros de conversação para encontrar um primeiro subconjunto de centros de conversação que corresponda a um bloco frasal no segundo comando de linguagem natural que contém uma primeira referência anafórica da uma ou mais referências anafóricas; e calcular o segundo conjunto de um ou mais centros de conversação com base no conjunto temporário de um ou mais centros de conversação e no primeiro subconjunto de centros de conversação.
  26. 26. Método, de acordo com a reivindicação 25, CARACTERIZADO por adicionalmente compreender:
    determinar se a primeira referência anafórica é acompanhada por um verbo no segundo comando de linguagem natural;
    de acordo com uma determinação de que a referência anafórica é acompanhada por um verbo:
    pesquisar o primeiro conjunto de um ou mais centros de conversação para
    Petição 870190054547, de 13/06/2019, pág. 133/227
    13/32 encontrar um primeiro centro de conversação de ação que se refere a um verbo de ação;e calcula o segundo conjunto de um ou mais centros de conversação com base no conjunto temporário de um ou mais centros de conversação, no primeiro subconjunto de centros de conversação, e no primeiro centro de conversação de ação.
  27. 27. Método, de acordo com a reivindicação 25, CARACTERIZADO por adicionalmente compreender:
    determinar se a primeira referência anafórica é uma referência dêitica que se refere a algum objeto no ambiente;
    de acordo com uma determinação de que a referência anafórica é uma referência dêitica, calcular o segundo conjunto de um ou mais centros de conversação com base no conjunto temporário de um ou mais centros de conversação, e uma característica do objeto.
  28. 28. Método, de acordo com a reivindicação 25, CARACTERIZADO por adicionalmente compreender:
    determinar se a primeira referência anafórica é uma referência a uma propriedade de visualização na visualização de dados atualizada;
    de acordo com uma determinação de que a referência anafórica é uma referência dêitica, calcular o segundo conjunto de um ou mais centros de conversação com base no conjunto temporário de um ou mais centros de conversação, e dados relacionados à propriedade de visualização.
  29. 29. Método, de acordo com a reivindicação 21, CARACTERIZADO pelo fato de que:
    identificar a uma ou mais formas de pragmática compreende determinar se o segundo comando de linguagem natural é uma enunciação de reparo por meio da determinação de se a estrutura de frase corresponde a uma ou mais enunciações de
    Petição 870190054547, de 13/06/2019, pág. 134/227
    14/32 reparo predefinidas; e derivar o segundo conjunto de um ou mais centros de conversação compreende:
    de acordo com a determinação de que o segundo comando de linguagem natural é uma enunciação de reparo:
    calcular o segundo conjunto de um ou mais centros de conversação com base no conjunto temporário de um ou mais centros de conversação; e atualizar um ou mais atributos de dados no segundo conjunto de um ou mais centros de conversação com base na uma ou mais enunciações de reparo predefinidas e na estrutura de frase.
  30. 30. Método, de acordo com a reivindicação 29, CARACTERIZADO por adicionalmente compreender:
    determinar se a estrutura da frase corresponde a uma enunciação de reparo para mudar um comportamento padrão relacionado à exibição de uma visualização de dados; e de acordo com uma determinação de que a estrutura da frase corresponde a uma enunciação de reparo para modificar um comportamento padrão, modificando o comportamento padrão relacionado à exibição.
  31. 31. Método, de acordo com a reivindicação 21, CARACTERIZADO pelo fato de que:
    identificar a uma ou mais formas de pragmática compreende determinar se o segundo comando de linguagem natural é uma expressão conjuntiva (i) determinando a presença implícita ou explícita de conjunções na estrutura de frase, e (ii) determinando se o conjunto temporário de um ou mais centros de conversação inclui cada centro de conversação no primeiro conjunto de um ou mais centros de conversação; e derivar o segundo conjunto de um ou mais centros de conversação
    Petição 870190054547, de 13/06/2019, pág. 135/227
    15/32 compreende:
    de acordo com a determinação de que o segundo comando de linguagem natural é uma expressão conjuntiva, calcular o segundo conjunto de um ou mais centros de conversação baseado no conjunto temporário de um ou mais centros de conversação.
  32. 32. Método, de acordo com a reivindicação 31, CARACTERIZADO por adicionalmente compreender:
    determinar se o segundo comando de linguagem natural tem mais de um conjunto; e de acordo com a determinação de que o segundo comando de linguagem natural possui mais de um conjunto, calcular o segundo conjunto de uma ou mais funções analíticas por meio da linearização do segundo comando de linguagem natural.
  33. 33. Método, de acordo com a reivindicação 32, CARACTERIZADO pelo fato de que linearizar o segundo comando de linguagem compreende:
    gerar uma árvore de análise para o segundo comando de linguagem natural;
    atravessar a árvore de análise em pós-ordem para extrair uma primeira frase analítica e uma segunda frase analítica, em que a primeira frase analítica e a segunda frase analítica são nós adjacentes na árvore de análise;
    calcular uma primeira função analítica e uma segunda função analítica correspondendo à primeira frase analítica e à segunda frase analítica, respectivamente; e combinar a primeira função analítica com a segunda função analítica mediante aplicação de um ou mais operadores lógicos com base em uma ou mais características da primeira função analítica e da segunda função analítica, em que a uma ou mais características incluem tipo de atributo, tipo de operador e um valor.
  34. 34. Método, de acordo com a reivindicação 33, CARACTERIZADO pelo fato
    Petição 870190054547, de 13/06/2019, pág. 136/227
    16/32 de que:
    a primeira função analítica compreende um primeiro atributo, um primeiro operador e um primeiro valor;
    a segunda função analítica compreende um segundo atributo, um segundo operador e um segundo valor; e combinar a primeira função analítica com a segunda função analítica compreende:
    determinar se o primeiro atributo é um atributo do tipo categórico ou um atributo do tipo ordenado, e determinar se o segundo atributo é um atributo do tipo categórico ou um atributo do tipo ordenado;
    determinar se o primeiro atributo e o segundo atributo são idênticos; e de acordo com uma determinação de que o primeiro atributo e o segundo atributo são idênticos e ambos são atributos de tipo categórico, aplicar um operador de união para combinar a primeira função analítica e a segunda função analítica.
  35. 35. Método, de acordo com a reivindicação 33, CARACTERIZADO pelo fato de que:
    a primeira função analítica compreende um primeiro atributo, um primeiro operador e um primeiro valor;
    a segunda função analítica compreende um segundo atributo, um segundo operador e um segundo valor; e combinar a primeira função analítica com a segunda função analítica compreende:
    determinar se o primeiro atributo é um atributo do tipo categórico ou um atributo do tipo ordenado, e determinar se o segundo atributo é um atributo do tipo categórico ou um atributo do tipo ordenado;
    determinar se o primeiro atributo e o segundo atributo são idênticos; e de acordo com uma determinação de que o primeiro atributo e o segundo
    Petição 870190054547, de 13/06/2019, pág. 137/227
    17/32 atributo são não-idênticos, aplicar o operador de interseção para combinar a primeira função analítica e a segunda função analítica.
  36. 36. Método, de acordo com a reivindicação 33, CARACTERIZADO pelo fato de que:
    a primeira função analítica compreende um primeiro atributo, um primeiro operador e um primeiro valor;
    a segunda função analítica compreende um segundo atributo, um segundo operador e um segundo valor; e combinar a primeira função analítica com a segunda função analítica compreende:
    determinar se o primeiro atributo é um atributo do tipo categórico ou um atributo do tipo ordenado, e determinar se o segundo atributo é um atributo do tipo categórico ou um atributo do tipo ordenado;
    determinar se o primeiro atributo e o segundo atributo são idênticos; e de acordo com uma determinação de que o primeiro atributo e o segundo atributo são idênticos, e ambos são atributos do tipo ordenado:
    determinar os tipos de operadores do primeiro operador e do segundo operador; e de acordo com uma determinação de que tanto o primeiro operador quanto o segundo operador são operadores de igualdade, aplicar o operador de união para combinar a primeira função analítica e a segunda função analítica.
  37. 37. Método, de acordo com a reivindicação 33, CARACTERIZADO pelo fato de que:
    a primeira função analítica compreende um primeiro atributo, um primeiro operador e um primeiro valor;
    a segunda função analítica compreende um segundo atributo, um segundo operador e um segundo valor; e
    Petição 870190054547, de 13/06/2019, pág. 138/227
    18/32 combinar a primeira função analítica com a segunda função analítica compreende:
    determinar se o primeiro atributo é um atributo do tipo categórico ou um atributo do tipo ordenado, e determinar se o segundo atributo é um atributo do tipo categórico ou um atributo do tipo ordenado;
    determinar se o primeiro atributo e o segundo atributo são idênticos; e de acordo com uma determinação de que o primeiro atributo e o segundo atributo são idênticos, e ambos são atributos do tipo ordenado:
    determinar os tipos de operadores do primeiro operador e do segundo operador; e de acordo com uma determinação de que o primeiro operador é um operador “menor do que” e o segundo operador é um operador “maior do que”:
    determinar se o primeiro valor é menor do que o segundo valor; e de acordo com uma determinação de que o primeiro valor é menor do que o segundo valor, aplicar o operador de união para combinar a primeira função analítica e a segunda função analítica.
  38. 38. Método, de acordo com a reivindicação 33, CARACTERIZADO pelo fato de que:
    a primeira função analítica compreende um primeiro atributo, um primeiro operador e um primeiro valor;
    a segunda função analítica compreende um segundo atributo, um segundo operador e um segundo valor; e combinar a primeira função analítica com a segunda função analítica compreende:
    determinar se o primeiro atributo é um atributo do tipo categórico ou um atributo do tipo ordenado, e determinar se o segundo atributo é um atributo do tipo categórico ou um atributo do tipo ordenado;
    Petição 870190054547, de 13/06/2019, pág. 139/227
    19/32 determinar se o primeiro atributo e o segundo atributo são idênticos; e de acordo com uma determinação de que o primeiro atributo e o segundo atributo são idênticos, e ambos são atributos do tipo ordenado:
    determinar os tipos de operadores do primeiro operador e do segundo operador; e de acordo com uma determinação de que o primeiro operador é um operador “maior do que” e o segundo operador é um operador “menor do que”:
    determinar se o primeiro valor é menor do que o segundo valor; e de acordo com uma determinação de que o primeiro valor é menor do que o segundo valor, aplicar o operador de interseção para combinar a primeira função analítica e a segunda função analítica.
  39. 39. Método, de acordo com a reivindicação 20, CARACTERIZADO por adicionalmente compreender:
    calcular o parentesco semântico entre o segundo conjunto de uma ou mais frases analíticas extraídas e um ou mais atributos de dados incluídos na visualização de dados atualizada, e calcular funções analíticas associadas ao segundo conjunto de uma ou mais frases analíticas, dessa forma criando o segundo conjunto de uma ou mais frases funcionais, com base no parentesco semântico de um ou mais atributos de dados.
  40. 40. Método, de acordo com a reivindicação 39, CARACTERIZADO pelo fato de que calcular o parentesco semântico compreende:
    treinar um primeiro modelo de rede neural em um corpus de texto grande, dessa forma aprendendo representações vetoriais de palavras;
    calcular um primeiro vetor de palavra para uma primeira palavra em uma primeira frase no segundo conjunto de uma ou mais frases analíticas usando um segundo modelo de rede neural, o primeiro mapeamento de vetor de palavra mapeando a primeira palavra para as representações vetoriais de palavras;
    Petição 870190054547, de 13/06/2019, pág. 140/227
    20/32 calcular um segundo vetor de palavra para um primeiro atributo de dados no um ou mais atributos de dados usando o segundo modelo de rede neural, o segundo vetor de palavra mapeando o primeiro atributo de dados para as representações vetoriais de palavras; e calcular o parentesco entre o primeiro vetor de palavra e o segundo vetor de palavra usando uma métrica de similaridade.
  41. 41. Método, de acordo com a reivindicação 40, CARACTERIZADO pelo fato de que o primeiro modelo de rede neural compreende o modelo Word2vec®.
  42. 42. Método, de acordo com a reivindicação 40, CARACTERIZADO pelo fato de que o segundo modelo de rede neural compreende o modelo de rede neural recorrente.
  43. 43. Método, de acordo com a reivindicação 40, CARACTERIZADO pelo fato de que a métrica de similaridade se baseia pelo menos (i) na distância de WuPalmer entre os sentidos de palavra associados ao primeiro vetor de palavra e ao segundo vetor de palavra, (ii) em um fator de ponderação, e (iii) em uma distância de cosseno em pares entre o primeiro vetor de palavra e o segundo vetor de palavra.
  44. 44. Método, de acordo com a reivindicação 39, CARACTERIZADO pelo fato de que calcular as funções analíticas compreende:
    obter definições de palavras para o segundo conjunto de uma ou mais frases analíticas a partir de um dicionário disponível publicamente;
    determinar se as definições de palavras contêm um ou mais adjetivos predefinidos usando uma API de análise morfossintática fornecida por uma biblioteca de ferramentas para processamento de linguagem natural; e de acordo com a determinação de que as definições de palavras contêm um ou mais adjetivos predefinidos, mapear o um ou mais adjetivos predefinidos para uma ou mais funções analíticas.
  45. 45. Dispositivo eletrônico, CARACTERIZADO por compreender:
    Petição 870190054547, de 13/06/2019, pág. 141/227
    21/32 um meio de exibição;
    um ou mais processadores;
    memória; e um ou mais programas, em que o um ou mais programas são armazenados na memória e configurados para serem executados pelo um ou mais processadores, o um ou mais programas incluindo instruções para:
    exibir uma visualização de dados baseado em um primeiro conjunto de dados recuperado a partir de uma base de dados usando um primeiro conjunto de uma ou mais consultas;
    receber uma primeira entrada do usuário para especificar um primeiro comando de linguagem natural relacionado à visualização de dados;
    extrair um primeiro conjunto de uma ou mais frases analíticas independentes a partir do primeiro comando de linguagem natural;
    calcular um primeiro conjunto de um ou mais centros de conversação associados ao primeiro comando de linguagem natural baseado no primeiro conjunto de uma ou mais frases analíticas;
    calcular um primeiro conjunto de funções analíticas associadas ao primeiro conjunto de um ou mais centros de conversação, criando assim um primeiro conjunto de uma ou mais frases funcionais;
    atualizar a visualização de dados baseado no primeiro conjunto de uma ou mais frases funcionais;
    receber uma segunda entrada do usuário para especificar um segundo comando de linguagem natural relacionado à visualização de dados atualizada;
    extrair um segundo conjunto de uma ou mais frases analíticas independentes a partir do segundo comando de linguagem natural;
    calcular um conjunto temporário de um ou mais centros de conversação associados ao segundo comando de linguagem natural baseado no segundo
    Petição 870190054547, de 13/06/2019, pág. 142/227
    22/32 conjunto de uma ou mais frases analíticas;
    calcular a coesão entre o primeiro conjunto de uma ou mais frases analíticas e o segundo conjunto de uma ou mais frases analíticas;
    derivar um segundo conjunto de um ou mais centros de conversação a partir do primeiro conjunto de um ou mais centros de conversação e do conjunto temporário de um ou mais centros de conversação com base na coesão;
    calcular um segundo conjunto de uma ou mais funções analíticas associadas ao segundo conjunto de um ou mais centros de conversação, dessa forma criando um segundo conjunto de uma ou mais frases funcionais; e atualizar a visualização de dados baseado no segundo conjunto de uma ou mais frases funcionais.
  46. 46. Meio de armazenamento não-temporário legível por computador armazenando um ou mais programas configurados para execução por um dispositivo eletrônico com um meio de exibição, CARACTERIZADO pelo fato de que o um ou mais programas compreendem instruções para:
    exibir uma visualização de dados baseado em um primeiro conjunto de dados recuperado a partir de uma base de dados usando um primeiro conjunto de uma ou mais consultas;
    receber uma primeira entrada do usuário para especificar um primeiro comando de linguagem natural relacionado à visualização de dados;
    extrair um primeiro conjunto de uma ou mais frases analíticas independentes a partir do primeiro comando de linguagem natural;
    calcular um primeiro conjunto de um ou mais centros de conversação associados ao primeiro comando de linguagem natural baseado no primeiro conjunto de uma ou mais frases analíticas;
    calcular um primeiro conjunto de funções analíticas associadas ao primeiro conjunto de um ou mais centros de conversação, criando assim um primeiro
    Petição 870190054547, de 13/06/2019, pág. 143/227
    23/32 conjunto de uma ou mais frases funcionais;
    atualizar a visualização de dados baseado no primeiro conjunto de uma ou mais frases funcionais;
    receber uma segunda entrada do usuário para especificar um segundo comando de linguagem natural relacionado à visualização de dados atualizada;
    extrair um segundo conjunto de uma ou mais frases analíticas independentes a partir do segundo comando de linguagem natural;
    calcular um conjunto temporário de um ou mais centros de conversação associados ao segundo comando de linguagem natural baseado no segundo conjunto de uma ou mais frases analíticas;
    calcular a coesão entre o primeiro conjunto de uma ou mais frases analíticas e o segundo conjunto de uma ou mais frases analíticas;
    derivar um segundo conjunto de um ou mais centros de conversação a partir do primeiro conjunto de um ou mais centros de conversação e do conjunto temporário de um ou mais centros de conversação com base na coesão;
    calcular um segundo conjunto de uma ou mais funções analíticas associadas ao segundo conjunto de um ou mais centros de conversação, dessa forma criando um segundo conjunto de uma ou mais frases funcionais; e atualizar a visualização de dados baseado no segundo conjunto de uma ou mais frases funcionais.
  47. 47. Método para utilizar linguagem natural para análise visual de um conjunto de dados, CARACTERIZADO por compreender:
    em um computador provido de um meio de exibição, um ou mais processadores, e uma memória armazenando um ou mais programas configurados para execução pelo um ou mais processadores:
    exibir uma visualização de dados baseado em um primeiro conjunto de dados recuperado a partir de uma base de dados usando um primeiro conjunto de
    Petição 870190054547, de 13/06/2019, pág. 144/227
    24/32 uma ou mais consultas;
    receber uma primeira entrada do usuário para especificar um primeiro comando de linguagem natural relacionado à visualização de dados;
    extrair um primeiro conjunto de uma ou mais frases analíticas independentes a partir do primeiro comando de linguagem natural;
    calcular um primeiro conjunto de um ou mais centros de conversação associados ao primeiro comando de linguagem natural baseado no primeiro conjunto de uma ou mais frases analíticas;
    calcular um primeiro conjunto de funções analíticas associadas ao primeiro conjunto de um ou mais centros de conversação, criando assim um primeiro conjunto de uma ou mais frases funcionais;
    atualizar a visualização de dados baseado no primeiro conjunto de uma ou mais frases funcionais;
    receber uma segunda entrada do usuário para especificar um segundo comando de linguagem natural relacionado à visualização de dados atualizada;
    extrair um segundo conjunto de uma ou mais frases analíticas independentes a partir do segundo comando de linguagem natural;
    calcular um conjunto temporário de um ou mais centros de conversação associados ao segundo comando de linguagem natural baseado no segundo conjunto de uma ou mais frases analíticas;
    derivar um segundo conjunto de um ou mais centros de conversação a partir do primeiro conjunto de um ou mais centros de conversação e do conjunto temporário de um ou mais centros de conversação usando uma ou mais regras de transição; e atualizar a visualização de dados com base no segundo conjunto de um ou mais centros de conversação.
  48. 48. Método, de acordo com a reivindicação 47, CARACTERIZADO pelo fato
    Petição 870190054547, de 13/06/2019, pág. 145/227
    25/32 de que atualizar a visualização de dados com base no segundo conjunto de um ou mais centros de conversação compreende:
    determinar um ou mais atributos de dados correspondendo ao segundo conjunto de um ou mais centros de conversação;
    varrer visualizações de dados exibidas para identificar uma ou mais das visualizações de dados exibidas que contêm marcas de dados cujas características correspondem a um primeiro atributo de dados em um ou mais atributos de dados; e realçar as marcas de dados cujas características correspondem ao primeiro atributo de dados.
  49. 49. Método, de acordo com a reivindicação 48, CARACTERIZADO por adicionalmente compreender filtrar resultados das visualizações de dados exibidas que contêm marcas de dados cujas características não correspondem ao um ou mais atributos de dados.
  50. 50. Método, de acordo com a reivindicação 49, CARACTERIZADO por adicionalmente compreender receber uma entrada do usuário para determinar se irá filtrar ou realçar as marcas de dados, e filtrar ou realçar as marcas de dados nas visualizações de dados exibidas com base na determinação.
  51. 51. Método, de acordo com a reivindicação 48, CARACTERIZADO pelo fato de que as características de visualização incluem um ou mais dentre cor, tamanho e formato.
  52. 52. Método, de acordo com a reivindicação 48, CARACTERIZADO pelo fato de que as características de visualização correspondem a uma codificação visual de marcas de dados.
  53. 53. Método, de acordo com a reivindicação 52, CARACTERIZADO pelo fato de que a codificação visual é um ou mais dentre cor, tamanho e formato.
  54. 54. Método, de acordo com a reivindicação 48, CARACTERIZADO por adicionalmente compreender:
    Petição 870190054547, de 13/06/2019, pág. 146/227
    26/32 determinar se nenhuma das visualizações de dados exibidas contém marcas de dados cujas características correspondem ao primeiro atributo de dados; e de acordo com a determinação de que nenhuma das visualizações de dados exibidas contém marcas de dados cujas características correspondem ao primeiro atributo de dados:
    gerar uma especificação para uma nova visualização de dados com o primeiro atributo de dados; e exibir a nova visualização de dados.
  55. 55. Método, de acordo com a reivindicação 54, CARACTERIZADO pelo fato de que exibir a nova visualização de dados adicionalmente compreende:
    determinar um tipo de gráfico baseado na especificação; e gerar e exibir o gráfico.
  56. 56. Método, de acordo com a reivindicação 55, CARACTERIZADO pelo fato de que o gráfico é posicionado usando um algoritmo de disposição baseado em grade bidimensional, coordenado automaticamente com outras visualizações de dados.
  57. 57. Método, de acordo com a reivindicação 47, CARACTERIZADO por adicionalmente compreender:
    calcular um segundo conjunto de uma ou mais funções analíticas associadas ao segundo conjunto de um ou mais centros de conversação, dessa forma criando um segundo conjunto de uma ou mais frases funcionais;
    selecionar uma primeira frase funcional a partir do segundo conjunto de uma ou mais frases funcionais, em que a primeira frase funcional compreende um critério de seleção de dados parametrizado;
    selecionar um intervalo inicial para valores dos parâmetros do critério de seleção de dados parametrizado;
    exibir um controle de interface editável do usuário correspondendo ao critério
    Petição 870190054547, de 13/06/2019, pág. 147/227
    27/32 de seleção de dados parametrizado, em que o controle de interface do usuário exibe os valores atuais dos parâmetros; e ordenar um conjunto exibido de um ou mais controles de interface do usuário editáveis com base na ordem das consultas no segundo comando de linguagem natural, em que a ordem das consultas é inferida enquanto se extrai o segundo conjunto de uma ou mais frases analíticas a partir do segundo comando de linguagem natural.
  58. 58. Método, de acordo com a reivindicação 57, CARACTERIZADO pelo fato de que o controle de interface do usuário permite o ajuste da primeira frase funcional.
  59. 59. Método, de acordo com a reivindicação 58, CARACTERIZADO pelo fato de que o controle de interface do usuário exibe um controle deslizante, que permite que um usuário ajuste a primeira frase funcional.
  60. 60. Método, de acordo com a reivindicação 57, CARACTERIZADO pelo fato de que ordenar o conjunto exibido de um ou mais controles de interface do usuário editáveis adicionalmente compreende utilizar uma biblioteca que facilita a colocação compacta da visualização em escala de palavra pequena dentro do texto.
  61. 61. Método, de acordo com a reivindicação 60, CARACTERIZADO pelo fato de que a biblioteca é Sparklificator®.
  62. 62. Método, de acordo com a reivindicação 47, CARACTERIZADO por adicionalmente compreender:
    determinar um primeiro símbolo no segundo comando de linguagem natural que não corresponde a nenhuma das frases analíticas no segundo conjunto de uma ou mais frases analíticas;
    buscar um termo grafado corretamente correspondendo ao primeiro símbolo usando uma biblioteca de busca através da comparação do primeiro símbolo com um ou mais aspectos do primeiro conjunto de dados;
    Petição 870190054547, de 13/06/2019, pág. 148/227
    28/32 substituir o termo grafado corretamente para o primeiro símbolo no segundo comando de linguagem natural para obter um terceiro comando de linguagem natural; e extrair o segundo conjunto de uma ou mais frases analíticas a partir do terceiro comando de linguagem natural.
  63. 63. Método, de acordo com a reivindicação 62, CARACTERIZADO pelo fato de que o um ou mais aspectos incluem atributos de dados, valores de células e palavras-chaves relacionadas do primeiro conjunto de dados.
  64. 64. Método, de acordo com a reivindicação 62, CARACTERIZADO pelo fato de que a biblioteca de pesquisa é Fuse.js®.
  65. 65. Método, de acordo com a reivindicação 62, CARACTERIZADO por adicionalmente compreender:
    determinar se não há nenhum termo grafado corretamente correspondendo ao primeiro símbolo; e de acordo com uma determinação de que não há termo grafado corretamente correspondendo ao primeiro símbolo:
    analisar o segundo comando de linguagem natural para obter uma árvore de análise;
    podar a árvore de análise para remover a porção da árvore correspondendo ao primeiro símbolo; e extrair o segundo conjunto de uma ou mais frases analíticas com base na árvore de análise podada.
  66. 66. Método, de acordo com a reivindicação 65, CARACTERIZADO por adicionalmente compreender gerar uma realimentação textual indicando que o primeiro símbolo não foi reconhecido, e, portanto, removido do segundo comando de linguagem natural.
  67. 67. Método, de acordo com a reivindicação 62, CARACTERIZADO por
    Petição 870190054547, de 13/06/2019, pág. 149/227
    29/32 adicionalmente compreender exibir o primeiro símbolo.
  68. 68. Método, de acordo com a reivindicação 62, CARACTERIZADO por adicionalmente compreender gerar uma realimentação textual indicando que o termo grafado corretamente é usado como substituto para primeiro símbolo no segundo comando de linguagem natural.
  69. 69. Método, de acordo com a reivindicação 68, CARACTERIZADO por adicionalmente compreender exibir e realçar o termo grafado corretamente.
  70. 70. Dispositivo eletrônico, CARACTERIZADO por compreender:
    um meio de exibição;
    um ou mais processadores;
    memória; e um ou mais programas, em que o um ou mais programas são armazenados na memória e configurados para serem executados pelo um ou mais processadores, o um ou mais programas incluindo instruções para:
    exibir uma visualização de dados baseado em um primeiro conjunto de dados recuperado a partir de uma base de dados usando um primeiro conjunto de uma ou mais consultas;
    receber uma primeira entrada do usuário para especificar um primeiro comando de linguagem natural relacionado à visualização de dados;
    extrair um primeiro conjunto de uma ou mais frases analíticas independentes a partir do primeiro comando de linguagem natural;
    calcular um primeiro conjunto de um ou mais centros de conversação associados ao primeiro comando de linguagem natural baseado no primeiro conjunto de uma ou mais frases analíticas;
    calcular um primeiro conjunto de funções analíticas associadas ao primeiro conjunto de um ou mais centros de conversação, criando assim um primeiro conjunto de uma ou mais frases funcionais;
    Petição 870190054547, de 13/06/2019, pág. 150/227
    30/32 atualizar a visualização de dados baseado no primeiro conjunto de uma ou mais frases funcionais;
    receber uma segunda entrada do usuário para especificar um segundo comando de linguagem natural relacionado à visualização de dados atualizada;
    extrair um segundo conjunto de uma ou mais frases analíticas independentes a partir do segundo comando de linguagem natural;
    calcular um conjunto temporário de um ou mais centros de conversação associados ao segundo comando de linguagem natural baseado no segundo conjunto de uma ou mais frases analíticas;
    derivar um segundo conjunto de um ou mais centros de conversação a partir do primeiro conjunto de um ou mais centros de conversação e do conjunto temporário de um ou mais centros de conversação usando uma ou mais regras de transição; e atualizar a visualização de dados com base no segundo conjunto de um ou mais centros de conversação, em que a atualização compreende:
    determinar um ou mais atributos de dados correspondendo ao segundo conjunto de um ou mais centros de conversação;
    varrer visualizações de dados exibidas para identificar uma ou mais das visualizações de dados exibidas que contêm marcas de dados cujas características correspondem a um primeiro atributo de dados em um ou mais atributos de dados; e realçar as marcas de dados cujas características correspondem ao primeiro atributo de dados.
  71. 71. Meio de armazenamento não-temporário legível por computador armazenando um ou mais programas configurados para execução por um dispositivo eletrônico com um meio de exibição, CARACTERIZADO pelo fato de que o um ou mais programas compreendem instruções para:
    exibir uma visualização de dados baseado em um primeiro conjunto de
    Petição 870190054547, de 13/06/2019, pág. 151/227
    31/32 dados recuperado a partir de uma base de dados usando um primeiro conjunto de uma ou mais consultas;
    receber uma primeira entrada do usuário para especificar um primeiro comando de linguagem natural relacionado à visualização de dados;
    extrair um primeiro conjunto de uma ou mais frases analíticas independentes a partir do primeiro comando de linguagem natural;
    calcular um primeiro conjunto de um ou mais centros de conversação associados ao primeiro comando de linguagem natural baseado no primeiro conjunto de uma ou mais frases analíticas;
    calcular um primeiro conjunto de funções analíticas associadas ao primeiro conjunto de um ou mais centros de conversação, criando assim um primeiro conjunto de uma ou mais frases funcionais;
    atualizar a visualização de dados baseado no primeiro conjunto de uma ou mais frases funcionais;
    receber uma segunda entrada do usuário para especificar um segundo comando de linguagem natural relacionado à visualização de dados atualizada;
    extrair um segundo conjunto de uma ou mais frases analíticas independentes a partir do segundo comando de linguagem natural;
    calcular um conjunto temporário de um ou mais centros de conversação associados ao segundo comando de linguagem natural baseado no segundo conjunto de uma ou mais frases analíticas;
    derivar um segundo conjunto de um ou mais centros de conversação a partir do primeiro conjunto de um ou mais centros de conversação e do conjunto temporário de um ou mais centros de conversação usando uma ou mais regras de transição; e atualizar a visualização de dados com base no segundo conjunto de um ou mais centros de conversação, em que a atualização compreende:
    Petição 870190054547, de 13/06/2019, pág. 152/227
    32/32 determinar um ou mais atributos de dados correspondendo ao segundo conjunto de um ou mais centros de conversação;
    varrer visualizações de dados exibidas para identificar uma ou mais das visualizações de dados exibidas que contêm marcas de dados cujas características correspondem a um primeiro atributo de dados em um ou mais atributos de dados; e realçar as marcas de dados cujas características correspondem ao primeiro atributo de dados.
BR112019012110-2A 2017-05-03 2018-05-03 sistemas e métodos de aplicação de princípios de pragmática para interação com analíticas visuais BR112019012110A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201762500999P 2017-05-03 2017-05-03
US15/804,991 US10817527B1 (en) 2016-04-12 2017-11-06 Systems and methods of using natural language processing for visual analysis of a data set
PCT/US2018/030959 WO2018204696A1 (en) 2017-05-03 2018-05-03 Systems and methods of applying pragmatics principles for interaction with visual analytics

Publications (1)

Publication Number Publication Date
BR112019012110A2 true BR112019012110A2 (pt) 2019-10-29

Family

ID=62530529

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112019012110-2A BR112019012110A2 (pt) 2017-05-03 2018-05-03 sistemas e métodos de aplicação de princípios de pragmática para interação com analíticas visuais

Country Status (8)

Country Link
US (1) US10817527B1 (pt)
EP (2) EP3535676A1 (pt)
JP (2) JP7279997B2 (pt)
CN (1) CN110121705B (pt)
AU (3) AU2018261160B2 (pt)
BR (1) BR112019012110A2 (pt)
CA (1) CA3043923A1 (pt)
WO (1) WO2018204696A1 (pt)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10417247B2 (en) 2014-09-25 2019-09-17 Oracle International Corporation Techniques for semantic searching
US10664488B2 (en) 2014-09-25 2020-05-26 Oracle International Corporation Semantic searches in a business intelligence system
US10896297B1 (en) 2017-12-13 2021-01-19 Tableau Software, Inc. Identifying intent in visual analytical conversations
US11314811B1 (en) * 2018-08-13 2022-04-26 Rentpath Holdings, Inc. Systems and methods for semantic search engine analysis
US10902045B2 (en) 2018-09-18 2021-01-26 Tableau Software, Inc. Natural language interface for building data visualizations, including cascading edits to filter expressions
US11048871B2 (en) 2018-09-18 2021-06-29 Tableau Software, Inc. Analyzing natural language expressions in a data visualization user interface
JP7202452B2 (ja) * 2018-09-18 2023-01-11 タブロー ソフトウェア,インコーポレイテッド データ可視化ユーザインターフェースにおける自然言語表現の分析
US11055489B2 (en) * 2018-10-08 2021-07-06 Tableau Software, Inc. Determining levels of detail for data visualizations using natural language constructs
US11301640B2 (en) * 2018-10-24 2022-04-12 International Business Machines Corporation Cognitive assistant for co-generating creative content
US11263277B1 (en) * 2018-11-01 2022-03-01 Intuit Inc. Modifying computerized searches through the generation and use of semantic graph data models
CN110008250B (zh) * 2019-03-07 2024-03-15 平安科技(深圳)有限公司 基于数据挖掘的社保数据处理方法、装置和计算机设备
US11314817B1 (en) 2019-04-01 2022-04-26 Tableau Software, LLC Methods and systems for inferring intent and utilizing context for natural language expressions to modify data visualizations in a data visualization interface
CN110598041A (zh) * 2019-09-06 2019-12-20 广州努比互联网科技有限公司 一种FlACS实时分析方法与装置
US11042558B1 (en) 2019-09-06 2021-06-22 Tableau Software, Inc. Determining ranges for vague modifiers in natural language commands
US11875116B2 (en) * 2019-12-20 2024-01-16 Intuit Inc. Machine learning models with improved semantic awareness
US11714807B2 (en) * 2019-12-24 2023-08-01 Sap Se Platform for conversation-based insight search in analytics systems
US11714826B2 (en) * 2020-02-27 2023-08-01 Intuitive Data Analytics, LLC Generation and adaptation of visualizations from one or more data sets stored using a single-branch approach
US11914628B1 (en) 2020-03-18 2024-02-27 Tableau Software, LLC Incorporating data visualizations into database conversational interfaces
CN111538766B (zh) * 2020-05-19 2023-06-30 支付宝(杭州)信息技术有限公司 一种文本分类方法、装置、处理设备和票据分类系统
US11487943B2 (en) * 2020-06-17 2022-11-01 Tableau Software, LLC Automatic synonyms using word embedding and word similarity models
US11755572B1 (en) * 2020-06-26 2023-09-12 The Travelers Indemnity Company Systems, methods, and apparatus for natural language queries and data visualizations
US11522820B2 (en) 2020-07-27 2022-12-06 Tableau Software, LLC Conversational natural language interfaces for data analysis
US11442964B1 (en) 2020-07-30 2022-09-13 Tableau Software, LLC Using objects in an object model as database entities
US11232120B1 (en) * 2020-07-30 2022-01-25 Tableau Software, LLC Schema viewer searching for a data analytics platform
US11216450B1 (en) * 2020-07-30 2022-01-04 Tableau Software, LLC Analyzing data using data fields from multiple objects in an object model
US11698933B1 (en) 2020-09-18 2023-07-11 Tableau Software, LLC Using dynamic entity search during entry of natural language commands for visual data analysis
US11301631B1 (en) 2020-10-05 2022-04-12 Tableau Software, LLC Visually correlating individual terms in natural language input to respective structured phrases representing the natural language input
US11689589B1 (en) 2021-09-20 2023-06-27 Tableau Software, LLC Using a communications application to analyze and distribute data analytics
US11775144B2 (en) * 2021-11-15 2023-10-03 Salesforce, Inc. Place-based semantic similarity platform
CN114935997B (zh) * 2022-04-24 2023-11-07 阿里巴巴(中国)有限公司 图表交互方法及电子设备
CN117560380B (zh) * 2024-01-11 2024-03-19 北京大学 一种基于智能合约的数据语用提取系统

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040030741A1 (en) * 2001-04-02 2004-02-12 Wolton Richard Ernest Method and apparatus for search, visual navigation, analysis and retrieval of information from networks with remote notification and content delivery
US7019749B2 (en) 2001-12-28 2006-03-28 Microsoft Corporation Conversational interface agent
US7606714B2 (en) * 2003-02-11 2009-10-20 Microsoft Corporation Natural language classification within an automated response system
US7089266B2 (en) * 2003-06-02 2006-08-08 The Board Of Trustees Of The Leland Stanford Jr. University Computer systems and methods for the query and visualization of multidimensional databases
US7613719B2 (en) * 2004-03-18 2009-11-03 Microsoft Corporation Rendering tables with natural language commands
CN101493830A (zh) * 2004-04-29 2009-07-29 Nec软件有限公司 结构化自然语言查询和知识系统
US7455157B2 (en) 2004-07-27 2008-11-25 Ford Global Technologies, Llc Ratcheting one-way clutch having rockers
US7640162B2 (en) * 2004-12-14 2009-12-29 Microsoft Corporation Semantic canvas
US20060218140A1 (en) * 2005-02-09 2006-09-28 Battelle Memorial Institute Method and apparatus for labeling in steered visual analysis of collections of documents
CA2603558A1 (en) * 2005-04-05 2006-10-12 Lehman Brothers Inc. Systems and methods for order analysis, enrichment, and execution
US20090299990A1 (en) * 2008-05-30 2009-12-03 Vidya Setlur Method, apparatus and computer program product for providing correlations between information from heterogenous sources
US8359191B2 (en) 2008-08-01 2013-01-22 International Business Machines Corporation Deriving ontology based on linguistics and community tag clouds
US8212817B2 (en) * 2008-10-31 2012-07-03 Hewlett-Packard Development Company, L.P. Spatial temporal visual analysis of thermal data
US8555185B2 (en) 2009-06-08 2013-10-08 Apple Inc. User interface for multiple display regions
US8489641B1 (en) 2010-07-08 2013-07-16 Google Inc. Displaying layers of search results on a map
WO2013012107A1 (ko) 2011-07-19 2013-01-24 엘지전자 주식회사 전자 기기 및 그 제어 방법
US9400835B2 (en) * 2011-07-28 2016-07-26 Nokia Technologies Oy Weighting metric for visual search of entity-relationship databases
US20130332450A1 (en) * 2012-06-11 2013-12-12 International Business Machines Corporation System and Method for Automatically Detecting and Interactively Displaying Information About Entities, Activities, and Events from Multiple-Modality Natural Language Sources
US9508169B2 (en) 2012-09-14 2016-11-29 Google Inc. Method and apparatus for contextually varying amounts of imagery on a map
US10304465B2 (en) 2012-10-30 2019-05-28 Google Technology Holdings LLC Voice control user interface for low power mode
KR102211595B1 (ko) * 2012-12-07 2021-02-04 삼성전자주식회사 음성 인식 장치 및 그 제어 방법
US20140192140A1 (en) * 2013-01-07 2014-07-10 Microsoft Corporation Visual Content Modification for Distributed Story Reading
US9665662B1 (en) * 2013-06-13 2017-05-30 DataRPM Corporation Methods and system for providing real-time business intelligence using natural language queries
US9575720B2 (en) 2013-07-31 2017-02-21 Google Inc. Visual confirmation for a recognized voice-initiated action
US9342567B2 (en) * 2013-08-23 2016-05-17 International Business Machines Corporation Control for persistent search results and iterative searching
US9477752B1 (en) 2013-09-30 2016-10-25 Verint Systems Inc. Ontology administration and application to enhance communication data analytics
US9858292B1 (en) * 2013-11-11 2018-01-02 Tableau Software, Inc. Systems and methods for semantic icon encoding in data visualizations
US9639854B2 (en) 2014-06-26 2017-05-02 Nuance Communications, Inc. Voice-controlled information exchange platform, such as for providing information to supplement advertising
US20160261675A1 (en) 2014-08-02 2016-09-08 Apple Inc. Sharing user-configurable graphical constructs
US9904450B2 (en) * 2014-12-19 2018-02-27 At&T Intellectual Property I, L.P. System and method for creating and sharing plans through multimodal dialog
US10318527B2 (en) * 2015-01-27 2019-06-11 International Business Machines Corporation Search-based detection, link, and acquisition of data

Also Published As

Publication number Publication date
US10817527B1 (en) 2020-10-27
JP7279997B2 (ja) 2023-05-23
AU2018261160B2 (en) 2020-08-27
AU2018261160A1 (en) 2019-07-11
JP2023109814A (ja) 2023-08-08
JP2020520485A (ja) 2020-07-09
CA3043923A1 (en) 2018-11-08
EP3535676A1 (en) 2019-09-11
AU2021204448B2 (en) 2022-06-23
CN110121705B (zh) 2024-01-16
CN110121705A (zh) 2019-08-13
WO2018204696A1 (en) 2018-11-08
AU2020230301A1 (en) 2020-10-01
AU2020230301B2 (en) 2021-04-22
AU2021204448A1 (en) 2021-07-29
EP4040309A1 (en) 2022-08-10

Similar Documents

Publication Publication Date Title
BR112019012110A2 (pt) sistemas e métodos de aplicação de princípios de pragmática para interação com analíticas visuais
US11694036B2 (en) Using natural language constructs for data visualizations
US11934461B2 (en) Applying natural language pragmatics in a data visualization user interface
US11874877B2 (en) Using natural language processing for visual analysis of a data set
US11010396B1 (en) Data visualization user interface using cohesion of sequential natural language commands
US10795902B1 (en) Applying natural language pragmatics in a data visualization user interface
US10853357B2 (en) Extensible automatic query language generator for semantic data
US9514098B1 (en) Iteratively learning coreference embeddings of noun phrases using feature representations that include distributed word representations of the noun phrases
US20130124194A1 (en) Systems and methods for manipulating data using natural language commands
US20220188509A1 (en) Method for extracting content from document, electronic device, and storage medium
CN110276080B (zh) 一种语义处理方法和系统
US11842154B2 (en) Visually correlating individual terms in natural language input to respective structured phrases representing the natural language input
CN113553411B (zh) 查询语句的生成方法、装置、电子设备和存储介质
US11314811B1 (en) Systems and methods for semantic search engine analysis
US20220350829A1 (en) Method and apparatus for processing data based on knowledge graph, electronic device and medium
BR112021006657B1 (pt) Método para gerar visualizações de dados a partir de expressões de linguagem natural, dispositivo de computação e meio de armazenamento legível por computador não transitório
CN116724311A (zh) 使用词同现和情感分析解释视觉分析中的含糊意图修饰语
WO2024058961A1 (en) Generation and use of searchable graph data structure based on ontological knowledge

Legal Events

Date Code Title Description
B350 Update of information on the portal [chapter 15.35 patent gazette]