Modificare lo schema linguistico Q&A e aggiungere formulazioni in Power BI Desktop

È potente usare frasi comuni e linguaggio naturale per porre domande ai dati. È ancora più potente quando i dati rispondono. Quando si pone una domanda a Domande e risposte di Power BI, è consigliabile rispondere correttamente. È possibile modificare lo schema linguistico per migliorare le risposte Q&A per ottenere interazioni ancora migliori.

Tutto inizia con i dati aziendali. Migliore è il modello di dati, più facile sarà che gli utenti ottengano risposte di qualità. Un modo per migliorare il modello consiste nell'aggiungere uno schema linguistico che definisce e classifica la terminologia e le relazioni tra nomi di tabella e colonna nel set di dati. Power BI Desktop è la posizione in cui si gestiscono gli schemi linguistici.

Ci sono due lati per Q&A. Il primo lato è la preparazione o la modellazione. Il secondo lato pone domande ed esplora i dati o usa. In alcune aziende, i dipendenti noti come data modeler o amministratori IT potrebbero essere quelli per assemblare i set di dati, creare i modelli di dati e pubblicare i set di dati in Power BI. Un set diverso di dipendenti sarebbe quello di "consumare" i dati online. In altre aziende, questi ruoli potrebbero essere combinati.

Questo articolo è destinato ai modelli di dati, gli utenti che ottimizzano i set di dati per fornire i migliori risultati di domande e risposte possibili.

Che cos'è uno schema linguistico?

Uno schema linguistico descrive termini e frasi che Q&A deve comprendere per gli oggetti all'interno di un set di dati, incluse parti del parlato, sinonimi e formulazioni. Quando si importa o ci si connette a un set di dati, Power BI crea uno schema linguistico basato sulla struttura del set di dati. Quando si pone una domanda di domande e risposte, cerca corrispondenze e relazioni nei dati per capire l'intenzione della domanda. Ad esempio, cerca sostantivi, verbi, aggettivi, formulazioni e altri elementi. E cerca relazioni, come le colonne che sono oggetti di un verbo.

Probabilmente si ha familiarità con parti del discorso, ma le formulazioni potrebbero essere un nuovo termine. Una formulazione è il modo in cui si parla di (o frase) le relazioni tra le cose. Ad esempio, per descrivere la relazione tra clienti e prodotti, si potrebbe dire "i clienti acquistano prodotti". Oppure per descrivere la relazione tra clienti e età, si potrebbe dire "età indicare quanto sono i clienti vecchi". Oppure per descrivere la relazione tra clienti e numeri di telefono, si potrebbe dire "i clienti hanno numeri di telefono".

Queste formulazioni sono disponibili in molte forme e dimensioni. Alcuni corrispondono direttamente alle relazioni nel modello di dati. Alcune colonne sono correlate con le tabelle contenenti. Altri sono correlati tra più tabelle e colonne in relazioni complesse. In tutti i casi, descrivono come le cose sono correlate usando termini quotidiani.

Gli schemi linguistici vengono salvati in un formato yaml. Questo formato è correlato al formato JSON più diffuso, ma offre una sintassi più flessibile e più facile da leggere. Gli schemi linguistici possono essere modificati, esportati e importati in Power BI Desktop.

Prerequisiti

Configurare un editor per i file con estensione yaml

È consigliabile usare Visual Studio Code per modificare i file yaml dello schema linguistico. Visual Studio Code include il supporto predefinito per i file con estensione yaml e può essere esteso per convalidare in modo specifico il formato dello schema linguistico di Power BI.

  1. Installare Visual Studio Code.

  2. Fare clic con il pulsante destro del mouse sul file yaml nello schema linguistico di esempio salvato in precedenza: QnALinguisticSchema.zip.

  3. Selezionare Apri con>Scegli un'altra app.

  4. Selezionare Visual Studio Code e quindi scegliere Sempre.

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

In Visual Studio Code installare l'estensione YAML Support by Red Hat.

  1. Selezionare la scheda Estensioni (ultima nel menu a sinistra) o CTRL+MAIUSC+X.
    Screenshot of the left menu in Visual Studio Code with the Extensions icon highlighted.
  2. Cercare "yaml" e selezionare YaML Support by Red Hat (Supporto YAML per Red Hat ) nell'elenco.
  3. Selezionare Installa > ricaricamento.

Usare schemi linguistici

Esistono due modi per usare gli schemi linguistici. Un modo consiste nel modificare, importare ed esportare il file yaml dalla barra multifunzione in Power BI Desktop. Questo modo è illustrato nell'articolo Esperienza di strumenti Q&A di Power BI. Non è necessario aprire il file yaml per migliorare Q&A.

L'altro modo per modificare uno schema linguistico consiste nell'esportare e modificare direttamente il file yaml. Quando si modifica un file yaml dello schema linguistico, si contrassegnano le colonne nella tabella come elementi grammaticali diversi e si definiscono parole che un collega può usare per formulare una domanda. Ad esempio, si dichiarano le colonne che sono l'oggetto e l'oggetto del verbo. È possibile aggiungere parole alternative che i colleghi possono usare per fare riferimento a tabelle, colonne e misure nel modello.

Screenshot of a sample linguistic schema .yaml file.

Prima di poter modificare uno schema linguistico, è necessario aprirlo (esportarlo) da Power BI Desktop. Il salvataggio del file con estensione yaml nella stessa posizione viene considerato l'importazione. Ma è anche possibile importare altri file yaml. Se, ad esempio, si dispone di un set di dati simile e si è già inserito il lavoro aggiungendo parti del parlato, identificando le relazioni, creando formulazioni e creando sinonimi, è possibile usare il file yaml in un file di Power BI Desktop diverso.

Q&A usa tutte queste informazioni insieme a eventuali miglioramenti apportati per fornire una risposta migliore, il completamento automatico e il riepilogo delle domande.

Modificare uno schema linguistico

Quando si esporta lo schema linguistico per la prima volta da Power BI Desktop, la maggior parte o tutto il contenuto nel file viene generato automaticamente dal motore di domande e risposte. Queste entità generate, parole (sinonimi), relazioni e formulazioni vengono designate con un tag State: Generated . Sono inclusi nel file principalmente a scopo informativo, ma possono essere un punto di partenza utile per le proprie modifiche.

Nota

Il file con estensione yaml di esempio incluso in questa esercitazione non contiene i tag State: Generated o State: Deleted perché è stato preparato in modo specifico per questa esercitazione. Per visualizzare questi tag, aprire un file con estensione pbix non modificato nella visualizzazione Relazione ed esportare lo schema linguistico.

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

Quando si importa di nuovo il file dello schema linguistico in Power BI Desktop, qualsiasi elemento contrassegnato come Stato: generato viene ignorato e rigenerato in un secondo momento. Pertanto, se si desidera modificare alcuni contenuti generati, rimuovere il tag State: Generated corrispondente. Analogamente, se si desidera rimuovere alcuni contenuti generati, modificare il tag State: Generated in State: Deleted in modo che non venga rigenerato quando si importa il file dello schema linguistico.

Esportare, quindi importare un file yaml

  1. In Power BI Desktop aprire il set di dati nella visualizzazione Modello.

  2. Nella scheda Modellazione selezionare Schema>linguistico Esporta schema linguistico.

  3. Selezionare Salva per salvare. Il nome del file termina con .lsdl.yaml.

  4. Aprirlo in Visual Code o in un altro editor.

  5. Nella scheda Modellazione della visualizzazione Modello in Power BI Desktop selezionare Importazione schema>linguistico.

  6. Passare al percorso in cui è stato salvato il file yaml modificato e selezionarlo. Un messaggio Operazione riuscita indica che il file yaml dello schema linguistico è stato importato correttamente.

    Screenshot of the successful import dialog.

Formulazioni nello schema linguistico

Una formulazione è il modo in cui si parla di (o frase) le relazioni tra le cose. Ad esempio, per descrivere la relazione tra clienti e prodotti, si potrebbe dire "i clienti acquistano prodotti".

Da dove provengono le formulazioni?

Power BI aggiunge molte formulazioni semplici allo schema linguistico automaticamente in base alla struttura del modello e alle ipotesi in base ai nomi delle colonne. Ad esempio:

  • La maggior parte delle colonne è correlata alla tabella contenitore con una formulazione semplice, ad esempio "i prodotti hanno descrizioni".
  • Le relazioni del modello comportano formulazioni predefinite per entrambe le direzioni della relazione, ad esempio "gli ordini hanno prodotti" e "i prodotti hanno ordini".
  • In base ai nomi delle colonne, alcune relazioni del modello possono avere formulazioni predefinite più complesse, ad esempio "gli ordini vengono spediti nelle città".

Tuttavia, gli utenti a volte parlano di cose in modi in cui Q&A non può indovinare. Pertanto, è possibile aggiungere manualmente formulazioni personalizzate.

Perché aggiungere formulazioni?

Il primo motivo per l'aggiunta di una formulazione consiste nel definire un nuovo termine. Ad esempio, se si vuole essere in grado di chiedere "elencare i clienti meno recenti", è necessario insegnare a Q&A cosa si intende per "vecchio". A tale scopo, aggiungere una formulazione simile a "età indicare quanto sono i clienti vecchi".

Il secondo motivo per l'aggiunta di una formulazione consiste nel risolvere l'ambiguità. La ricerca di parole chiave di base va finora solo quando le parole hanno più di un significato. Ad esempio, "voli a Chicago" non equivale a "voli da Chicago". Ma Q&A non saprà quale si intende se non si aggiungono le formulazioni "voli sono da città di partenza" e "voli sono verso le città di arrivo". Analogamente, Q&A comprenderà solo la distinzione tra "automobili vendute da John a Mary" e "automobili che John ha acquistato da Mary" dopo aver aggiunto le formulazioni "i clienti acquistano automobili dai dipendenti" e "i dipendenti vendono automobili ai clienti".

Il motivo finale per l'aggiunta di una formulazione consiste nel migliorare le riformulazioni. Invece del Q&A che ti riporta "Mostra i clienti e i loro prodotti", sarebbe più chiaro se dicesse "Mostra i clienti e i prodotti acquistati" o "Mostra i clienti e i prodotti che hanno esaminato", a seconda di come ha compreso la domanda. L'aggiunta di formulazioni personalizzate consente ai riformulazioni di essere più esplicite e non ambigue.

Tipi di formulazioni

Per comprendere i diversi tipi di formulazioni, è innanzitutto necessario ricordare un paio di termini grammaticali di base:

  • Un sostantivo è una persona, un luogo o una cosa. Esempi: auto, adolescente, Marty, capacità di flusso
  • Un verbo è un'azione o uno stato di essere. Esempi: tratteggio, scoppio, divoratore, espulso
  • Un aggettivo è una parola descrittiva che modifica un sostantivo. Esempi: potente, magico, dorato, rubato
  • Una preposizione è una parola usata prima di un sostantivo per correlarla a un sostantivo, verbo o aggettivo precedente: di, per, vicino, da
  • Un attributo è una qualità o una caratteristica di un elemento.
  • Un nome è una parola o un insieme di parole in base alle quali una persona, un animale, un luogo o una cosa è nota o a cui si fa riferimento.

Formulazioni degli attributi

Le formulazioni degli attributi sono il cavallo di lavoro di Q&A. Vengono usati quando una cosa funge da attributo di un'altra cosa. Sono semplici, semplici ed eseguono la maggior parte del sollevamento pesante quando non hai definito una formulazione più sottile e più dettagliata. Le formulazioni degli attributi vengono descritte usando il verbo di base "have" ("i prodotti hanno categorie" e "i paesi/aree ospitanti hanno città ospitanti"). Consentono inoltre automaticamente domande con le preposizioni "di" e "per" ("categorie di prodotti" o "ordini per i prodotti") e possessivi ("ordini di John"). Le formulazioni degli attributi vengono usate in questi tipi di domande:

  • Quali clienti hanno ordini?
  • Elencare le città host per paese/area geografica crescente
  • Mostra ordini con chai
  • Elencare i clienti con ordini
  • Qual è la categoria di ogni prodotto?
  • Conte gli ordini di Robert King

Power BI genera la maggior parte delle formulazioni degli attributi necessarie nel modello in base al contenimento di tabelle o colonne e alle relazioni tra modelli. In genere, non è necessario crearli manualmente. Di seguito è riportato un esempio dell'aspetto di una formulazione di attributo all'interno dello schema linguistico:

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

Formulazioni dei nomi

Le formulazioni dei nomi sono utili se il modello di dati contiene una tabella contenente oggetti denominati, ad esempio nomi di atleti o nomi dei clienti. Ad esempio, una formulazione "i nomi dei prodotti sono nomi di prodotti" è essenziale per poter usare i nomi dei prodotti in domande. La formulazione dei nomi abilita anche "named" come verbo (ad esempio, "Elencare i clienti denominati John Smith"). Tuttavia, è più importante quando viene usato in combinazione con altre formulazioni. Consente di usare un valore name per fare riferimento a una determinata riga di tabella. Ad esempio, in "Clienti che hanno acquistato chai", Q&A può indicare il valore "chai" fa riferimento all'intera riga della tabella del prodotto anziché solo a un valore nella colonna nome prodotto. Le formulazioni dei nomi vengono usate in questi tipi di domande:

  • Quali dipendenti sono denominati Robert King
  • Chi si chiama Ernst Ndel
  • Lo sport di Fernand De Mont supponiamo
  • Conteggio degli atleti denominati Mary
  • Cosa ha comprato Robert King?

Supponendo che sia stata usata una convenzione di denominazione sensata per le colonne dei nomi nel modello(ad esempio, "Name" o "ProductName" anziché "PrdNm"), Power BI genera automaticamente la maggior parte delle formulazioni dei nomi necessarie nel modello. In genere non è necessario crearli manualmente.

Di seguito è riportato un esempio dell'aspetto di una formulazione dei nomi all'interno dello schema linguistico:

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

Formulazioni aggettivali

Le formulazioni aggettivali definiscono nuovi aggettivi usati per descrivere gli elementi nel modello. Ad esempio, "i clienti felici sono clienti in cui la classificazione > 6" è necessaria per porre domande come "elencare i clienti felici in Des Moines". Esistono diverse forme di formulazioni aggettivali da usare in situazioni diverse.

Le formulazioni aggettivali semplici definiscono un nuovo aggettivo basato su una condizione, ad esempio "i prodotti sospesi sono prodotti dove status = D". Le formulazioni aggettivali semplici vengono usate in questi tipi di domande:

  • Quali prodotti sono sospesi?
  • Elencare i prodotti sospesi
  • Elencare i medagliere d'oro
  • Prodotti non ordinati

Di seguito è riportato un esempio dell'aspetto di una formulazione aggettiva semplice all'interno dello schema linguistico:

product_is_discontinued:

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

Le formulazioni aggettivali di misura definiscono un nuovo aggettivo basato su un valore numerico che indica la misura in cui si applica l'aggettivo, ad esempio "lunghezze indicano per quanto tempo i fiumi sono" e "piccolo paese/regioni hanno piccole aree terrestri". Le formulazioni aggettivali di misura vengono usate in questi tipi di domande:

  • Elencare i lunghi fiumi
  • Quali fiumi sono i più lunghi?
  • Elencare il paese/le regioni più piccole che hanno vinto l'oro nel basket
  • Quanto tempo è il Rio Grande?

Di seguito è riportato un esempio dell'aspetto di una formulazione aggettiva di misura all'interno dello schema linguistico:

river_has_length:

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

Le formulazioni aggettivali dinamiche definiscono un set di nuovi aggettivi in base ai valori di una colonna nel modello, ad esempio "colori descrivono i prodotti" e "gli eventi hanno sessi di eventi". Le formulazioni aggettivali dinamiche vengono usate in questi tipi di domande:

  • Elencare i prodotti rossi
  • Quali prodotti sono verdi?
  • Mostra eventi di pattinaggio per le femmine
  • Numero di problemi attivi

Di seguito è riportato un esempio dell'aspetto di una formulazione aggettiva dinamica all'interno dello schema linguistico:

product_has_color:

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

Formulazioni sostantivali

Le formulazioni sostantivali definiscono nuovi sostantivi che descrivono i subset di elementi nel modello. Spesso includono un tipo di misurazione o condizione specifica del modello. Ad esempio, per il modello potrebbe essere necessario aggiungere formulazioni che distinguono i campioni da medaglie, sport terrestri da sport acquatici, squadre o categorie di età di atleti (adolescenti, adulti, anziani). Per il nostro database di film, potremmo voler aggiungere formulazioni sostantivali per "flop sono film dove profitto < netto 0" in modo da poter porre domande come "contare i flop per anno". Esistono due forme di formulazioni sostantivali da usare in situazioni diverse.

Le formulazioni sostantivali semplici definiscono un nuovo sostantivo in base a una condizione, ad esempio "i collaboratori sono dipendenti dove full time = false" e "campione è atleta dove numero di medaglie >5". Le formulazioni sostantivali semplici vengono usate in questi tipi di domande:

  • Quali dipendenti sono terzisti?
  • Contare i terzisti a Portland
  • Quanti campioni nel 2016

Di seguito è riportato un esempio dell'aspetto di una formulazione sostantivo semplice all'interno dello schema linguistico:

employee_is_contractor:

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

Le formulazioni sostantivali dinamiche definiscono un set di nuovi sostantivi in base ai valori di una colonna nel modello, ad esempio "i processi definiscono subset di dipendenti". Le formulazioni sostantivali dinamiche vengono usate in questi tipi di domande:

  • Elencare i cassieri a Chicago
  • Quali dipendenti sono baristi?
  • Elencare gli arbitro nel 1992

Ecco un esempio dell'aspetto di una formulazione sostantivo dinamica all'interno dello schema linguistico:
employee_has_job:

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

Formulazioni di preposizione

Le formulazioni di preposizione vengono usate per descrivere il modo in cui le cose nel modello sono correlate tramite preposizioni. Ad esempio, una formulazione "le città si trovano in paesi/aree geografiche" migliora la comprensione delle domande come "contare le città a Washington". Alcune formulazioni di preposizione vengono create automaticamente quando una colonna viene riconosciuta come entità geografica. Le formulazioni di preposizione vengono usate in questi tipi di domande:

  • Contare i clienti a New York
  • Elencare i libri sulle lingue
  • In quale città si trova Robert King?
  • Quanti libri sono di Stephen Pinker?

Di seguito è riportato un esempio dell'aspetto di una formulazione di preposizione all'interno dello schema linguistico:
customers_are_in_cities:

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

Formulazioni verbo

Le formulazioni verbo vengono usate per descrivere il modo in cui le cose nel modello sono correlate tramite verbi. Ad esempio, una formulazione "clienti acquista prodotti" migliora la comprensione delle domande come "chi ha acquistato formaggio?" e "cosa ha comprato John?" Le formulazioni verbo sono le più flessibili di tutti i tipi di formulazioni, spesso correlate più di due cose l'una all'altra, ad esempio "i dipendenti vendono prodotti clienti". Le formulazioni verbo vengono usate in questi tipi di domande:

  • Chi ha venduto cosa a chi?
  • Quale dipendente ha venduto chai a John?
  • Quanti clienti sono stati venduti chai da Mary?
  • Elencare i prodotti venduti da Mary a John.
  • Quali prodotti sospesi sono stati venduti ai clienti di Chicago dai dipendenti di Boston?

Le formulazioni verbo possono anche contenere frasi preposizionali, aggiungendo così alla loro flessibilità, ad esempio "gli atleti vincono medaglie alle competizioni" o "ai clienti vengono assegnati rimborsi per i prodotti". Le formulazioni verbo con frasi preposizionali vengono usate in questi tipi di domande:

  • Quanti atleti hanno vinto una medaglia d'oro ai Campionati visa?
  • Quali clienti hanno ricevuto un rimborso per il formaggio?
  • A quale competizione Danell Leyva ha vinto una medaglia di bronzo?

Alcune formulazioni verbo vengono create automaticamente quando una colonna viene riconosciuta come contenente sia un verbo che una preposizione.

Ecco un esempio dell'aspetto di una formulazione verbo all'interno dello schema linguistico:
customers_buy_products_from_salespeople:

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

Relazioni con più formulazioni

Spesso, una singola relazione può essere descritta in più modi. In questo caso, una singola relazione può avere più di una formulazione. È comune che la relazione tra un'entità di tabella e un'entità di colonna abbia sia una formulazione di attributo che un'altra formulazione. Ad esempio, nella relazione tra il cliente e il nome del cliente, è necessario che sia una formulazione di attributo (ad esempio "clienti hanno nomi") sia una formulazione di nome (ad esempio, "i nomi dei clienti sono i nomi dei clienti"), in modo da poter porre entrambi i tipi di domande.

Ecco un esempio dell'aspetto di una relazione con due formulazioni all'interno dello schema linguistico:
customer_has_name:

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

Un altro esempio è l'aggiunta della formulazione alternativa "i dipendenti vendono i prodotti dei clienti" alla relazione "i clienti acquistano prodotti dai dipendenti". Non è necessario aggiungere varianti come "i dipendenti vendono prodotti ai clienti" o "i prodotti vengono venduti ai clienti dai dipendenti" perché le varianti "by" e "to" dell'oggetto soggetto e indiretto vengono dedotti automaticamente da Q&A.

Considerazioni e risoluzione dei problemi

Se si apporta una modifica a un file con estensione lsdl.yaml non conforme al formato dello schema linguistico, gli squiggli di convalida indicano il problema:

Screenshot of a sample .yaml file showing errors.

Altre domande? Chiedere al Community di Power BI