Rediger lingvistisk skjema for spørsmål og legg til uttrykk i Power BI Desktop
Det er kraftig å bruke vanlige uttrykk og naturlig språk til å stille spørsmål om dataene dine. Det er enda kraftigere når dataene svarer. Når du stiller Spørsmål og svar for Power BI, gjør det en best mulig innsats å svare riktig. Du kan redigere det lingvistiske skjemaet for å forbedre svarene for spørsmål og svar for enda bedre samhandlinger.
Det hele starter med virksomhetsdataene. Jo bedre datamodellen er, desto enklere blir det for brukerne å få kvalitetssvar. Én måte å forbedre modellen på er å legge til et lingvistisk skjema som definerer og kategoriserer terminologi og relasjoner mellom tabell- og kolonnenavn i datasettet. Power BI Desktop er stedet der du administrerer lingvistiske skjemaer.
Det er to sider ved spørsmål og svar. Den første siden er forberedelsen eller modelleringen. Den andre siden stiller spørsmål og utforsker dataene, eller bruker. I enkelte firmaer kan ansatte som kalles datamodellerere eller IT-administratorer, være de som setter sammen datasettene, oppretter datamodellene og publiserer datasettene til Power BI. Et annet sett med ansatte vil være de som «bruker» dataene på nettet. I andre firmaer kan disse rollene kombineres.
Denne artikkelen gjelder for datamodellererne, personene som optimaliserer datasett for å gi best mulig Q&A-resultater.
Hva er et lingvistisk skjema?
Et lingvistisk skjema beskriver begreper og uttrykk som Q&A bør forstå for objekter i et datasett, inkludert deler av tale, synonymer og fraser. Når du importerer eller kobler til et datasett, oppretter Power BI et lingvistisk skjema basert på strukturen til datasettet. Når du stiller spørsmål om spørsmål, ser det etter treff og relasjoner i dataene for å finne ut hensikten med spørsmålet ditt. Den ser for eksempel etter substantiver, verb, adjektiver, fraser og andre elementer. Og det ser etter relasjoner, som hvilke kolonner som er objekter i et verb.
Du er sikkert kjent med deler av tale, men fraser kan være et nytt begrep. Et uttrykk er hvordan du snakker om (eller uttrykk) relasjonene mellom ting. Hvis du for eksempel vil beskrive forholdet mellom kunder og produkter, kan du si «kunder kjøper produkter». Eller for å beskrive forholdet mellom kunder og aldre, kan du si «alder indikerer hvor gamle kunder er». Eller for å beskrive forholdet mellom kunder og telefonnumre, kan du si «kunder har telefonnumre».
Disse uttrykkene kommer i mange figurer og størrelser. Noen korresponderer direkte med relasjoner i datamodellen. Noen relaterer kolonner med de inneholder tabellene. Andre relaterer flere tabeller og kolonner sammen i komplekse relasjoner. I alle tilfeller beskriver de hvordan ting er relatert ved hjelp av hverdagslige termer.
Lingvistiske skjemaer lagres i et YAML-format. Dette formatet er relatert til det populære JSON-formatet, men gir en mer fleksibel og enklere å lese syntaks. Lingvistiske skjemaer kan redigeres, eksporteres og importeres til Power BI Desktop.
Forutsetning
- Se anbefalte fremgangsmåter for å optimalisere spørsmål og svar i Power BI for å lære om tips for utforming og forbedring av datamodellen. Den inneholder en viktig inndeling om hvordan du legger til synonymer.
- Last ned eksempelfilene YAML og PBIX.
- Installer et .yaml-filredigeringsprogram. Vi anbefaler Visual Studio Code.
Konfigurere et redigeringsprogram for YAML-filer
Vi anbefaler at du bruker Visual Studio Code til å redigere lingvistiske XML-skjemafiler. Visual Studio Code inkluderer støtte for .yaml-filer som ikke er i bruk, og kan utvides til å validere det lingvistiske skjemaformatet for Power BI spesifikt.
Installer Visual Studio Code.
Høyreklikk yaml-filen i eksempellingvistiske skjema som du lagret tidligere: QnALinguisticSchema.zip.
Velg Åpne med>Velg en annen app.
Velg Visual Studio Code , og velg deretter Alltid.
Installer YAML-støtte ved hjelp av Red Hat-utvidelsen i Visual Studio Code.
- Velg Utvidelser-fanen (siste i menyen til venstre) eller CTRL+SKIFT+X.
- Søk etter «yaml», og velg YAML-støtte av Red Hat i listen.
- Velg Installer > på nytt.
Arbeide med lingvistiske skjemaer
Det finnes to måter å arbeide med lingvistiske skjemaer på. Én måte er å redigere, importere og eksportere .yaml fra båndet i Power BI Desktop. På denne måten dekkes det i artikkelen om Q&A-verktøy i Power BI. Du trenger ikke å åpne YAML-filen for å forbedre Q&A.
Den andre måten å redigere et lingvistisk skjema på, er å eksportere og redigere YAML-filen direkte. Når du redigerer en lingvistisk xml-skjemafil, merker du kolonner i tabellen som forskjellige grammatiske elementer og definerer ord som en kollega kan bruke til å uttrykke et spørsmål. Du oppgir for eksempel kolonnene som er emnet og objektet til verbet. Du legger til alternative ord som kolleger kan bruke til å referere til tabeller, kolonner og mål i modellen.
Før du kan redigere et lingvistisk skjema, må du åpne (eksportere) det fra Power BI Desktop. Lagring av YAML-filen tilbake til samme plassering anses som import. Du kan imidlertid også importere andre YAML-filer i stedet. Hvis du for eksempel har et lignende datasett, og du allerede har satt inn arbeid med å legge til deler av tale, identifisere relasjoner, opprette fraser og opprette synonymer, kan du bruke yaml-filen i en annen Power BI Desktop-fil.
Spørsmål og svar bruker all denne informasjonen sammen med eventuelle forbedringer du gjør for å gi et bedre svar, automatisk fullføring og sammendrag av spørsmålene.
Redigere et lingvistisk skjema
Når du først eksporterer det lingvistiske skjemaet fra Power BI Desktop, genereres mesteparten av eller alt innholdet i filen automatisk av Q&A-motoren. Disse genererte enhetene, ordene (synonymer), relasjonene og uttrykkene er angitt med en tilstand: Generert kode. De er inkludert i filen for det meste for informasjonsformål, men kan være et nyttig utgangspunkt for dine egne endringer.
Merk
Eksempelfilen .yaml som følger med denne opplæringen, inneholder ikke tilstand: Generert eller tilstand: Slettede koder fordi den ble utarbeidet spesielt for denne opplæringen. Hvis du vil se disse kodene, åpner du en uønsket PBIX-fil i Relasjonsvisning og eksporterer det lingvistiske skjemaet.
Når du importerer den lingvistiske skjemafilen tilbake til Power BI Desktop, blir alt som er merket tilstand: Generert ignoreres og genereres senere på nytt. Hvis du vil endre noe generert innhold, fjerner du derfor den tilsvarende tilstanden: Generert kode. Hvis du vil fjerne noe generert innhold på samme måte, endrer du statusen : Generert kode til delstat: Slettet slik at den ikke genereres på nytt når du importerer den lingvistiske skjemafilen.
Eksporter, og importer deretter en YAML-fil
Åpne datasettet i modellvisning i Power BI Desktop.
Velg lingvistisk skjema for lingvistisk>skjemaeksport på Modellering-fanen.
Lagre den. Filnavnet slutter med .lsdl.yaml.
Åpne den i Visual Code eller et annet redigeringsprogram.
Velg Lingvistisk skjemaimport> på Modellering-fanen i Modellvisning i Power BI Desktop.
Gå til plasseringen der du lagret den redigerte YAML-filen, og velg den. En vellykket melding forteller deg at den lingvistiske XML-skjemafilen ble importert.
Uttrykk i det lingvistiske skjemaet
Et uttrykk er hvordan du snakker om (eller uttrykk) relasjonene mellom ting. Hvis du for eksempel vil beskrive forholdet mellom kunder og produkter, kan du si «kunder kjøper produkter».
Hvor kommer fraser fra?
Power BI legger til mange enkle fraser i det lingvistiske skjemaet automatisk basert på strukturen i modellen og gjetter basert på kolonnenavnene. Eksempel:
- De fleste kolonnene er knyttet til den inneholder tabellen med et enkelt uttrykk, for eksempel «produkter har beskrivelser».
- Modellrelasjoner resulterer i standarduttrykk for begge retningene av relasjonen, for eksempel «ordrer har produkter» og «produkter har ordrer».
- Basert på kolonnenavnene kan noen modellrelasjoner ha mer komplekse standarduttrykk, for eksempel «ordrer sendes til byer».
Brukerne snakker imidlertid noen ganger om ting på måter som Q&A ikke kan gjette. Derfor vil du kanskje legge til dine egne fraser manuelt.
Hvorfor legge til fraser?
Den første grunnen til å legge til et uttrykk er å definere en ny term. Hvis du for eksempel vil kunne spørre «oppgi de eldste kundene», må du først lære spørsmål og svar hva du mener med «gammel». Du vil gjøre dette ved å legge til et uttrykk som «alder indikerer hvor gamle kunder er».
Den andre grunnen til å legge til et uttrykk er å løse tvetydighet. Grunnleggende nøkkelordsøk går bare så langt når ord har mer enn én betydning. «flyreiser til Chicago» er for eksempel ikke det samme som «flyreiser fra Chicago». Men Q &A vet ikke hvilken du mener med mindre du legger til uttrykkene "flyreiser er fra avreisebyer" og "flyreiser er til ankomstbyer". Tilsvarende vil Q &A bare forstå skillet mellom "biler som John solgte til Mary" og "biler som John kjøpte fra Mary" etter at du legger til uttrykkene "kunder kjøper biler fra ansatte" og "ansatte selger kunder biler."
Den endelige grunnen til å legge til et uttrykk er å forbedre restatements. I stedet for q&a ekko tilbake til deg "Vis kundene og deres produkter", ville det være klarere hvis det sto "Vis kundene og produktene de kjøpte" eller "Vis kundene og produktene de gjennomgikk", avhengig av hvordan det forsto spørsmålet. Hvis du legger til egendefinerte fraser, kan omskrivinger være mer eksplisitte og entydige.
Typer fraser
Hvis du vil forstå de ulike typene fraser, må du først huske et par grunnleggende grammatikktermer:
- Et substantiv er en person, et sted eller en ting. Eksempler: bil, tenåring, Marty, flux kondensator
- Et verb er en handling eller tilstand av å være. Eksempler: luke, sprekke, sluke, kaste ut
- Et adjektiv er et beskrivende ord som endrer et substantiv. Eksempler: kraftig, magisk, gyllen, stjålet
- En preposisjon er et ord som brukes før et substantiv for å relatere det til et tidligere substantiv, verb eller adjektiveksempler: av, for, nær, fra
- Et attributt er en kvalitet eller funksjon i noe.
- Et navn er et ord eller et sett med ord som en person, et dyr, et sted eller en ting er kjent eller referert til.
Attributtuttrykk
Attributtfraser er arbeidshesten til Q&A. De brukes når én ting fungerer som en egenskap av en annen ting. De er enkle, enkle og utfører det meste av de tunge løftene når du ikke har definert en subtil, mer detaljert frasering. Attributtuttrykk er beskrevet ved hjelp av det grunnleggende verbet "have" ("produkter har kategorier" og "vertsland/regioner har vertsbyer"). De tillater også automatisk spørsmål med preposisjonene "av" og "for" ("kategorier av produkter" eller "bestillinger for produkter") og eiendomsbesitter ("Johns ordre"). Attributtuttrykk brukes i slike spørsmål:
- Hvilke kunder har bestillinger?
- Liste over vertsbyer etter land/område stigende
- Vis ordrer som har chai
- Vis kunder med ordrer
- Hva er kategorien for hvert produkt?
- Tell Robert Kings ordre
Power BI genererer de fleste attributtuttrykkene som kreves i modellen, basert på tabell- eller kolonnedeservering og modellrelasjoner. Vanligvis trenger du ikke å opprette dem selv. Her er et eksempel på hvordan et attributtuttrykk ser ut i det lingvistiske skjemaet:
product_has_category:
Binding: {Table: Products}
Phrasings:
- Attribute: {Subject: product, Object: product.category}
Navneuttrykk
Navneuttrykk er nyttige hvis datamodellen har en tabell som inneholder navngitte objekter, for eksempel idrettsutøvernavn eller kundenavn. For eksempel er et «produktnavn navn på produkter»-uttrykk avgjørende for å kunne bruke produktnavn i spørsmål. Navneuttrykk aktiverer også «navngitt» som verb (for eksempel «Listekunder med navnet John Smith»). Det er imidlertid viktigst når det brukes i kombinasjon med andre fraser. Den gjør at en navneverdi kan brukes til å referere til en bestemt tabellrad. I «Kunder som kjøpte chai» kan for eksempel spørsmål og svar fortelle verdien «chai» referere til hele raden i produkttabellen i stedet for bare en verdi i produktnavnkolonnen. Navneuttrykk brukes i slike spørsmål:
- Hvilke ansatte heter Robert King
- Hvem heter Ernst Handel
- Fernand De Montignys idretter
- Antall idrettsutøvere som heter Mary
- Hva kjøpte Robert King?
Forutsatt at du brukte en fornuftig navnekonvensjon for navnekolonner i modellen (for eksempel «Navn» eller «ProductName» i stedet for «PrdNm»), genererer Power BI de fleste navneuttrykkene som kreves i modellen automatisk. Du trenger vanligvis ikke å opprette dem selv.
Her er et eksempel på hvordan et navneuttrykk ser ut i det lingvistiske skjemaet:
employee_has_name:
Binding: {Table: Employees}
Phrasings:
- Name:
Subject: employee
Name: employee.name
Adjektivuttrykk
Adjektivuttrykk definerer nye adjektiver som brukes til å beskrive ting i modellen. «Fornøyde kunder er for eksempel kunder der vurdering > 6»-uttrykk er nødvendig for å stille spørsmål som «list opp de fornøyde kundene i Des Moines». Det finnes flere former for adjektivuttrykk som skal brukes i ulike situasjoner.
Enkle adjektivuttrykk definerer et nytt adjektiv basert på en betingelse, for eksempel «utgåtte produkter er produkter der status = D». Enkle adjektivuttrykk brukes i slike spørsmål:
- Hvilke produkter avvikles?
- Vis de utgåtte produktene
- List opp gullvinnerne
- Produkter som er restordrert
Her er et eksempel på hvordan et enkelt adjektivuttrykk ser ut i det lingvistiske skjemaet:
product_is_discontinued:
Binding: {Table: Products}
Conditions:
- Target: product.discontinued
Operator: Equals
Value: true
Phrasings:
- Adjective:
Subject: product
Adjectives: [discontinued]
Måleadjektivuttrykk definerer et nytt adjektiv basert på en numerisk verdi som angir i hvilken grad adjektivet gjelder, for eksempel «lengder indikerer hvor lenge elver er» og «små land/regioner har små landområder». Måleadjektivuttrykk brukes i slike spørsmål:
- List opp de lange elvene
- Hvilke elver er lengst?
- Liste opp det minste landet/regionene som vant gull i basketball
- Hvor lenge er Rio Grande?
Her er et eksempel på hvordan et måleadjektivuttrykk ser ut i det lingvistiske skjemaet:
river_has_length:
Binding: {Table: Rivers}
Phrasings:
- Adjective:
Subject: river
Adjectives: [long]
Antonyms: [short]
Measurement: river.length
Dynamiske adjektivuttrykk definerer et sett med nye adjektiver basert på verdier i en kolonne i modellen, for eksempel «farger beskriver produkter» og «hendelser har hendelseskjønn». Dynamiske adjektivuttrykk brukes i slike spørsmål:
- Liste opp de røde produktene
- Hvilke produkter er grønne?
- Vis skøytearrangementer for kvinner
- Telle problemer som er aktive
Her er et eksempel på hvordan et dynamisk adjektivuttrykk ser ut i det lingvistiske skjemaet:
product_has_color:
Binding: {Table: Products}
Phrasings:
- DynamicAdjective:
Subject: product
Adjective: product.color
Substantivuttrykk
Substantivuttrykk definerer nye substantiv som beskriver delsett av ting i modellen. De inkluderer ofte en type modellspesifikk måling eller betingelse. For modellen vår ønsker vi for eksempel kanskje å legge til uttrykk som skiller mestere fra medaljevinnere, landsporter fra vannsporter, lag kontra enkeltpersoner eller alderskategorier for idrettsutøvere (tenåringer, voksne, eldre). For vår filmdatabase vil vi kanskje legge til substantivfraser for "flopper er filmer der nettofortjeneste < 0" slik at vi kan stille spørsmål som "telle floppene etter år." Det finnes to former for substantivuttrykk som skal brukes i ulike situasjoner.
Enkle substantivuttrykk definerer et nytt substantiv basert på en betingelse, for eksempel "entreprenører er ansatte der fulltid = usann" og "mester er idrettsutøver hvor antall medaljer >5." Enkle substantivuttrykk brukes i slike spørsmål:
- Hvilke ansatte er entreprenører?
- Tell entreprenørene i Portland
- Hvor mange mestere i 2016
Her er et eksempel på hvordan et enkelt substantivuttrykk ser ut i det lingvistiske skjemaet:
employee_is_contractor:
Binding: {Table: Employees}
Conditions:
- Target: employee.full_time
Operator: Equals
Value: false
Phrasings:
- Noun:
Subject: employee
Nouns: [contractor]
Dynamiske substantivuttrykk definerer et sett med nye substantiv basert på verdier i en kolonne i modellen, for eksempel «jobber definerer delsett av ansatte». Dynamiske substantivuttrykk brukes i slike spørsmål:
- List opp kassererne i Chicago
- Hvilke ansatte er baristaer?
- Liste dommerne i 1992
Her er et eksempel på hvordan et dynamisk substantivuttrykk ser ut i det lingvistiske skjemaet:
employee_has_job:
Binding: {Table: Employees}
Phrasings:
- DynamicNoun:
Subject: employee
Noun: employee.job
Preposisjonsfraser
Preposisjonsfraser brukes til å beskrive hvordan ting i modellen er relatert via preposisjoner. Et «byer er i land/regioner»-uttrykk forbedrer for eksempel forståelsen av spørsmål som «tell byene i Washington». Noen preposisjonsfraser opprettes automatisk når en kolonne gjenkjennes som en geografisk enhet. Preposisjonsfraser brukes i slike spørsmål:
- Tell kundene i New York
- Liste opp bøker om lingvistikk
- Hvilken by er Robert King i?
- Hvor mange bøker er av Stephen Pinker?
Her er et eksempel på hvordan en preposisjonsfrase ser ut i det lingvistiske skjemaet:
customers_are_in_cities:
Binding: {Table: Customers}
Phrasings:
- Preposition:
Subject: customer
Prepositions: [in]
Object: customer.city
Verbuttrykk
Verbuttrykk brukes til å beskrive hvordan ting i modellen er relatert via verb. Et «kunder kjøper produkter»-uttrykk forbedrer for eksempel forståelsen av spørsmål som «hvem kjøpte ost?» og "hva kjøpte John?" Verbfraser er de mest fleksible av alle typer fraser, ofte relatert mer enn to ting til hverandre, for eksempel "ansatte selger kunder produkter." Verbuttrykk brukes i slike spørsmål:
- Hvem solgt hva til hvem?
- Hvilken ansatt solgte chai til John?
- Hvor mange kunder ble solgt chai av Mary?
- List opp produktene som Mary solgte til John.
- Hvilke utgåtte produkter ble solgt til Chicago-kunder av Boston-ansatte?
Verbfraser kan også inneholde preposisjonelle uttrykk, og dermed legge til fleksibiliteten deres, for eksempel «idrettsutøvere vinner medaljer i konkurranser» eller «kunder får refusjon for produkter». Verbuttrykk med preposisjonsuttrykk brukes i slike spørsmål:
- Hvor mange utøvere vant en gullmedalje i Visa Championships?
- Hvilke kunder fikk refusjon for ost?
- I hvilken konkurranse vant Danell Leyva en bronsemedalje?
Noen verbuttrykk opprettes automatisk når en kolonne gjenkjennes som inneholder både et verb og en preposisjon.
Her er et eksempel på hvordan et verbuttrykk ser ut i det lingvistiske skjemaet:
customers_buy_products_from_salespeople:
Binding: {Table: Orders}
Phrasings:
- Verb:
Subject: customer
Verbs: [buy, purchase]
Object: product
PrepositionalPhrases:
- Prepositions: [from]
Object: salesperson
Relasjoner med flere fraser
Ofte kan én enkelt relasjon beskrives på mer enn én måte. I dette tilfellet kan en enkelt relasjon ha mer enn ett uttrykk. Det er vanlig at relasjonen mellom en tabellenhet og en kolonneenhet har både et attributtuttrykk og et annet uttrykk. I relasjonen mellom kunde- og kundenavn vil du for eksempel ha både et attributtuttrykk (for eksempel «kunder har navn») og et navneuttrykk (for eksempel «kundenavn er navnene på kundene»), slik at du kan stille begge spørsmålstypene.
Her er et eksempel på hvordan en relasjon med to uttrykk ser ut i det lingvistiske skjemaet:
customer_has_name:
Binding: {Table: Customers}
Phrasings:
- Attribute: {Subject: customer, Object: customer.name}
- Name:
Subject: customer
Object: customer.name
Et annet eksempel er å legge til den alternative frasen «ansatte selger kundeprodukter» i relasjonen «kunder kjøper produkter fra ansatte». Du trenger ikke å legge til variasjoner som «ansatte selger produkter til kunder» eller «produkter selges til kunder av ansatte» fordi variasjonene «etter» og «til» av emnet og indirekte objektet utledes automatisk av spørsmål og svar.
Hensyn og feilsøking
Hvis du gjør en endring i en .lsdl.yaml-fil som ikke samsvarer med det lingvistiske skjemaformatet, angir valideringssquiggles problemet:
Har du flere spørsmål? Spør Power BI-fellesskap