Partilhar via


Editar esquema linguístico de P&R e adicionar frases no Power BI Desktop

É poderoso usar frases comuns e linguagem natural para fazer perguntas sobre seus dados. É ainda mais poderoso quando os seus dados respondem. Quando você faz uma pergunta às Perguntas e Respostas do Power BI, ele faz um esforço melhor para responder corretamente. Você pode editar o esquema linguístico para melhorar as respostas de perguntas e respostas para interações ainda melhores.

Tudo começa com os dados da sua empresa. Quanto melhor for o modelo de dados, mais fácil será para os utilizadores obterem respostas de qualidade. Uma maneira de melhorar o modelo é adicionar um esquema linguístico que define e categoriza a terminologia e as relações entre nomes de tabelas e colunas em seu conjunto de dados. O Power BI Desktop é onde você gerencia seus esquemas linguísticos.

Há dois lados nas perguntas e respostas. O primeiro lado é a preparação, ou modelagem. O segundo lado é fazer perguntas e explorar os dados, ou consumir. Em algumas empresas, os funcionários conhecidos como modeladores de dados ou administradores de TI podem ser os únicos a montar os conjuntos de dados, criar os modelos de dados e publicar os conjuntos de dados no Power BI. Um conjunto diferente de funcionários seria aquele que "consumiria" os dados online. Em outras empresas, essas funções podem ser combinadas.

Este artigo é para os modeladores de dados, as pessoas que otimizam conjuntos de dados para fornecer os melhores resultados de perguntas e respostas possíveis.

O que é um esquema linguístico?

Um esquema linguístico descreve termos e frases que as Perguntas e Respostas devem entender para objetos dentro de um conjunto de dados, incluindo partes de fala, sinônimos e fraseados. Quando você importa ou se conecta a um conjunto de dados, o Power BI cria um esquema linguístico com base na estrutura do conjunto de dados. Quando você faz uma pergunta de perguntas e respostas, ela procura correspondências e relacionamentos nos dados para descobrir a intenção da sua pergunta. Por exemplo, procura substantivos, verbos, adjetivos, frases e outros elementos. E procura relações, como quais colunas são objetos de um verbo.

Você provavelmente está familiarizado com partes do discurso, mas frases podem ser um termo novo. Um fraseado é como você fala sobre (ou fraseia) as relações entre as coisas. Por exemplo, para descrever a relação entre clientes e produtos, você pode dizer "clientes compram produtos". Ou, para descrever a relação entre clientes e idades, você pode dizer "idades indicam quantos anos os clientes têm". Ou, para descrever a relação entre clientes e números de telefone, você pode dizer "os clientes têm números de telefone".

Estes fraseados vêm em muitas formas e tamanhos. Alguns correspondem diretamente com relações no modelo de dados. Alguns relacionam colunas com suas tabelas que as contêm. Outros relacionam várias tabelas e colunas em relações complexas. Em todos os casos, eles descrevem como as coisas estão relacionadas usando termos cotidianos.

Os esquemas linguísticos são salvos em um formato .yaml. Este formato está relacionado com o popular formato JSON, mas fornece uma sintaxe mais flexível e fácil de ler. Os esquemas linguísticos podem ser editados, exportados e importados para o Power BI Desktop.

Pré-requisitos

Configurar um editor para arquivos .yaml

Recomendamos usar o Visual Studio Code para editar arquivos .yaml de esquema linguístico. O Visual Studio Code inclui suporte imediato para arquivos .yaml e pode ser estendido para validar especificamente o formato de esquema linguístico do Power BI.

  1. Instalar o Visual Studio Code.

  2. Clique com o botão direito do mouse no arquivo .yaml no esquema linguístico de exemplo que você salvou anteriormente: QnALinguisticSchema.zip.

  3. Selecione Abrir com>Escolher outro aplicativo.

  4. Selecione Visual Studio Code e, em seguida, escolha Always.

    Screenshot of the dialog that shows a list of programs to open the file. Visual Studio Code and Always are highlighted.

No Visual Studio Code, instale a extensão YAML Support by Red Hat.

  1. Selecione a guia Extensões (última no menu à esquerda) ou CTRL+SHIFT+X.
    Screenshot of the left menu in Visual Studio Code with the Extensions icon highlighted.
  2. Procure por "yaml" e selecione YAML Support by Red Hat na lista.
  3. Selecione Instalar > recarga.

Trabalhar com esquemas linguísticos

Há duas maneiras de trabalhar com esquemas linguísticos. Uma maneira é editar, importar e exportar o .yaml da faixa de opções no Power BI Desktop. Essa forma é abordada no artigo Power BI Q &A Tooling Experience . Você não precisa abrir o arquivo .yaml para melhorar as Perguntas e Respostas.

A outra maneira de editar um esquema linguístico é exportar e editar o arquivo .yaml diretamente. Ao editar um arquivo .yaml de esquema linguístico, você marca colunas na tabela como diferentes elementos gramaticais e define palavras que um colega pode usar para formular uma pergunta. Por exemplo, você declara as colunas que são o sujeito e o objeto do verbo. Você adiciona palavras alternativas que os colegas podem usar para se referir a tabelas, colunas e medidas em seu modelo.

Screenshot of a sample linguistic schema .yaml file.

Antes de editar um esquema linguístico, você deve abri-lo (exportá-lo) do Power BI Desktop. Salvar o arquivo .yaml de volta no mesmo local é considerado importação. Mas você também pode importar outros arquivos .yaml em vez disso. Se, por exemplo, você tiver um conjunto de dados semelhante e já tiver trabalhado adicionando partes de fala, identificando relações, criando frases e criando sinônimos, poderá usar esse arquivo .yaml em um arquivo diferente do Power BI Desktop.

As P&R usam todas essas informações juntamente com quaisquer melhorias que você fizer para fornecer uma melhor resposta, preenchimento automático e resumo das perguntas.

Editar um esquema linguístico

Quando você exporta seu esquema linguístico pela primeira vez do Power BI Desktop, a maior parte ou todo o conteúdo do arquivo é gerado automaticamente pelo mecanismo de Perguntas e Respostas. Essas entidades geradas, palavras (sinônimos), relações e fraseados são designados com uma tag State: Gerado . Eles são incluídos no arquivo principalmente para fins informativos, mas podem ser um ponto de partida útil para suas próprias alterações.

Nota

O arquivo .yaml de exemplo incluído neste tutorial não contém as tags State: Generated ou State: Deleted porque foi preparado especificamente para este tutorial. Para ver essas tags, abra um arquivo .pbix não editado no modo de exibição Relacionamento e exporte o esquema linguístico.

Screenshot of a sample .yaml file showing State: Generated.

Quando você importa seu arquivo de esquema linguístico de volta para o Power BI Desktop, tudo o que estiver marcado como Estado: Gerado será ignorado e posteriormente regenerado. Assim, se você quiser alterar algum conteúdo gerado, remova a tag State: Generated correspondente. Da mesma forma, se você quiser remover algum conteúdo gerado, altere a tag State: Generated para State: Deleted para que ele não seja regenerado quando você importar seu arquivo de esquema linguístico.

Exporte e importe um arquivo .yaml

  1. No Power BI Desktop, abra o conjunto de dados no modo Modelo.

  2. Na guia Modelagem, selecione Esquema linguístico Exportar esquema linguístico>.

  3. Salve-o. O nome do arquivo termina com .lsdl.yaml.

  4. Abra-o no Visual Code ou em outro editor.

  5. No modo Modelo no Power BI Desktop, na guia Modelagem, selecione Importação de esquema>linguístico.

  6. Vá para o local onde você salvou o arquivo .yaml editado e selecione-o. Uma mensagem de sucesso informa que o arquivo .yaml do esquema linguístico foi importado com êxito.

    Screenshot of the successful import dialog.

Frases no esquema linguístico

Um fraseado é como você fala sobre (ou fraseia) as relações entre as coisas. Por exemplo, para descrever a relação entre clientes e produtos, você pode dizer "clientes compram produtos".

De onde vêm os fraseados?

O Power BI adiciona muitos sintagmas simples ao esquema linguístico automaticamente com base na estrutura do modelo e suposições com base nos nomes das colunas. Por exemplo:

  • A maioria das colunas relaciona-se com a tabela que contém com um fraseado simples, como "os produtos têm descrições".
  • As relações de modelo resultam em frases padrão para ambas as direções da relação, como "pedidos têm produtos" e "produtos têm pedidos".
  • Com base em seus nomes de coluna, alguns relacionamentos de modelo podem ter frases padrão mais complexas, como "os pedidos são enviados para as cidades".

No entanto, seus usuários às vezes falam sobre as coisas de maneiras que as perguntas e respostas não podem adivinhar. Portanto, você pode querer adicionar seus próprios sintagmas manualmente.

Porquê adicionar fraseados?

A primeira razão para adicionar um fraseado é definir um novo termo. Por exemplo, se você quiser ser capaz de pedir "listar os clientes mais antigos", você deve primeiro ensinar perguntas e respostas o que você quer dizer com "velho". Você faria isso adicionando um fraseado como "as idades indicam quantos anos os clientes têm".

A segunda razão para acrescentar um fraseado é resolver a ambiguidade. A pesquisa básica de palavras-chave só vai tão longe quando as palavras têm mais de um significado. Por exemplo, "voos para Chicago" não é o mesmo que "voos de Chicago". Mas as perguntas e respostas não saberão a que se refere, a menos que adicione as frases "os voos são de cidades de partida" e "os voos são para cidades de chegada". Da mesma forma, as perguntas e respostas só entenderão a distinção entre "carros que João vendeu a Maria" e "carros que João comprou de Maria" depois de adicionar as frases "clientes compram carros de funcionários" e "funcionários vendem carros de clientes".

A razão final para adicionar um fraseado é melhorar as reafirmações. Em vez de as perguntas e respostas ecoarem para você "Mostrar os clientes e seus produtos", seria mais claro se dissesse "Mostrar os clientes e os produtos que eles compraram" ou "Mostrar os clientes e os produtos que eles analisaram", dependendo de como ele entendeu a pergunta. A adição de frases personalizadas permite que as redeclarações sejam mais explícitas e inequívocas.

Tipos de fraseados

Para entender os diferentes tipos de fraseados, primeiro você precisará se lembrar de alguns termos gramaticais básicos:

  • O substantivo é uma pessoa, lugar ou coisa. Exemplos: carro, adolescente, Marty, capacitor de fluxo
  • Um verbo é uma ação ou estado de ser. Exemplos: eclodir, rebentar, devorar, ejetar
  • Um adjetivo é uma palavra descritiva que modifica um substantivo. Exemplos: poderoso, mágico, dourado, roubado
  • Uma preposição é uma palavra usada antes de um substantivo para relacioná-lo a um substantivo, verbo ou adjetivo anterior Exemplos: de, para, perto, de
  • Um atributo é uma qualidade ou característica de algo.
  • Um nome é uma palavra ou conjunto de palavras pelas quais uma pessoa, animal, lugar ou coisa é conhecida ou referida.

Sintagmas de atributos

Os sintagmas de atributos são o cavalo de batalha das Perguntas e Respostas. Eles são usados quando uma coisa está agindo como um atributo de outra. Eles são simples, diretos e executam a maior parte do trabalho pesado quando você não definiu um fraseado mais sutil e detalhado. Os sintagmas de atributos são descritos usando o verbo básico "have" ("produtos têm categorias" e "países/regiões de acolhimento têm cidades anfitriãs"). Eles também permitem automaticamente perguntas com as preposições "de" e "para" ("categorias de produtos" ou "pedidos de produtos") e possessivas ("ordens de João"). Os sintagmas de atributos são usados nestes tipos de perguntas:

  • Que clientes têm encomendas?
  • Listar cidades anfitriãs por país/região ascendente
  • Mostrar ordens que têm chai
  • Listar clientes com pedidos
  • Qual é a categoria de cada produto?
  • Ordens do Conde Robert King

O Power BI gera a maioria dos sintagmas de atributos necessários em seu modelo com base na contenção de tabela ou coluna e nas relações de modelo. Normalmente, você não precisa criá-los sozinho. Aqui está um exemplo de como um fraseado de atributo parece dentro do esquema linguístico:

product_has_category:
  Binding: {Table: Products}
  Phrasings:
  - Attribute: {Subject: product, Object: product.category}

Sintagmas de nomes

Os sintagmas de nomes são úteis se o modelo de dados tiver uma tabela que contenha objetos nomeados, como nomes de atletas ou nomes de clientes. Por exemplo, um fraseado "nomes de produtos são nomes de produtos" é essencial para poder usar nomes de produtos em perguntas. O fraseado de nome também permite "nomeado" como um verbo (por exemplo, "Listar clientes chamados John Smith"). No entanto, é mais importante quando usado em combinação com outros fraseados. Ele permite que um valor de nome seja usado para se referir a uma linha de tabela específica. Por exemplo, em "Clientes que compraram chai", as Perguntas e Respostas podem dizer que o valor "chai" se refere a toda a linha da tabela de produtos em vez de apenas um valor na coluna de nome do produto. Os sintagmas de nomes são usados nestes tipos de perguntas:

  • Que funcionários se chamam Robert King
  • Quem se chama Ernst Handel
  • Desporto de Fernand De Montigny
  • Conde de atletas chamado Mary
  • O que Robert King comprou?

Supondo que você tenha usado uma convenção de nomenclatura sensata para colunas de nome em seu modelo (por exemplo, "Name" ou "ProductName" em vez de "PrdNm"), o Power BI gera a maioria dos sintagmas de nome necessários em seu modelo automaticamente. Você geralmente não precisa criá-los sozinho.

Aqui está um exemplo de como um fraseado de nome parece dentro do esquema linguístico:

employee_has_name:
  Binding: {Table: Employees}
  Phrasings:
  - Name:
      Subject: employee
      Name: employee.name

Frases adjetivas

Os sintagmas adjetivos definem novos adjetivos usados para descrever as coisas em seu modelo. Por exemplo, "clientes felizes são clientes onde a classificação > 6" é necessária para fazer perguntas como "listar os clientes felizes em Des Moines". Existem várias formas de frases adjetivas para usar em diferentes situações.

Frases adjetivas simples definem um novo adjetivo com base em uma condição, como "produtos descontinuados são produtos onde status = D". Frases adjetivas simples são usadas neste tipo de perguntas:

  • Que produtos são descontinuados?
  • Listar os produtos descontinuados
  • Listar os medalhistas de ouro
  • Produtos encomendados em atraso

Aqui está um exemplo de como um simples fraseado adjetivo parece dentro do esquema linguístico:

product_is_discontinued:

Binding: {Table: Products}
  Conditions:
  - Target: product.discontinued
    Operator: Equals
    Value: true
  Phrasings:
  - Adjective:
      Subject: product
      Adjectives: [discontinued]

Os sintagmas adjetivos de medição definem um novo adjetivo com base em um valor numérico que indica até que ponto o adjetivo se aplica, como "comprimentos indicam quanto tempo os rios são" e "pequenos países/regiões têm pequenas áreas de terra". Frases adjetivas de medição são usadas neste tipo de perguntas:

  • Listar os longos rios
  • Quais são os rios mais longos?
  • Listar os menores países/regiões que ganharam ouro no basquete
  • Quanto tempo dura o Rio Grande?

Aqui está um exemplo de como um fraseado adjetivo de medida parece dentro do esquema linguístico:

river_has_length:

Binding: {Table: Rivers}
 Phrasings:
 - Adjective:
     Subject: river
     Adjectives: [long]
     Antonyms: [short]
     Measurement: river.length

Os sintagmas adjetivos dinâmicos definem um conjunto de novos adjetivos com base em valores em uma coluna no modelo, como "cores descrevem produtos" e "eventos têm gêneros de eventos". Frases adjetivas dinâmicas são usadas neste tipo de perguntas:

  • Listar os produtos vermelhos
  • Que produtos são verdes?
  • Mostrar eventos de patinação para mulheres
  • Contar problemas que estão ativos

Aqui está um exemplo de como um fraseado adjetivo dinâmico parece dentro do esquema linguístico:

product_has_color:

Binding: {Table: Products}
  Phrasings:
  - DynamicAdjective:
      Subject: product
      Adjective: product.color

Sintagmas substantivos

Os sintagmas substantivos definem novos substantivos que descrevem subconjuntos de coisas em seu modelo. Eles geralmente incluem algum tipo de medição ou condição específica do modelo. Por exemplo, para o nosso modelo, podemos adicionar frases que distinguem campeões de medalhistas, esportes terrestres de esportes aquáticos, equipes versus indivíduos, ou categorias etárias de atletas (adolescentes, adultos, idosos). Para o nosso banco de dados de filmes, podemos adicionar frases nominais para "flops são filmes onde o lucro < líquido 0" para que possamos fazer perguntas como "contar os flops por ano". Existem duas formas de fraseados substantivos para usar em situações diferentes.

Sintagmas substantivos simples definem um novo substantivo com base em uma condição, como "contratantes são empregados onde tempo integral = falso" e "campeão é atleta onde contagem de medalhas >5". Sintagmas substantivos simples são usados neste tipo de perguntas:

  • Quais funcionários são contratados?
  • Conte os empreiteiros em Portland
  • Quantos campeões em 2016

Aqui está um exemplo de como um fraseado substantivo simples parece dentro do esquema linguístico:

employee_is_contractor:

Binding: {Table: Employees}
  Conditions:
  - Target: employee.full_time
    Operator: Equals
    Value: false
  Phrasings:
  - Noun:
      Subject: employee
      Nouns: [contractor]

Sintagmas substantivos dinâmicos definem um conjunto de novos substantivos com base em valores em uma coluna no modelo, como "empregos definem subconjuntos de funcionários". Sintagmas substantivos dinâmicos são usados nestes tipos de perguntas:

  • Listar os caixas em Chicago
  • Quais funcionários são baristas?
  • Lista dos árbitros em 1992

Aqui está um exemplo de como um fraseado substantivo dinâmico parece dentro do esquema linguístico:
employee_has_job:

Binding: {Table: Employees}
 Phrasings:
 - DynamicNoun:
     Subject: employee
     Noun: employee.job

Frases de preposição

Os sintagmas de preposição são usados para descrever como as coisas em seu modelo estão relacionadas por meio de preposições. Por exemplo, um fraseado "as cidades estão em países/regiões" melhora a compreensão de perguntas como "conte as cidades em Washington". Alguns sintagmas de preposição são criados automaticamente quando uma coluna é reconhecida como uma entidade geográfica. Os sintagmas de preposição são usados nestes tipos de perguntas:

  • Conte os clientes em Nova Iorque
  • Listar os livros sobre linguística
  • Em que cidade está Robert King?
  • Quantos livros são de Stephen Pinker?

Aqui está um exemplo de como um fraseado de preposição parece dentro do esquema linguístico:
customers_are_in_cities:

Binding: {Table: Customers}
 Phrasings:
 - Preposition:
     Subject: customer
     Prepositions: [in]
     Object: customer.city

Sintagmas verbais

Sintagmas verbais são usados para descrever como as coisas em seu modelo estão relacionadas através de verbos. Por exemplo, um fraseado "os clientes compram produtos" melhora a compreensão de perguntas como "quem comprou queijo?" e "o que é que João comprou?" Os sintagmas verbais são os mais flexíveis de todos os tipos de fraseados, muitas vezes relacionando mais de duas coisas entre si, como "os funcionários vendem produtos aos clientes". Os sintagmas verbais são usados neste tipo de perguntas:

  • Quem vendeu o quê a quem?
  • Qual funcionário vendeu chai para John?
  • Quantos clientes foram vendidos chai por Mary?
  • Liste os produtos que Maria vendeu para João.
  • Que produtos descontinuados foram vendidos aos clientes de Chicago pelos funcionários de Boston?

Os sintagmas verbais também podem conter frases preposicionais, aumentando assim a sua flexibilidade, como "atletas ganham medalhas em competições" ou "os clientes recebem reembolsos por produtos". Frases verbais com frases preposicionais são usadas neste tipo de perguntas:

  • Quantos atletas ganharam uma medalha de ouro no Visa Championships?
  • Que clientes foram reembolsados pelo queijo?
  • Em que competição Danell Leyva ganhou uma medalha de bronze?

Alguns sintagmas verbais são criados automaticamente quando uma coluna é reconhecida como contendo um verbo e uma preposição.

Aqui está um exemplo de como um fraseado verbal parece dentro do esquema linguístico:
customers_buy_products_from_salespeople:

Binding: {Table: Orders}
  Phrasings:
  - Verb:
      Subject: customer
      Verbs: [buy, purchase]
      Object: product
      PrepositionalPhrases:
      - Prepositions: [from]
        Object: salesperson

Relações com múltiplos fraseados

Frequentemente, uma única relação pode ser descrita de mais de uma maneira. Neste caso, uma única relação pode ter mais de um fraseado. É comum que a relação entre uma entidade de tabela e uma entidade de coluna tenha um fraseado de atributo e outro fraseado. Por exemplo, na relação entre o nome do cliente e o nome do cliente, você desejará um fraseado de atributo (por exemplo, "os clientes têm nomes") e um fraseado de nome (por exemplo, "nomes de clientes são os nomes dos clientes"), para que você possa fazer ambos os tipos de perguntas.

Aqui está um exemplo de como uma relação com dois sintagmas parece dentro do esquema linguístico:
customer_has_name:

Binding: {Table: Customers}
Phrasings:
  - Attribute: {Subject: customer, Object: customer.name}
  - Name:
      Subject: customer
      Object: customer.name

Outro exemplo seria adicionar o fraseado alternativo "funcionários vendem produtos de clientes" à relação "clientes compram produtos de funcionários". Você não precisa adicionar variações como "os funcionários vendem produtos aos clientes" ou "os produtos são vendidos aos clientes pelos funcionários" porque as variações "por" e "para" do assunto e do objeto indireto são inferidas automaticamente pelas perguntas e respostas.

Considerações e solução de problemas

Se você fizer uma alteração em um arquivo .lsdl.yaml que não esteja em conformidade com o formato do esquema linguístico, os quiggles de validação indicam o problema:

Screenshot of a sample .yaml file showing errors.

Tem dúvidas? Pergunte à Comunidade do Power BI