Rediger Q&A-sprogligt skema, og tilføj udtryk i Power BI Desktop

Det er effektivt at bruge almindelige udtryk og naturligt sprog til at stille spørgsmål om dine data. Det er endnu mere effektivt, når dine data svarer. Når du stiller Spørgsmål og svar til Power BI, gør det bedste for at svare korrekt. Du kan redigere det sproglige skema for at forbedre Q&A-svarene for at få endnu bedre interaktioner.

Det hele starter med dine virksomhedsdata. Jo bedre datamodellen er, jo nemmere bliver det for brugerne at få kvalitetssvar. En måde at forbedre modellen på er ved at tilføje et sprogligt skema, der definerer og kategoriserer terminologi og relationer mellem tabel- og kolonnenavne i dit datasæt. I Power BI Desktop kan du administrere dine sproglige skemaer.

Q&A har to sider. Den første side er forberedelsen eller modellering. Den anden side er at stille spørgsmål og udforske dataene eller bruge dem. I nogle virksomheder kan medarbejdere, der kaldes datamodellerere eller it-administratorer, være dem, der samler datasættene, opretter datamodellerne og publicerer datasættene i Power BI. Et andet sæt medarbejdere ville være dem, der "forbruger" dataene online. I andre firmaer kan disse roller kombineres.

Denne artikel er til dataudformere, de personer, der optimerer datasæt for at give de bedst mulige Q&A-resultater.

Hvad er et sprogligt skema?

Et sprogligt skema beskriver ord og udtryk, som Q&A skal forstå for objekter i et datasæt, herunder dele af tale, synonymer og udtryk. Når du importerer eller opretter forbindelse til et datasæt, opretter Power BI et sprogligt skema baseret på datasættets struktur. Når du stiller Q&A-spørgsmål, søger det efter match og relationer i dataene for at finde ud af hensigten med dit spørgsmål. Den søger f.eks. efter navneord, verber, adjektiver, udtryk og andre elementer. Og den søger efter relationer, f.eks. hvilke kolonner der er objekter i et verbum.

Du kender sikkert dele af talen, men udtryk kan være et nyt ord. Et udtryk er, hvordan du taler om (eller udtryk) relationerne mellem ting. Hvis du f.eks. vil beskrive relationen mellem kunder og produkter, kan du sige "kunder køber produkter". Eller hvis du vil beskrive relationen mellem kunder og aldre, kan du sige "aldre angiver, hvor gamle kunder er". Eller hvis du vil beskrive relationen mellem kunder og telefonnumre, kan du sige "kunder har telefonnumre".

Disse udtryk findes i mange former og størrelser. Nogle svarer direkte til relationer i datamodellen. Nogle relaterer kolonner med de tabeller, der indeholder dem. Andre relaterer flere tabeller og kolonner sammen i komplekse relationer. I alle tilfælde beskriver de, hvordan tingene er relateret ved hjælp af hverdagsord.

Sproglige skemaer gemmes i .yaml-format. Dette format er relateret til det populære JSON-format, men giver en mere fleksibel og læsevenlig syntaks. Sproglige skemaer kan redigeres, eksporteres og importeres til Power BI Desktop.

Forudsætninger

Konfigurer en editor til .yaml-filer

Vi anbefaler, at du bruger Visual Studio Code til at redigere .yaml-filer med sprogligt skema. Visual Studio Code indeholder indbygget understøttelse af .yaml-filer og kan udvides til specifikt at validere det sproglige skemaformat i Power BI.

  1. Installér Visual Studio Code.

  2. Højreklik på .yaml-filen i eksemplet på det sproglige skema, du gemte tidligere: QnALinguisticSchema.zip.

  3. Vælg Åbn med>Vælg en anden app.

  4. Vælg Visual Studio Code, og vælg derefter Altid.

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

I Visual Studio Code skal du installere YAML Support by Red Hat-udvidelsen.

  1. Vælg fanen Udvidelser (sidste i menuen til venstre) eller CTRL+SKIFT+X.
    Screenshot of the left menu in Visual Studio Code with the Extensions icon highlighted.
  2. Søg efter "yaml", og vælg YAML Support by Red Hat på listen.
  3. Vælg Installér > genindlæs.

Arbejd med sproglige skemaer

Der er to måder at arbejde med sproglige skemaer på. En måde er at redigere, importere og eksportere .yaml fra båndet i Power BI Desktop. På den måde beskrives artiklen Om Q&A Tooling i Power BI. Du behøver ikke at åbne .yaml-filen for at forbedre Q&A.

Den anden måde at redigere et sprogligt skema på er ved at eksportere og redigere .yaml-filen direkte. Når du redigerer en .yaml-fil med et sprogligt skema, mærker du kolonner i tabellen som forskellige grammatiske elementer og definerer ord, som en kollega kan bruge til at stille et spørgsmål. Du angiver f.eks. de kolonner, der er emnet og objektet for verbet. Du kan tilføje alternative ord, som kollegaer kan bruge til at referere til tabeller, kolonner og målinger i din model.

Screenshot of a sample linguistic schema .yaml file.

Før du kan redigere et sprogligt skema, skal du åbne (eksportere) det fra Power BI Desktop. Hvis du gemmer .yaml-filen på den samme placering igen, betragtes det som import. Men du kan også importere andre .yaml-filer i stedet. Hvis du f.eks. har et lignende datasæt, og du allerede har tilføjet dele af tale, identificeret relationer, oprettet udtryk og oprettet synonymer, kan du bruge denne .yaml-fil i en anden Power BI Desktop-fil.

Spørgsmål og svar bruger alle disse oplysninger sammen med eventuelle forbedringer, du foretager, for at give et bedre svar, automatisk fuldførelse og en oversigt over spørgsmålene.

Rediger et sprogligt skema

Når du først eksporterer dit sproglige skema fra Power BI Desktop, genereres det meste eller hele indholdet i filen automatisk af Q&A-programmet. Disse genererede objekter, ord (synonymer), relationer og udtryk er angivet med mærket Tilstand: Genereret . De er hovedsageligt inkluderet i filen til orientering, men kan være et nyttigt udgangspunkt for dine egne ændringer.

Bemærk

Den .yaml-eksempelfil, der er inkluderet i dette selvstudium, indeholder ikke Tilstand: Genereret eller Tilstand: Slettede mærker, fordi den er forberedt specifikt til dette selvstudium. Hvis du vil se disse mærker, skal du åbne en ikke-redigeret .pbix-fil i relationsvisning og eksportere det sproglige skema.

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

Når du importerer din sproglige skemafil tilbage til Power BI Desktop, ignoreres alt, der er markeret med Tilstand: Genereret , og det gendannes senere. Hvis du derfor vil ændre noget genereret indhold, skal du fjerne det tilsvarende tag Tilstand: Genereret . Hvis du på samme måde vil fjerne noget genereret indhold, skal du ændre mærket Tilstand: Genereret til Tilstand: Slettet , så det ikke gendannes, når du importerer din sproglige skemafil.

Eksportér, og importér derefter en .yaml-fil

  1. Åbn datasættet i modelvisning i Power BI Desktop.

  2. Under fanen Udformning skal du vælge Sprogligt skema>Eksportér sprogligt skema.

  3. Gem den. Filnavnet slutter med .lsdl.yaml.

  4. Åbn den i Visual Code eller en anden editor.

  5. Vælg Importér sprogligt skema>under fanen Udformning i Modelvisning i Power BI Desktop.

  6. Gå til den placering, hvor du gemte den redigerede .yaml-fil, og vælg den. Du får vist en meddelelse om, at .yaml-filen med det sproglige skema blev importeret.

    Screenshot of the successful import dialog.

Udtryk i det sproglige skema

Et udtryk er, hvordan du taler om (eller udtryk) relationerne mellem ting. Hvis du f.eks. vil beskrive relationen mellem kunder og produkter, kan du sige "kunder køber produkter".

Hvor kommer udtryk fra?

Power BI føjer automatisk mange enkle udtryk til det sproglige skema baseret på modellens struktur og gæt baseret på kolonnenavnene. Eksempler:

  • De fleste kolonner er relateret til deres tabel med et simpelt udtryk, f.eks. "produkter har beskrivelser".
  • Modelrelationer resulterer i standardudtryk for begge retninger i relationen, f.eks. "ordrer har produkter" og "produkter har ordrer".
  • Baseret på deres kolonnenavne kan nogle modelrelationer have mere komplekse standardudtryk, f.eks. "ordrer sendes til byer".

Brugerne taler dog nogle gange om ting på måder, som Q&A ikke kan gætte på. Det kan derfor være en god idé at tilføje dine egne udtryk manuelt.

Hvorfor tilføje udtryk?

Den første grund til at tilføje et udtryk er at definere et nyt ord. Hvis du f.eks. vil spørge "angiv de ældste kunder", skal du først lære Q&A, hvad du mener med "gammel". Det gør du ved at tilføje et udtryk som "aldre angiver, hvor gamle kunder er".

Den anden grund til at tilføje et udtryk er at løse flertydighed. Grundlæggende nøgleordssøgning går kun så langt, når ord har mere end én betydning. "Flyafgange til Chicago" er f.eks. ikke det samme som "flyafgange fra Chicago". Men Q&A ved ikke, hvilken en du mener, medmindre du tilføjer udtryk "fly er fra afgangsbyer" og "fly er til ankomstbyer". På samme måde vil Q&A kun forstå forskellen mellem "biler, som John har solgt til Mary" og "biler, som John har købt fra Mary", når du har tilføjet udtrykene "kunder køber biler fra medarbejdere" og "medarbejdere sælger kunder biler".

Den sidste årsag til at tilføje et udtryk er at forbedre omskrivninger. I stedet for at Q&A går tilbage til dig "Vis kunderne og deres produkter", vil det være tydeligere, hvis der står "Vis kunderne og de produkter, de har købt" eller "Vis kunderne og de produkter, de har gennemgået", afhængigt af hvordan det forstod spørgsmålet. Tilføjelse af brugerdefinerede udtryk gør det muligt at gentage sætninger for at være mere eksplicitte og entydige.

Typer af udtryk

Hvis du vil forstå de forskellige typer udtryk, skal du først huske et par grundlæggende grammatiske begreber:

  • Et navneord er en person, et sted eller en ting. Eksempler: bil, teenager, Marty, fluxkondensator
  • Et verbum er en handling eller tilstand for at være. Eksempler: hatch, burst, devour, eject
  • Et adjektiv er et beskrivende ord, der ændrer et navneord. Eksempler: kraftfuld, magisk, gylden, stjålet
  • Et forholdsord er et ord, der bruges før et navneord til at relatere det til et tidligere navneord, verbum eller adjektiv Eksempler: af, for, nær, fra
  • En attribut er en kvalitet eller funktion i noget.
  • Et navn er et ord eller sæt af ord, som en person, et dyr, et sted eller en ting er kendt for eller refereret til.

Attributudtryk

Attributudtryk er arbejdshesten i Q&A. De bruges, når én ting fungerer som en attribut for en anden ting. De er enkle, ligetil og udfører det meste af det tunge arbejde, når du ikke har defineret et mere diskret og mere detaljeret udtryk. Attributudtryk beskrives ved hjælp af det grundlæggende verbum "have" ("produkter har kategorier" og "værtslande/områder har værtsbyer"). De tillader også automatisk spørgsmål med forholdsordene "af" og "for" ("produktkategorier" eller "ordrer på produkter") og ejende ("Johns ordrer"). Attributudtryk bruges i denne type spørgsmål:

  • Hvilke kunder har ordrer?
  • Vis værtsbyer efter land/område stigende
  • Vis ordrer, der har chai
  • Vis kunder med ordrer
  • Hvad er kategorien for hvert produkt?
  • Tæl Robert Kings ordrer

Power BI genererer de fleste af de attributudtryk, der skal bruges i din model, baseret på tabel- eller kolonneindsamling og modelrelationer. Normalt behøver du ikke selv at oprette dem. Her er et eksempel på, hvordan et attributudtryk ser ud i det sproglige skema:

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

Navneudtryk

Navneudtryk er nyttige, hvis din datamodel har en tabel, der indeholder navngivne objekter, f.eks. navne på sportsudøvere eller kundenavne. Et udtryk af typen "produktnavne er navne på produkter" er f.eks. vigtigt for at kunne bruge produktnavne i spørgsmål. Navneudtryk aktiverer også "navngivet" som et verbum (f.eks. "Vis kunder med navnet John Smith"). Det er dog vigtigst, når det bruges sammen med andre udtryk. Det gør det muligt at bruge en navneværdi til at referere til en bestemt tabelrække. I "Kunder, der har købt chai" kan Q&A f.eks. se værdien "chai" refererer til hele rækken i produkttabellen i stedet for blot en værdi i kolonnen produktnavn. Navneudtryk bruges i denne type spørgsmål:

  • Hvilke medarbejdere hedder Robert King
  • Hvem hedder Ernst Händel
  • Fernand De Montignys sport
  • Antal sportsudøvere ved navn Mary
  • Hvad købte Robert King?

Hvis du har brugt en fornuftig navngivningskonvention for navnekolonner i din model (f.eks. "Navn" eller "ProductName" i stedet for "PrdNm"), genererer Power BI automatisk de fleste af de navneudtryk, der skal bruges i din model. Du behøver normalt ikke selv at oprette dem.

Her er et eksempel på, hvordan et navneudtryk ser ud i det sproglige skema:

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

Adjektivudtryk

Adjektivudtryk definerer nye adjektiver, der bruges til at beskrive ting i din model. "Glade kunder er f.eks. kunder, hvor bedømmelse > 6"-udtryk er nødvendigt for at stille spørgsmål som "angiv de glade kunder i Des Moines". Der er flere former for adjektivudtryk, der skal bruges i forskellige situationer.

Enkle adjektivudtryk definerer et nyt adjektiv baseret på en betingelse, f.eks. "udgåede produkter er produkter, hvor status = D." Simple adjektivudtryk bruges i spørgsmål som:

  • Hvilke produkter ophører?
  • Liste over udgåede produkter
  • Vis guldmedaljevinderne
  • Produkter, der er i restordre

Her er et eksempel på, hvordan et simpelt adjektivudtryk ser ud i det sproglige skema:

product_is_discontinued:

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

Adjektivudtryk til måling definerer et nyt adjektiv baseret på en numerisk værdi, der angiver, i hvilket omfang adjektivet gælder, f.eks. "længder angiver, hvor lange floder er", og "små lande/områder har små landområder". Adjektivudtryk til måling bruges i spørgsmål som:

  • Vis de lange floder
  • Hvilke floder er de længste?
  • Angiv de mindste lande/områder, der har vundet guld i basketball
  • Hvor længe er Rio Grande?

Her er et eksempel på, hvordan et adjektivudtryk til måling ser ud i det sproglige skema:

river_has_length:

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

Dynamiske adjektivudtryk definerer et sæt nye adjektiver baseret på værdier i en kolonne i modellen, f.eks. "farver beskriver produkter" og "hændelser har hændelseskøn.". Dynamiske adjektivudtryk bruges i spørgsmål som:

  • Vis de røde produkter
  • Hvilke produkter er grønne?
  • Vis skatingarrangementer for kvinder
  • Antal problemer, der er aktive

Her er et eksempel på, hvordan et dynamisk adjektivudtryk ser ud i det sproglige skema:

product_has_color:

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

Navneordsudtryk

Navneordsudtryk definerer nye navneord, der beskriver undersæt af ting i din model. De omfatter ofte en form for modelspecifik måling eller betingelse. For vores model kan det f.eks. være en god idé at tilføje udtryk, der adskiller mestre fra medaljevindere, landsport fra vandsport, teams i forhold til enkeltpersoner eller alderskategorier for sportsudøvere (teenagere, voksne, seniorer). For vores filmdatabase vil vi måske tilføje navneordsudtryk for "flops er film, hvor nettoresultatet < 0", så vi kan stille spørgsmål som "tæl flops efter år." Der er to former for navneordsudtryk, der skal bruges i forskellige situationer.

Enkle navneordsudtryk definerer et nyt navneord baseret på en betingelse, f.eks. "entreprenører er medarbejdere, hvor fuld tid = falsk" og "mester er atlet, hvor antallet af medaljer >5." Simple navneordsudtryk bruges i denne type spørgsmål:

  • Hvilke medarbejdere er entreprenører?
  • Tæl entreprenørerne i Portland
  • Hvor mange mestre i 2016

Her er et eksempel på, hvordan et simpelt navneordsudtryk ser ud i det sproglige skema:

employee_is_contractor:

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

Dynamiske navneordsudtryk definerer et sæt nye navneord baseret på værdier i en kolonne i modellen, f.eks. "job definerer undersæt af medarbejdere". Dynamiske navneordsudtryk bruges i denne type spørgsmål:

  • Vis kassererne i Chicago
  • Hvilke medarbejdere er baristaer?
  • Angiv dommerne i 1992

Her er et eksempel på, hvordan et dynamisk navneordsudtryk ser ud i det sproglige skema:
employee_has_job:

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

Forholdsordsudtryk

Forholdsordsudtryk bruges til at beskrive, hvordan ting i din model er relateret via forholdsord. Et udtryk af typen "byer er i lande/områder" forbedrer f.eks. forståelsen af spørgsmål som "tæl byerne i Washington". Nogle forholdsordsudtryk oprettes automatisk, når en kolonne genkendes som en geografisk enhed. Forholdsordsudtryk bruges i denne type spørgsmål:

  • Tæl kunderne i New York
  • Opret en liste over bøger om lingvistik
  • Hvilken by er Robert King i?
  • Hvor mange bøger er af Stephen Pinker?

Her er et eksempel på, hvordan et forholdsordsudtryk ser ud i det sproglige skema:
customers_are_in_cities:

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

Verbale udtryk

Verbale udtryk bruges til at beskrive, hvordan ting i din model er relateret via verber. Et udtryk for "kunder køber produkter" forbedrer f.eks. forståelsen af spørgsmål som "hvem har købt ost?" og "hvad købte John?" Verbale udtryk er den mest fleksible af alle typer udtryk, der ofte relaterer mere end to ting til hinanden, f.eks. "medarbejdere sælger kunder produkter". Verbale udtryk bruges i denne type spørgsmål:

  • Hvem har solgt hvad til hvem?
  • Hvilken medarbejder solgte chai til John?
  • Hvor mange kunder blev solgt chai af Mary?
  • Angiv de produkter, som Mary har solgt til John.
  • Hvilke udgåede produkter blev solgt til Chicago-kunder af Boston-medarbejdere?

Verbale udtryk kan også indeholde forholdsordsudtryk og dermed øge deres fleksibilitet, f.eks. "sportsudøvere vinder medaljer ved konkurrencer" eller "kunder får refusion for produkter." Verbale udtryk med forholdsordsudtryk bruges i denne type spørgsmål:

  • Hvor mange sportsudøvere vandt en guldmedalje ved Visa Championships?
  • Hvilke kunder fik refusion for ost?
  • Ved hvilken konkurrence vandt Danell Leyva en bronzemedalje?

Nogle verbale udtryk oprettes automatisk, når en kolonne genkendes som indeholder både et verbum og et forholdsord.

Her er et eksempel på, hvordan et verbalt udtryk ser ud i det sproglige skema:
customers_buy_products_from_salespeople:

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

Relationer med flere udtryk

Ofte kan en enkelt relation beskrives på mere end én måde. I dette tilfælde kan en enkelt relation have mere end ét udtryk. Det er almindeligt, at relationen mellem et tabelobjekt og et kolonneobjekt både har et attributudtryk og et andet udtryk. I relationen mellem kunde- og kundenavn skal du f.eks. både have et attributudtryk (f.eks. "kunder har navne") og et navneudtryk (f.eks. "kundenavne er navnene på kunder"), så du kan stille begge typer spørgsmål.

Her er et eksempel på, hvordan en relation med to udtryk ser ud i det sproglige skema:
customer_has_name:

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

Et andet eksempel kunne være at føje det alternative udtryk "medarbejdere sælger kunder produkter" til relationen "kunder køber produkter fra medarbejdere". Du behøver ikke at tilføje variationer som "medarbejdere sælger produkter til kunder" eller "produkter sælges til kunder af medarbejdere", fordi variationerne "efter" og "til" for emnet og det indirekte objekt udledes automatisk af Q&A.

Overvejelser og fejlfinding

Hvis du foretager en ændring af en .lsdl.yaml-fil, der ikke er i overensstemmelse med det sproglige skemaformat, angiver valideringssquiggles problemet:

Screenshot of a sample .yaml file showing errors.

Har du flere spørgsmål? Spørg Power BI-community'et