Úprava lingvistického schématu Q&A a přidání formulací v Power BI Desktopu

Použití běžných frází a přirozeného jazyka k kladení otázek na vaše data je velmi efektivní. Je to ještě výkonnější, když vaše data odpoví. Když položíte Q&A v Power BI otázku, je to nejlepší úsilí, abyste správně odpověděli. Lingvistické schéma můžete upravit a zlepšit odpovědi Q&A pro ještě lepší interakce.

Všechno začíná vašimi podnikovými daty. Lepší datový model, tím jednodušší bude, aby uživatelé získali kvalitní odpovědi. Jedním ze způsobů, jak model vylepšit, je přidat lingvistické schéma, které definuje a kategorizuje terminologii a vztahy mezi názvy tabulek a sloupců ve vaší datové sadě. Power BI Desktop je místo, kde spravujete lingvistická schémata.

Q&A má dvě strany. První stranou je příprava nebo modelování. Druhá strana klade otázky a zkoumá data nebo využívá. V některých společnostech mohou být zaměstnanci, kteří se označují jako modelátoři dat nebo správci IT, těmi, kteří sestavují datové sady, vytvářejí datové modely a publikují datové sady do Power BI. Jiná sada zaměstnanců by byla ta, která data "spotřebovávají" online. V jiných společnostech se tyto role můžou kombinovat.

Tento článek je určený pro modelátory dat, osoby, které optimalizují datové sady, aby poskytovaly nejlepší možné výsledky Q&A.

Co je lingvistické schéma?

Lingvistické schéma popisuje termíny a fráze, kterým by služba Q&A měla porozumět objektům v datové sadě, včetně slovních částí, synonym a formulací. Při importu nebo připojení k datové sadě vytvoří Power BI lingvistické schéma založené na struktuře datové sady. Když položíte otázku Q&A, hledá shody a vztahy v datech, aby se zjistilo záměr vaší otázky. Hledá například podstatná jména, slovesa, přídavná jména, formulace a další prvky. A hledá relace, jako jsou sloupce objekty slovesa.

Pravděpodobně znáte slovní druhy, ale formulace můžou být novým termínem. Formulace je způsob, jakým mluvíte o vztazích mezi věcmi (nebo frází). Pokud například chcete popsat vztah mezi zákazníky a produkty, můžete říct "customers buy products" (zákazníci kupují produkty). Nebo můžete popsat vztah mezi zákazníky a věky, například "věk označuje, jak staré zákazníky jsou". Nebo můžete popsat vztah mezi zákazníky a telefonními čísly, například "zákazníci mají telefonní čísla".

Tyto formulace mají mnoho tvarů a velikostí. Některé přímo odpovídají relacím v datovém modelu. Některé souvisí sloupce s jejich tabulkami. Ostatní vzájemně spojují více tabulek a sloupců ve složitých relacích. Ve všech případech popisují, jak věci souvisejí pomocí každodenních termínů.

Lingvistická schémata jsou uložena ve formátu .yaml. Tento formát souvisí s oblíbeným formátem JSON, ale poskytuje flexibilnější a přehlednější syntaxi. Lingvistická schémata je možné upravovat, exportovat a importovat do Power BI Desktopu.

Požadavky

Nastavení editoru pro soubory .yaml

K úpravě souborů .yaml s lingvistickým schématem doporučujeme použít Visual Studio Code. Visual Studio Code obsahuje připravenou podporu pro soubory .yaml a dá se rozšířit, aby se konkrétně ověřil formát lingvistického schématu Power BI.

  1. Nainstalujte Visual Studio Code.

  2. Pravým tlačítkem myši klikněte na soubor .yaml v ukázkovém lingvistickém schématu, které jste si uložili dříve: QnALinguisticSchema.zip.

  3. Vyberte Otevřít s>výběrem jiné aplikace.

  4. Vyberte Visual Studio Code a pak zvolte Vždy.

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

V editoru Visual Studio Code nainstalujte podporu YAML rozšířením Red Hat.

  1. Vyberte kartu Rozšíření (poslední v nabídce vlevo) nebo CTRL+SHIFT+X.
    Screenshot of the left menu in Visual Studio Code with the Extensions icon highlighted.
  2. Vyhledejte "yaml" a v seznamu vyberte podporu YAML by Red Hat .
  3. Vyberte Nainstalovat > znovu načíst.

Práce s lingvistickými schématy

Existují dva způsoby práce s lingvistickými schématy. Jedním ze způsobů je upravit, importovat a exportovat soubor .yaml z pásu karet v Power BI Desktopu. Tímto způsobem se zabýváme v článku o nástrojích Power BI Q&A. Abyste zlepšili Q&A, nemusíte otevírat soubor .yaml.

Dalším způsobem, jak upravit lingvistické schéma, je exportovat a upravit soubor .yaml přímo. Při úpravě souboru .yaml lingvistického schématu označíte sloupce v tabulce jako různé gramatické prvky a definujete slova, která kolega může použít k frázi otázky. Můžete například uvést sloupce, které jsou předmětem, a objekt slovesa. Přidáte alternativní slova, která můžou kolegové použít k odkazování na tabulky, sloupce a míry ve vašem modelu.

Screenshot of a sample linguistic schema .yaml file.

Než budete moct upravit lingvistické schéma, musíte ho otevřít (exportovat) z Power BI Desktopu. Uložení souboru .yaml zpět do stejného umístění se považuje za import. Můžete ale také importovat jiné soubory .yaml. Pokud máte například podobnou datovou sadu a už jste přidali do práce části řeči, identifikovali relace, vytvářeli formulace a vytvářeli synonyma, můžete tento soubor .yaml použít v jiném souboru Power BI Desktopu.

Q&A používá všechny tyto informace společně se všemi vylepšeními, která uděláte, aby vám poskytla lepší odpověď, automatické dokončování a shrnutí otázek.

Úprava lingvistického schématu

Při prvním exportu lingvistického schématu z Power BI Desktopu se většina nebo veškerý obsah v souboru automaticky vygeneruje modulem Q&A. Tyto vygenerované entity, slova (synonyma), relace a formulace jsou označené značkou State: Generated(Vygenerovaná značka). Jsou součástí souboru většinou pro informační účely, ale mohou být užitečným výchozím bodem pro vaše vlastní změny.

Poznámka:

Ukázkový soubor .yaml, který je součástí tohoto kurzu, neobsahuje Stav: Vygenerovaný nebo Stav: Odstraněné značky, protože byl speciálně připravený pro tento kurz. Pokud chcete tyto značky zobrazit, otevřete soubor .pbix bez přípony v zobrazení relace a exportujte lingvistické schéma.

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

Když soubor s lingvistickým schématem naimportujete zpět do Power BI Desktopu, vše, co je označené jako stav: Vygenerováno se ignoruje a později se znovu vygeneruje. Pokud tedy chcete změnit vygenerovaný obsah, odeberte odpovídající značku State: Generated (Vygenerovaná značka). Podobně pokud chcete odebrat nějaký vygenerovaný obsah, změňte stav: Vygenerovaná značka na Stav: Odstraněno, aby se při importu souboru lingvistického schématu znovu nevygenerovalo.

Export a import souboru .yaml

  1. V Power BI Desktopu otevřete datovou sadu v zobrazení modelu.

  2. Na kartě Modelování vyberte lingvistické>schéma Export lingvistického schématu.

  3. Uložte ho. Název souboru končí na .lsdl.yaml.

  4. Otevřete ho ve Visual Code nebo jiném editoru.

  5. V zobrazení Model v Power BI Desktopu vyberte na kartě Modelování možnost Import lingvistického schématu>.

  6. Přejděte do umístění, kam jste uložili upravený soubor .yaml, a vyberte ho. Zpráva o úspěchu vás informuje, že soubor .yaml s lingvistickým schématem byl úspěšně importován.

    Screenshot of the successful import dialog.

Formulace v lingvistickém schématu

Formulace je způsob, jakým mluvíte o vztazích mezi věcmi (nebo frází). Pokud například chcete popsat vztah mezi zákazníky a produkty, můžete říct "customers buy products" (zákazníci kupují produkty).

Odkud pochází formulace?

Power BI přidává do lingvistického schématu mnoho jednoduchých formulací automaticky na základě struktury modelu a odhadů na základě názvů sloupců. Příklad:

  • Většina sloupců souvisí s jejich obsahem s jednoduchou frází, například "produkty mají popisy".
  • Relace modelu mají za následek výchozí formulace pro oba směry relace, například "objednávky mají produkty" a "produkty mají objednávky".
  • Na základě názvů sloupců můžou mít některé relace modelu složitější výchozí formulaci, například "objednávky se dodávají do měst".

Uživatelé ale někdy mluví o věcech způsobem, který Q&A nedokáže odhadnout. Proto můžete chtít přidat vlastní formulace ručně.

Proč přidávat formulace?

Prvním důvodem pro přidání formulace je definování nového termínu. Pokud například chcete mít možnost požádat "seznam nejstarších zákazníků", musíte nejdřív naučit Q&A, co myslíte "starým". Uděláte to tak, že přidáte formulaci, jako je "věk označuje, jak starý zákazníci jsou".

Druhým důvodem pro přidání formulace je vyřešení nejednoznačnosti. Základní vyhledávání klíčových slov jde zatím jenom v případech, kdy slova mají více než jeden význam. Například "lety do Chicaga" nejsou stejné jako "lety z Chicaga". Q&A ale nebude vědět, který z nich myslíte, pokud nepřidáte formulace "lety jsou z odletových měst" a "lety jsou do měst příletu". Podobně Q&A pochopí rozdíl mezi "auty, které John prodal Mary" a "auta, která John koupil od Mary", jakmile přidáte formulace "customers buy cars from employees" (zákazníci kupují auta od zaměstnanců) a "employees sell customers cars" (zaměstnanci prodávají auta zákazníků).

Posledním důvodem přidání formulace je zlepšení restatements. Místo toho, aby se vám Q&A ozvěna vrátila na "Zobrazit zákazníky a jejich produkty", bylo by jasnější, pokud by to řeklo "Show the customers and the products they bought" (Zobrazit zákazníky a produkty, které si koupili) nebo "Show the customers and the products they reviewed" (Zobrazit zákazníky a produkty, které si prohlédli), v závislosti na tom, jak tato otázka pochopila. Přidání vlastních formulací umožňuje explicitnější a jednoznačnější formulace.

Druhy formulací

Abyste porozuměli různým typům formulací, musíte si nejprve zapamatovat několik základních gramatických termínů:

  • Podstatné jméno je osoba, místo nebo věc. Příklady: auto, teenager, Marty, flux kondenzátor
  • Sloveso je akce nebo stav. Příklady: hatch, burst, devour, vysunutí
  • Adjektivní jméno je popisné slovo, které upravuje podstatné jméno. Příklady: silný, magický, zlatý, ukradený
  • Předložka je slovo, které se použije před podstatným jménem, které ho spojí s předchozím podstatným jménem, slovesem nebo adjektivními příklady: of, for, near, from
  • Atribut je kvalita nebo funkce něčeho.
  • Jméno je slovo nebo sada slov, podle kterých je osoba, zvíře, místo nebo věc známá nebo odkazovaná.

Formulace atributů

Atributové formulace jsou pracovní řídkou Q&A. Používají se, když jedna věc funguje jako atribut jiné věci. Jsou jednoduché, jednoduché a provádějí většinu náročné práce, když jste nedefinovali jemné a podrobnější formulace. Atributové formulace jsou popsány pomocí základního slovesa "have" ("products have categories" (produkty mají kategorie) a "host countries/regions have host cities"). Umožňují také automaticky otázky s předložkami "of" a "for" ("kategorie produktů" nebo "objednávky produktů") a přivlastňovacími ("Johnovy objednávky"). Atributy formulace se používají v těchto typech otázek:

  • Kteří zákazníci mají objednávky?
  • Zobrazení seznamu hostitelských měst podle země nebo oblasti vzestupně
  • Zobrazit objednávky, které mají chai
  • Výpis zákazníků s objednávkami
  • Jaká je kategorie každého produktu?
  • Count Robert King's orders

Power BI generuje většinu atributů formulací potřebných v modelu na základě zahrnutí tabulky nebo sloupce a relací modelu. Obvykle je nemusíte vytvářet sami. Tady je příklad, jak vypadá formulace atributů v lingvistickém schématu:

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

Pojmenovávání frází

Jmenné formulace jsou užitečné, pokud datový model obsahuje tabulku s pojmenovanými objekty, jako jsou jména sportovců nebo jména zákazníků. Například formulace "Názvy produktů jsou názvy produktů" je nezbytné pro schopnost používat názvy produktů v otázkách. Jmenné formulace také povolí sloveso "named" jako sloveso (například "List customers named John Smith"). Je ale nejdůležitější, když se používá v kombinaci s jinými formulacemi. Umožňuje použít hodnotu názvu pro odkaz na konkrétní řádek tabulky. Například v části "Customers that bought chai" (Zákazníci, kteří si koupili chai) může Q&A říct, že hodnota "chai" odkazuje na celý řádek tabulky produktů, a ne jenom na hodnotu ve sloupci název produktu. Jmenné formulace se používají v těchto typech otázek:

  • Kteří zaměstnanci se jmenují Robert King
  • Kdo má název Ernst Handel
  • Fernand De Montigny je sport
  • Count of athletes named Mary
  • Co si Robert King koupil?

Za předpokladu, že jste v modelu použili rozumnou konvenci pojmenování pro sloupce názvů (například "Name" nebo "ProductName" místo "PrdNm"), Power BI vygeneruje většinu názvových formulací potřebných v modelu automaticky. Obvykle je nemusíte vytvářet sami.

Tady je příklad, jak v lingvistickém schématu vypadá jmenné formulace:

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

Adjektivní formulace

Adjektivní formulace definují nová přídavná jména použitá k popisu věcí v modelu. Například "šťastní zákazníci jsou zákazníci, u kterých je potřeba zadat hodnocení > 6" k kladení otázek, jako je například "list the happy customers in Des Moines" (Seznam šťastných zákazníků v Des Moines). Existuje několik forem adjektivních formulací, které se mají použít v různých situacích.

Jednoduché adjektivní formulace definují nové adjektivní jméno na základě podmínky, například "ukončené produkty jsou produkty, ve kterých je stav = D". Jednoduché fráze přídavných jmen se používají v těchto typech otázek:

  • Které produkty jsou ukončeny?
  • Výpis ukončených produktů
  • Výpis zlatých medailistů
  • Produkty, které jsou v objednávce

Tady je příklad, jak jednoduché adjektivní formulace vypadá uvnitř lingvistického schématu:

product_is_discontinued:

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

Adjektivní formulace měření definují nové adjektivní jméno na základě číselné hodnoty, která označuje rozsah, do kterého se přídavná jména vztahuje, například "lengths indicate how long rivers are" a "small country/regions have small land areas" (malé země/oblasti mají malé pozemky). Adjektivní formulace měrných jmen se používají v těchto typech otázek:

  • Výpis dlouhých řek
  • Které řeky jsou nejdelší?
  • Seznam nejmenších zemí nebo oblastí, které vyhrály zlato v basketbalu
  • Jak dlouho je Rio Grande?

Tady je příklad toho, jak v lingvistickém schématu vypadá adjektivní formulace měření:

river_has_length:

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

Dynamické adjektivní formulace definují sadu nových přídavných jmen na základě hodnot ve sloupci v modelu, například "barvy popisují produkty" a "události mají pohlaví událostí". Dynamické adjektivní formulace se používají v těchto typech otázek:

  • Výpis červených produktů
  • Které produkty jsou zelené?
  • Show skating events for females
  • Počet aktivních problémů

Tady je příklad toho, jak dynamické adjektivní formulace vypadá uvnitř lingvistického schématu:

product_has_color:

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

Jmenné formulace

Jmenné formulace definují nová podstatná jména popisující podmnožinu věcí v modelu. Často zahrnují určitý typ měření nebo podmínky specifické pro model. Pro náš model můžeme například chtít přidat formulace, které rozlišují šampiony od medailistů, pozemní sporty od vodních sportů, týmů a jednotlivců nebo věkových kategorií sportovců (dospívající, dospělí, seniory). U naší filmové databáze bychom mohli chtít přidat jmenné formulace pro "flops jsou filmy, kde čistý zisk < 0", abychom mohli klást otázky jako "count the flops by year" (spočítat flops podle roku). Existují dvě formy jmenných frází, které se dají použít v různých situacích.

Jednoduché jmenné formulace definují nové podstatné jméno na základě podmínky, například "dodavatelé jsou zaměstnanci, kde plný úvazek = nepravda" a "šampion je sportovec, kde počet medailí >5". Jednoduché fráze podstatných jmen se používají v těchto typech otázek:

  • Kteří zaměstnanci jsou dodavatelé?
  • Spočítat dodavatele v Portlandu
  • Kolik šampionů v roce 2016

Tady je příklad, jak jednoduchá jmenná formulace vypadá uvnitř lingvistického schématu:

employee_is_contractor:

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

Dynamické jmenné formulace definují sadu nových podstatných jmen na základě hodnot ve sloupci v modelu, například "pracovní pozice definují podmnožiny zaměstnanců". Dynamické fráze podstatných jmen se používají v těchto typech otázek:

  • Výpis pokladníka v Chicagu
  • Kteří zaměstnanci jsou barista?
  • Výpis rozhodčích v roce 1992

Tady je příklad toho, jak dynamické jmenné formulace vypadá uvnitř lingvistického schématu:
employee_has_job:

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

Předložkové formulace

Předložkové formulace se používají k popisu toho, jak věci ve vašem modelu souvisejí prostřednictvím předložek. Například formulace "města jsou v zemích nebo oblastech" zlepšuje pochopení otázek, jako je "count the cities in Washington" (spočítat města ve Washingtonu). Některé předložkové formulace se vytvoří automaticky, když se sloupec rozpozná jako geografická entita. Předložkové formulace se používají v těchto typech otázek:

  • Počet zákazníků v New Yorku
  • Výpis knih o lingvistice
  • Ve kterém městě je Robert King?
  • Kolik knih je Stephen Pinker?

Tady je příklad toho, jak předložkové formulace vypadají uvnitř lingvistického schématu:
customers_are_in_cities:

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

Slovesné formulace

Slovesné formulace se používají k popisu toho, jak věci ve vašem modelu souvisejí pomocí sloves. Například formulace "customers buy products" (zákazníci kupují produkty) zlepšuje pochopení otázek, jako je například "kdo koupil sýr?". a "co john koupil?" Slovesné formulace jsou nejflexibilnější ze všech typů formulací, které často vzájemně souvisejí s více než dvěma věcmi, například "zaměstnanci prodávají produkty zákazníků". Slovesné formulace se používají v těchto typech otázek:

  • Kdo prodal co komu?
  • Který zaměstnanec prodal Chai Johna?
  • Kolikzákazníkůch
  • Uveďte produkty, které Mary prodala Johnu.
  • Které ukončené produkty byly prodány zákazníkům z Chicaga zaměstnanci Bostonu?

Slovesné formulace můžou obsahovat také předložkové fráze, což zvyšuje flexibilitu, například "athletes win medals at competitions" (sportovci vyhrávají medaile na soutěžích) nebo "customers are given refunds for products" (zákazníci mají refundace za produkty). Slovesné formulace s předložkovými frázemi se používají v těchto typech otázek:

  • Kolik sportovců vyhrálo zlatou medaili na Visa Championships?
  • Kteří zákazníci dostali refundaci za sýr?
  • Na které soutěži vyhrál Danell Leyva bronzovou medaili?

Některé slovesné formulace se vytvoří automaticky, když se sloupec rozpozná jako obsahující sloveso i předložku.

Tady je příklad toho, jak slovesné formulace vypadá uvnitř lingvistického schématu:
customers_buy_products_from_salespeople:

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

Relace s několika formulacemi

Často je možné jednu relaci popsat více než jedním způsobem. V tomto případě může mít jedna relace více než jednu formulaci. Relace mezi entitou tabulky a entitou sloupce je běžná, aby měla atributovou formulaci i jinou formulaci. Například v relaci mezi zákazníkem a jménem zákazníka budete chtít mít jak přívlastkovou formulaci (například "customers have names") (zákazníci mají jména), tak i jmennou formulaci (například "customer names are the names of customers"), abyste mohli položit oba typy otázek.

Tady je příklad, jak vztah se dvěma formulacemi vypadá uvnitř lingvistického schématu:
customer_has_name:

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

Dalším příkladem by bylo přidání alternativní fráze "employees sell customers products" (zaměstnanci prodávají produkty zákazníků) do vztahu "customers buy products from employees" (zákazníci kupují produkty od zaměstnanců). Nemusíte přidávat varianty, jako jsou "zaměstnanci prodávají produkty zákazníkům" nebo "produkty se prodávají zákazníkům zaměstnanci", protože Q&A automaticky odvodí varianty "by" a "to" předmětu a nepřímého objektu.

Důležité informace a řešení potíží

Pokud provedete změnu souboru .lsdl.yaml, který neodpovídá formátu lingvistického schématu, ověřovací vlnovkou značí problém:

Screenshot of a sample .yaml file showing errors.

Máte ještě další otázky? Zeptejte se Komunita Power BI