Condividi tramite


Modificare lo schema linguistico per Domande e risposte e aggiungere formulazioni in Power BI Desktop

Usare frasi comuni e linguaggio naturale per porre domande ai dati è una funzionalità potente. Lo è ancora di più quando i dati restituiscono una risposta. Quando si formula una domanda a Domande e risposte in Power BI, il sistema fa del suo meglio per rispondere correttamente. È possibile modificare lo schema linguistico per migliorare le risposte Q&A per ottenere interazioni ancora migliori.

Si parte dai dati aziendali. Più il modello di dati è di qualità, più sarà facile per gli utenti ottenere risposte appropriate. Uno dei modi per migliorare il modello consiste nell'aggiungere uno schema linguistico che definisce e classifica la terminologia e le relazioni tra i nomi delle tabelle e delle colonne nel set di dati. In Power BI Desktop è possibile gestire gli schemi linguistici.

Sono due gli aspetti da considerare per Domande e risposte. Il primo aspetto riguarda la preparazione, ovvero la modellazione. Il secondo aspetto riguarda la formulazione di domande e l'esplorazione dei dati, ovvero l'utilizzo. In alcune aziende, i dipendenti con il ruolo di modellatore di dati o amministratore IT potrebbero ricevere l'incarico di assemblare i set di dati, creare i modelli di dati e pubblicare i set di dati in Power BI. Un secondo gruppo di dipendenti può invece avere il compito di "utilizzare" i dati online. In altre aziende questi ruoli potrebbero essere combinati.

Questo articolo è destinato i modellatori di dati, ovvero agli utenti impegnati a ottimizzare i set di dati per restituire i migliori risultati possibili per Domande e risposte.

Che cos'è uno schema linguistico?

Uno schema linguistico descrive i termini e le frasi che Domande e risposte dovrebbe essere in grado di comprendere in merito agli oggetti contenuti in un set di dati, tra cui le parti del discorso, le formulazioni e i sinonimi. Quando si importa un set di dati o ci si connette a esso, Power BI crea uno schema linguistico basato sulla struttura del set. Quando si pone una domanda a Domande e risposte, parte una ricerca per recuperare corrispondenze e relazioni nei dati al fine di determinare lo scopo della domanda. Ad esempio, vengono cercati sostantivi, verbi, aggettivi, formulazioni e altri elementi. E vengono cercate anche relazioni, ad esempio, quali colonne 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 descrivono, ovvero si formulano, le relazioni tra più elementi. Ad esempio, per descrivere la relazione tra clienti e prodotti, si potrebbe dire "i clienti acquistano i prodotti". Oppure, per descrivere la relazione tra clienti ed età, si potrebbe dire "l'età indica quanto sono vecchi i clienti". 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. Alcune corrispondono direttamente alle relazioni presenti nel modello di dati. Alcune fanno riferimento alle colonne e alle tabelle che le contengono. Altre fanno riferimento a più tabelle e colonne in relazioni complesse. In tutti i casi, però, descrivono con termini semplici in che modo gli elementi sono correlati tra loro.

Gli schemi linguistici vengono salvati in formato YAML. Questo formato è correlato a un formato diffuso, JSON, 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 YAML

Per modificare i file YAML degli schemi linguistici è consigliabile usare Visual Studio Code. Visual Studio Code include un supporto predefinito per i file YAML, che può essere esteso per convalidare specificamente il formato di schema linguistico usato in 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>Scegliere un'altra app.

  4. Selezionare Visual Studio Code e quindi scegliere Sempre.

    Screenshot della finestra di dialogo che mostra un elenco di programmi per aprire il file. Visual Studio Code e Always sono evidenziati.

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

  1. Selezionare la scheda Estensioni (ultima a sinistra) o premere CTRL+MAIUSC+X.
    Screenshot del menu a sinistra in Visual Studio Code con l'icona Estensioni evidenziata.
  2. Cercare "yaml" e selezionare YAML Support by Red Hat nell'elenco.
  3. Selezionare Installa > Ricarica.

Usare schemi linguistici

Gli schemi linguistici possono essere utilizzati in due modi. Il primo consiste nel modificare, importare ed esportare il file YAML dalla barra multifunzione in Power BI Desktop. Questo metodo è illustrato nell'articolo sull'esperienza d'uso degli strumenti di Domande e risposte in Power BI. In questo caso, non è necessario aprire il file YAML per migliorare Domande e risposte.

L'altro modo per modificare uno schema linguistico consiste nell'esportare e modificare direttamente il file YAML. Quando si modifica il file YAML di uno schema linguistico, si contrassegnano le colonne nella tabella come elementi grammaticali diversi e si definiscono le parole che potrebbero essere usate per formulare una domanda. Ad esempio, si definiscono le colonne che sono il soggetto e l'oggetto del verbo e si aggiungono parole alternative che i colleghi potrebbero usare per fare riferimento a tabelle, colonne e misure nel modello.

Screenshot di un file yaml dello schema linguistico di esempio.

Per poter modificare uno schema linguistico, è necessario prima aprirlo, vale a dire esportarlo da Power BI Desktop. Quando si salva nuovamente il file YAML nello stesso percorso, l'operazione viene considerata un'importazione. È tuttavia possibile importare anche altri file YAML. Se, ad esempio, si ha un set di dati simile in cui si è lavorato per aggiungere parti del discorso, identificare relazioni e creare formulazioni e sinonimi, è possibile usare il file YAML corrispondente in un file di Power BI Desktop diverso.

Domande e risposte userà tutte queste informazioni combinandole con gli eventuali miglioramenti che consentono di fornire una migliore risposta, arricchire il completamento automatico e il riepilogo delle domande.

Modifica di uno schema linguistico

Quando si esporta uno schema linguistico da Power BI Desktop per la prima volta, la maggior parte o l'intero contenuto del file viene generato automaticamente dal motore di Domande e risposte. Queste entità generate, parole (sinonimi), relazioni e frasi vengono designate con un tag Stato: Generato. Sono incluse nel file principalmente a scopo informativo, ma possono essere un punto di partenza utile per apportare altre modifiche.

Nota

Il file YAML di esempio incluso in questa esercitazione non contiene i tag State:Generated e State:Deleted perché è stato appositamente preparato per l'esercitazione. Per visualizzare questi tag, aprire un file con estensione pbix non modificato nella visualizzazione relazioni ed esportare lo schema linguistico.

Screenshot di un file yaml di esempio che mostra Stato: Generato.

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 Stato: Generato. Analogamente, se si desidera rimuovere del contenuto generato, modificare il tag State: Generated in State: Deleted in modo che non venga rigenerato quando si importa il file dello schema linguistico.

Esportare e 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 lo schema linguistico.

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

  4. Aprire il file in Visual Code o in un altro editor.

  5. In Visualizzazione modello di Power BI Desktop, nella scheda Modellazione, selezionare Schema linguistico>Importa.

  6. Passare al percorso in cui è stato salvato il file YAML modificato e selezionare il file. Verrà visualizzato un messaggio di conferma per informare l'utente che il file YAML dello schema linguistico è stato importato.

    Screenshot della finestra di dialogo di importazione completata.

Formulazioni nello schema linguistico

Una formulazione è il modo in cui si descrivono, ovvero si formulano, le relazioni tra più elementi. Ad esempio, per descrivere la relazione tra clienti e prodotti, si potrebbe dire "i clienti acquistano i prodotti".

Da dove provengono le formulazioni?

Power BI aggiunge automaticamente molte formulazioni semplici allo schema linguistico, in funzione della struttura del modello e di supposizioni basate sui nomi delle colonne. Ad esempio:

  • La maggior parte delle colonne è correlata alla tabella che le contiene con una semplice formulazione come "i prodotti hanno descrizioni".
  • Le relazioni del modello generano formulazioni predefinite per entrambe le direzioni della relazione, come "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 che Q&A non riesce a intuire. Sarebbe quindi opportuno aggiungere manualmente delle formulazioni personalizzate.

Perché aggiungere formulazioni?

Il primo motivo per cui è utile aggiungere una formulazione è per definire un nuovo termine. Ad esempio, se si desidera poter chiedere "elenca i clienti più vecchi", è necessario innanzitutto insegnare a Domande e risposte cosa si intende per "vecchi". In questo caso si potrebbe aggiungere la formulazione "l'età indica quanto sono vecchi i clienti".

Il secondo motivo per cui è utile aggiungere una formulazione è per risolvere un'ambiguità. La ricerca di parole chiave semplici non dà risultati ottimali quando le parole hanno più di un significato. Ad esempio, "Voli per Chicago" non ha lo stesso significato di "Voli da Chicago". Domande e risposte non riconoscerà l'intenzione dell'utente, a meno che non si aggiungano le formulazioni "voli da città di partenza" e "voli per città di arrivo". Analogamente, Domande e risposte capirà la distinzione tra "automobili che John ha venduto a Mary" e "automobili che John ha acquistato da Mary" solo dopo che sono state aggiunte le formulazioni "i clienti acquistano le automobili dai dipendenti" e "i dipendenti vendono le automobili ai clienti".

L'ultimo motivo per cui è utile aggiungere formulazioni è migliorare le riformulazioni. Per evitare che Domande e risposte rimandi l'affermazione "Mostra i clienti e i loro prodotti", sarebbe più chiaro dire "Mostra i clienti e i prodotti che hanno acquistato" oppure "Mostra i clienti e i prodotti che hanno guardato", a seconda del modo in cui la domanda è stata intesa. L'aggiunta di formulazioni personalizzate consente alle riformulazioni di essere più esplicite e meno ambigue.

Tipi di formulazioni

Per comprendere i diversi tipi di formulazioni, è prima necessario ripassare un paio di termini di grammatica basilari:

  • Un sostantivo è una persona, un luogo o un'operazione. Esempi: auto, ragazzo, Mario, flusso
  • Un verbo è un'azione o un modo di essere. Esempi: covare, scoppiare, divorare, espellere
  • Un aggettivo è un nome che descrive un sostantivo. Esempi: potente, magico, dorato, due
  • Una preposizione è una parola usata prima di un sostantivo per collegarlo a un sostantivo, verbo o aggettivo precedente. Esempi: di, per, con, da
  • Un attributo è una qualità o una funzione di un oggetto.
  • Un nome è una parola o un gruppo di parole con cui ci si riferisce a una persona, a un animale, a un luogo o a una cosa.

Formulazioni con 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, dirette e svolgono la maggior parte del carico di lavoro quando non è stata definita una formulazione più precisa o dettagliata. Le formulazioni con attributi sono descritte con il verbo di base "avere", ad esempio "i prodotti hanno categorie" e "i paesi/aree geografiche ospiti hanno città ospiti". Consentono automaticamente anche la formulazione di domande con le preposizioni "di" e "per" ("categorie di prodotti" o "ordini per prodotti") e con la forma di possesso ("ordini di John"). Le formulazioni con attributi vengono impiegate nei tipi di domanda seguenti:

  • Quali clienti hanno ordini?
  • Elencare le città host per paese/area geografica crescente
  • Mostra gli ordini contenenti tè
  • Elenca i clienti con ordini
  • Qual è la categoria di ogni prodotto?
  • Conta 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 crearle manualmente. Di seguito viene riportato un esempio dell'aspetto che ha una formulazione con attributi all'interno dello schema linguistico:

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

Formulazioni nominali

Le formulazioni nominali sono utili se il modello di dati prevede una tabella che contiene oggetti identificati da un nome, come i nomi di atleti o di clienti. Ad esempio, la formulazione "nomi dei prodotti è come sono chiamati i prodotti" è essenziale per poter usare nomi dei prodotti nelle domande. Le formulazioni nominali consentono anche di usare "denominato" come verbo, ad esempio "Elenco di 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, per "I clienti che hanno acquistato tè", Domande e risposte può indicare che il valore "tè" fa riferimento all'intera riga della tabella di prodotti anziché semplicemente a un valore nella colonna del nome del prodotto. Le formulazioni nominali vengono impiegate nei tipi di domanda seguenti:

  • Quali dipendenti si chiamano Robert King
  • Chi si chiama Ernst Handel
  • Sport di Fernand De Montigny
  • Numero di atlete chiamate Mary
  • Che cosa ha acquistato Robert King?

Supponendo di avere usato una convenzione di denominazione sensata per le colonne di nome nel modello (ad esempio, "Nome" o "NomeProdotto" anziché "NmPrd"), la maggior parte delle formulazioni nominali necessarie per il modello verrà generata automaticamente da Power BI. In genere non è necessario crearli manualmente.

Di seguito viene riportato un esempio dell'aspetto che ha una formulazione nominale 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 utilizzati per descrivere elementi presenti nel modello. Ad esempio, la formulazione "i clienti soddisfatti sono clienti con valutazione > 6" è necessaria per porre domande quali "Elenca i clienti soddisfatti a Chicago". Esistono diversi tipi di formulazioni aggettivali utilizzabili in situazioni diverse.

Le formulazioni aggettivali semplici definiscono un nuovo aggettivo in base a una condizione, ad esempio "i prodotti sospesi sono prodotti con stato = S". Le formulazioni aggettivali vengono impiegate nei tipi di domanda seguenti:

  • Quali prodotti sono sospesi?
  • Elenca i prodotti sospesi
  • Elenca gli atleti vittoriosi
  • Prodotti che sono esauriti

Di seguito viene riportato un esempio dell'aspetto che ha una formulazione aggettivale 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 quantità definiscono un nuovo aggettivo basato su un valore numerico che indica l'estensione a cui si riferisce l'aggettivo, ad esempio "le lunghezze indicano quanto sono lunghi i fiumi" e "le regioni piccole hanno superfici poco estese". Le formulazioni aggettivali di quantità vengono impiegate nei tipi di domanda seguenti:

  • Elenca i fiumi lunghi
  • Quali fiumi sono i più lunghi?
  • Elenca le regioni più piccole che hanno vinto il campionato di basket
  • Quanto è lungo il Rio Grande?

Di seguito viene riportato un esempio dell'aspetto che ha una formulazione aggettivale di quantità 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 basati su valori di una colonna del modello, ad esempio "i colori descrivono i prodotti". Le formulazioni aggettivali dinamiche vengono impiegate nei tipi di domanda seguenti:

  • Elenca i prodotti rossi
  • Quali prodotti sono verdi?
  • Mostra eventi di pattinaggio femminili
  • Conta i problemi attivi

Di seguito viene riportato un esempio dell'aspetto che ha una formulazione aggettivale 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 nomi che descrivono sottogruppi di elementi nel modello. Spesso includono un qualche tipo di misura o condizione specifica al modello. Ad esempio, per il modello potrebbe essere opportuno aggiungere formulazioni che distinguono i campioni dai vincitori di medaglie, gli sport terrestri dagli sport acquatici, i giochi di squadra dai giochi individuali, o le categorie di età degli atleti (adolescenti, adulti, senior) e così via. Per un database di film si potrebbero voler aggiungere formulazioni sostantivali come "i fiaschi sono film con profitto netto < 0", in modo da poter formulare domande come "conta i fiaschi per anno". Esistono due formi di formulazioni sostantivali utilizzabili in situazioni diverse.

Le formulazioni sostantivali semplici definiscono un nuovo sostantivo basato su una condizione, ad esempio "il consulente è un dipendente per cui tempo pieno = false" e "il campione è un atleta con un numero di medaglie >5". Le formulazioni sostantivali semplici vengono impiegate nei tipi di domanda seguenti:

  • Quali dipendenti sono consulenti?
  • Conta i consulenti a Portland
  • Quanti campioni nel 2016

Di seguito viene riportato un esempio dell'aspetto che ha una formulazione sostantivale 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 gruppo di nuovi nomi basati su valori di una colonna del modello, ad esempio "i lavori definiscono sottogruppi di dipendenti". Le formulazioni sostantivali dinamiche vengono impiegate nei tipi di domanda seguenti:

  • Elenca i cassieri di Chicago
  • Quali dipendenti sono baristi?
  • Elenca gli arbitri nel 1992

Di seguito viene riportato un esempio dell'aspetto che ha una formulazione sostantivale dinamica all'interno dello schema linguistico:
employee_has_job:

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

Formulazioni con preposizioni

Le formulazioni con preposizioni consentono di descrivere come sono collegati tra loro gli elementi del modello tramite le preposizioni. Ad esempio, la formulazione "le città sono negli stati/aree geografiche" migliora la comprensione della domande "conta le città in Francia". Alcune formulazioni con preposizioni sono create automaticamente quando una colonna viene riconosciuta come entità geografica. Le formulazioni con preposizioni vengono impiegate nei tipi di domanda seguenti:

  • Conta i clienti a New York
  • Elenca i libri di linguistica
  • In quale città vive Robert King?
  • Quanti libri sono per Stephen Pinker?

Di seguito viene riportato un esempio dell'aspetto che ha 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 verbali

Le formulazioni verbali consentono di descrivere come sono collegati tra loro gli elementi del modello tramite i verbi. Ad esempio, la formulazione "i clienti acquistano i prodotti" migliora la comprensione delle domande del tipo "chi ha comprato formaggio?" e "che cosa ha acquistato John?" Le formulazioni verbali sono le formulazioni più flessibili, spesso mettono in relazione più di due elementi tra loro, ad esempio "i dipendenti vendono i prodotti ai clienti". Le formulazioni verbali vengono impiegate nei tipi di domanda seguenti:

  • Chi ha venduto cosa a chi?
  • Quale dipendente ha venduto tè a John?
  • A quanti clienti è stato venduto il tè da Mary?
  • Elenca i prodotti che Mary ha venduti a John.
  • Quali prodotti sospesi sono stati venduti ai clienti di Chicago dai dipendenti di Boston?

Le formulazioni verbali possono inoltre contenere formulazioni con preposizioni diventando, di conseguenza, ancora più flessibili, ad esempio "gli atleti vincono medaglie ai concorsi" o "i clienti ricevono rimborsi per i prodotti". Le formulazioni verbali con formulazioni con preposizioni vengono impiegate nei tipi di domanda seguenti:

  • Quanti atleti hanno vinto la medaglia d'oro ai campionati Visa?
  • Quali clienti hanno ottenuto un rimborso per il formaggio?
  • In quale gara Danell Leyva ha vinto la medaglia di bronzo?

Alcune formulazioni verbali sono create automaticamente quando il sistema riconosce che una colonna contiene sia un verbo che una preposizione.

Di seguito viene riportato un esempio dell'aspetto che ha una formulazione verbale 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 stessa relazione può essere descritta in più modi. In questo caso, una singola relazione può essere definita da più formulazioni. È comune che la relazione tra un'entità di tabella e un'entità di colonna contenga sia una formulazione con attributi sia un altro tipo di formulazione. Ad esempio, nella relazione tra cliente e nome cliente è opportuno che sia presente sia una formulazione con attributi (ad esempio, "i clienti hanno nomi") che una formulazione nominale (ad esempio, "i nomi cliente sono i nomi dei clienti") affinché sia possibile porre entrambi i tipi di domanda.

Di seguito viene riportato un esempio dell'aspetto che ha 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 sarebbe aggiungere la formulazione alternativa "i dipendenti vendono i prodotti ai clienti" alla relazione "i clienti acquistano i prodotti dai dipendenti". Non è necessario aggiungere le variazioni del tipo "i dipendenti vendono i prodotti ai clienti" o "i prodotti sono venduti ai clienti dai dipendenti", poiché le variazioni del soggetto e dell'oggetto indiretto introdotte dalle preposizione "ai" e "dai" vengono dedotte automaticamente da Domande e risposte.

Considerazioni e risoluzione dei problemi

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

Screenshot di un file yaml di esempio che mostra gli errori.

Altre domande? Inviare una domanda alla community di Power BI