Kurz: Extrakce klíčových frází z textu uloženého v Power BI
Microsoft Power BI Desktop je bezplatná aplikace, se kterou se můžete připojit k datům abyste je mohli transformovat a vizualizovat. Extrakce klíčových frází, jednou z funkcí jazyka Azure AI, je zpracování přirozeného jazyka. Služba dokáže z nezpracovaného a nestrukturovaného textu extrahovat nejdůležitější fráze, analyzovat mínění a identifikovat známé prvky, jako jsou značky. Společně vám tyto služby můžou pomoct rychle zjistit, o čem mluví vaši zákazníci a jak se při tom cítí.
V tomto kurzu se naučíte:
- Používat Power BI Desktop k importu a transformaci dat
- Vytvořit vlastní funkce v Power BI Desktopu
- Integrace Power BI Desktopu s funkcí extrakce klíčových frází jazyka Azure AI
- Extrakce klíčových frází k získání nejdůležitějších frází od zpětné vazby zákazníků
- Vytvořit z připomínek zákazníků Word Cloud
Požadavky
- Microsoft Power BI Desktop. Stáhněte si ho zdarma.
- Účet Microsoft Azure. Vytvořte si bezplatný účet nebo se přihlaste.
- Prostředek jazyka. Pokud ho nemáte, můžete si ho vytvořit.
- Klíč prostředku jazyka, který se pro vás vygeneroval při vytváření prostředku.
- Komentáře zákazníků. Můžete použít naše ukázková data nebo vlastní data. V tomto kurzu se předpokládá, že použijete ukázková data.
Načtení zákaznických dat
Začněte tím, že otevřete Power BI Desktop a načtete soubor hodnot oddělených čárkami (CSV), který jste stáhli jako součást požadavků. Tento soubor představuje denní hypotetickou aktivitu na fóru podpory malé fiktivní společnosti.
Poznámka:
Power BI může používat data z nejrůznějších webových zdrojů, jako jsou databáze SQL. Další informace najdete v dokumentaci k Power Query.
V hlavním okně Power BI Desktopu vyberte pás karet Domů. Na pásu karet ve skupině Externí data otevřete rozevírací nabídku Načíst data a vyberte Text/CSV.
Zobrazí se dialogové okno Otevřít. Přejděte do složky Stažené soubory nebo do složky, do které jste stáhli soubor CSV. Vyberte název souboru a pak tlačítko Otevřít . Zobrazí se dialogové okno pro import CSV.
V dialogovém okně pro import CSV můžete ověřit, jestli Power BI Desktop správně rozpoznal znakovou sadu, oddělovač, řádky záhlaví a typy sloupců. Tyto informace jsou všechny správné, takže vyberte Načíst.
Pokud chcete zobrazit načtená data, klikněte na tlačítko Zobrazení dat na levém okraji pracovního prostoru Power BI. Otevře se tabulka s daty, která vidíte v Microsoft Excelu.
Příprava dat
Možná budete muset transformovat data v Power BI Desktopu, než budou připravená ke zpracování extrakcí klíčových frází.
Ukázková data obsahují sloupec subject
a sloupec comment
. Funkce sloučení sloupců v Power BI Desktopu extrahuje klíčové fráze z dat obou sloupců (místo jen ze sloupce comment
).
V Power BI Desktopu vyberte pás karet Domů. Ve skupině Externí data vyberte Upravit dotazy.
V seznamu Dotazy vyberte na levé straně okna soubor FabrikamComments
, pokud ještě není vybraný.
Teď v tabulce vyberte oba sloupce subject
a comment
. Možná budete muset zobrazení vodorovně posunout, aby se tyto sloupce zobrazily. Nejprve klikněte na záhlaví sloupce subject
, pak podržte stisknutou klávesu Ctrl a klikněte na záhlaví sloupce comment
.
Vyberte pás karet Transformace. Ve skupině Textové sloupce na pásu karet vyberte Sloučit sloupce. Zobrazí se dialogové okno Sloučit sloupce.
V dialogovém okně Sloučit sloupce zvolte Tab
jako oddělovač a pak vyberte OK.
Můžete také vyfiltrovat prázdné zprávy filtrem Odebrat prázdné nebo odebrat netisknutelné znaky transformací Vyčistit. Pokud vaše data obsahují podobný sloupec, jako je sloupec spamscore
v ukázkovém souboru, můžete použít číselný filtr k přeskočení nevyžádaných komentářů.
Vysvětlení rozhraní API
Extrakce klíčových frází může zpracovat až tisíc textových dokumentů na požadavek HTTP. Power BI ale upřednostňuje postupné zpracování jednotlivých záznamů. V tomto kurzu bude ve voláních rozhraní API vždy jen jeden dokument. Rozhraní API Klíčové fráze vyžaduje, aby každý zpracovávaný dokument obsahoval následující pole.
Pole | Popis |
---|---|
id |
Jedinečný identifikátor tohoto dokumentu v rámci požadavku. Odpověď také obsahuje toto pole. Tímto způsobem můžete v případě zpracování více dokumentů snadno přidružit extrahované klíčové fráze k dokumentu, ze kterého pocházejí. V tomto kurzu zpracováváte pro každou žádost jenom jeden dokument. Proto můžete hodnotu id pevně zadat, aby byla pro všechny požadavky stejná. |
text |
Text, který se má zpracovat. Hodnota tohoto pole pochází ze sloupce Merged vytvořeného v předchozím oddílu. V tomto sloupci je sloučený řádek předmětu s textem komentáře. Rozhraní API klíčových frází vyžaduje, aby tato data nebyla delší než přibližně 5 120 znaků. |
language |
Kód pro přirozený jazyk, ve kterém je dokument napsaný. Všechny zprávy v ukázkových datech jsou v angličtině, takže do tohoto pole můžete pevně zadat hodnotu en . |
Vytvoření vlastní funkce
Teď jste připraveni vytvořit vlastní funkci, která integruje Power BI a extrakci klíčových frází. Funkce jako parametr přijímá text ke zpracování. Převede data do požadovaného formátu JSON (nebo z něj) a vytvoří požadavek HTTP do rozhraní API Klíčové fráze. Dále funkce parsuje odpověď z API a vrátí řetězec, který obsahuje seznam extrahovaných klíčových frází oddělených čárkou.
Poznámka:
Vlastní funkce Power BI Desktopu se píší v jazyce vzorců Power Query M nebo zkráceně jenom M. M je funkcionální programovací jazyk založený na F#. Pro dokončení tohoto kurzu však nemusíte být programátor – požadovaný kód je uvedený níže.
V Power BI Desktopu se ujistěte, že jste v okně Editoru dotazů. Pokud ne, vyberte pás karet Domů a ve skupině Externí data vyberte Upravit dotazy.
Na pásu karet Domů otevřete ve skupině Nový dotaz rozevírací nabídku Nový zdroj a vyberte Prázdný dotaz.
V seznamu dotazů se zobrazí nový dotaz s počátečním názvem Query1
. Dvakrát na tuto položku klikněte a zadejte název KeyPhrases
.
Teď na pásu karet Domů ve skupině Dotaz vyberte Rozšířený editor a otevřete okno Rozšířený editor. Odstraňte kód, který okno už obsahuje, a vložte následující kód.
Poznámka:
Nahraďte níže uvedený ukázkový koncový bod (obsahující <your-custom-subdomain>
) koncovým bodem vygenerovaným pro váš prostředek jazyka. Tento koncový bod najdete tak, že se přihlásíte k webu Azure Portal, přejdete k prostředku a vyberete Klíč a koncový bod.
// Returns key phrases from the text in a comma-separated list
(text) => let
apikey = "YOUR_API_KEY_HERE",
endpoint = "https://<your-custom-subdomain>.cognitiveservices.azure.com/text/analytics" & "/v3.0/keyPhrases",
jsontext = Text.FromBinary(Json.FromValue(Text.Start(Text.Trim(text), 5000))),
jsonbody = "{ documents: [ { language: ""en"", id: ""0"", text: " & jsontext & " } ] }",
bytesbody = Text.ToBinary(jsonbody),
headers = [#"Ocp-Apim-Subscription-Key" = apikey],
bytesresp = Web.Contents(endpoint, [Headers=headers, Content=bytesbody]),
jsonresp = Json.Document(bytesresp),
keyphrases = Text.Lower(Text.Combine(jsonresp[documents]{0}[keyPhrases], ", "))
in keyphrases
Nahraďte YOUR_API_KEY_HERE
klíčem prostředku jazyka. Tento klíč najdete také tak, že se přihlásíte k webu Azure Portal, přejdete k prostředku jazyka a vyberete stránku Klíč a koncový bod . Nezapomeňte nechat uvozovky před i za klíčem. Pak vyberte Hotovo.
Použití vlastní funkce
Teď můžete použít vlastní funkci k extrakci klíčových frází ze všech komentářů zákazníků. Získané fráze uložíte do nového sloupce tabulky.
V Power BI Desktopu se v okně Editoru dotazů vraťte zpět k dotazu FabrikamComments
. Vyberte pás karet Přidat sloupec. Ve skupině Obecné vyberte Vyvolat vlastní funkci.
Zobrazí se dialogové okno Vyvolat vlastní funkci. Do pole Nový název sloupce zadejte keyphrases
. V poli Dotaz na funkci vyberte vlastní funkci KeyPhrases
, kterou jste vytvořili.
V dialogovém okně se zobrazí nové pole text (volitelné). Toto pole se ptá, jaký sloupec chcete použít k zadání hodnot parametru text
rozhraní API pro klíčové fráze (Nezapomeňte, že hodnoty a language
id
parametry jste už pevně zakódovali.) V rozevírací nabídce vyberte Merged
(sloupec, který jste vytvořili dříve sloučením polí předmětu a zprávy).
Nakonec vyberte OK.
Pokud je všechno připravené, Power BI volá vaši funkci pro každý řádek tabulky vždy jen jednou. Odešle dotazy rozhraní API pro klíčové fráze a přidá do tabulky nový sloupec s uloženými výsledky. Předtím však možná bude nutné zadat nastavení ověřování a ochrany osobních údajů.
Ověřování a ochrana osobních údajů
Po zavření dialogového okna Vyvolat vlastní funkci se může zobrazit banner s výzvou, abyste upřesnili, jak se připojit k rozhraní API pro klíčová slova.
Vyberte Upravit přihlašovací údaje, ujistěte se, že Anonymous
je v dialogovém okně vybraná, a pak vyberte Připojit.
Poznámka:
Vyberete to Anonymous
, protože extrakce klíčových frází ověřuje požadavky pomocí přístupového klíče, takže Power BI nemusí zadávat přihlašovací údaje pro samotný požadavek HTTP.
Pokud se zobrazí banner Upravit přihlašovací údaje i po zvolení anonymního přístupu, možná jste zapomněli vložit svůj klíč prostředku Jazyk do kódu ve KeyPhrases
vlastní funkci.
Dále se může zobrazit banner s výzvou k zadání informací o ochraně osobních údajů u vašich zdrojů dat.
Vyberte Pokračovat a zvolte Public
pro každý zdroj dat v dialogovém okně. Pak vyberte Uložit.
Vytvoření Word Cloudu
Jakmile se vám zobrazí všechny bannery, které se zobrazí, zavřete Editor Power Query výběrem možnosti Zavřít a použít na pásu karet Domů.
Power BI Desktopu chvíli trvá, než provede potřebné požadavky HTTP. Sloupec keyphrases
pro každý řádek tabulky obsahuje klíčové fráze rozpoznané v textu rozhraním API pro klíčové fráze.
Teď tento sloupec použijete k vygenerování Word Cloudu. Začněte tím, že v hlavním okně Power BI Desktopu kliknete na tlačítko Sestava, které je nalevo od pracovního prostoru.
Poznámka:
Proč k vygenerování Word Cloudu použít extrahované klíčové fráze, a ne úplný text každého komentáře? Klíčové fráze nám poskytují důležitá slova z komentářů našich zákazníků, ne pouze nejčastější slova. Navíc nedojde ke zkreslení velikosti slov ve výsledném Cloudu častým používáním určitého slova v relativně malém počtu komentářů.
Pokud ještě nemáte nainstalovaný vlastní vizuál Word Cloud, nainstalujte ho. Na panelu Vizualizace napravo od pracovního prostoru klikněte na tři tečky (...) a zvolte Importovat z trhu. Pokud slovo "cloud" není mezi zobrazenými nástroji vizualizace v seznamu, můžete vyhledat "cloud" a kliknout na tlačítko Přidat vedle vizuálu Word Cloud. Power BI nainstaluje vizuál Word Cloud a bude vás informovat o úspěšné instalaci.
Nejprve klikněte na ikonu Word Cloud na panelu Vizualizace.
V pracovním prostoru se zobrazí nová sestava. Přetáhněte pole keyphrases
z panelu Pole do pole Kategorie na panelu Vizualizace. Uvnitř sestavy se zobrazí Word Cloud.
Teď na panelu Vizualizace přepněte na stránku Formát. V kategorii Nevýznamová slova zapněte Výchozí nevýznamová slova. Tím se z Cloudu odstraní běžná krátká slova, jako je například „of“. Protože ale vizualizujeme klíčové fráze, nemusí obsahovat slova stop.
O trochu níže na tomto panelu vypněte Otočení textu a Nadpis.
Výběrem nástroje Detailní režim v sestavě získáte lepší pohled na náš wordový cloud. Tento nástroj roztáhne Word Cloud tak, aby zaplnil celý pracovní prostor, jak je znázorněno níže.
Použití dalších funkcí
Azure AI Language také poskytuje analýzu mínění a rozpoznávání jazyka. Rozpoznávání jazyka je užitečné hlavně v případě, že zpětná vazba od vašich zákazníků není vždy v angličtině.
Obě tato rozhraní API jsou podobná rozhraní API pro klíčové fráze. To znamená, že je můžete integrovat do Power BI Desktopu pomocí vlastních funkcí, které jsou skoro stejné jako funkce vytvořená v tomto kurzu. Stačí vytvořit prázdný dotaz a stejně jako předtím do Rozšířeného editoru vložit odpovídající kód uvedený níže. (Nezapomeňte na přístupový klíč.) Stejně jako předtím použijte funkci k přidání nového sloupce do tabulky.
Níže uvedená funkce Analýza mínění vrátí popisek označující, jak pozitivní je mínění vyjádřené v textu.
// Returns the sentiment label of the text, for example, positive, negative or mixed.
(text) => let
apikey = "YOUR_API_KEY_HERE",
endpoint = "<your-custom-subdomain>.cognitiveservices.azure.com" & "/text/analytics/v3.1/sentiment",
jsontext = Text.FromBinary(Json.FromValue(Text.Start(Text.Trim(text), 5000))),
jsonbody = "{ documents: [ { language: ""en"", id: ""0"", text: " & jsontext & " } ] }",
bytesbody = Text.ToBinary(jsonbody),
headers = [#"Ocp-Apim-Subscription-Key" = apikey],
bytesresp = Web.Contents(endpoint, [Headers=headers, Content=bytesbody]),
jsonresp = Json.Document(bytesresp),
sentiment = jsonresp[documents]{0}[sentiment]
in sentiment
Tady jsou dvě verze funkce Rozpoznávání jazyka. První vrátí kód ISO jazyka (například pro angličtinu je to en
), zatímco druhá vrací popisný název (například English
). Jak si můžete všimnout, tyto dvě verze se liší pouze v posledním řádku těla funkce.
// Returns the two-letter language code (for example, 'en' for English) of the text
(text) => let
apikey = "YOUR_API_KEY_HERE",
endpoint = "https://<your-custom-subdomain>.cognitiveservices.azure.com" & "/text/analytics/v3.1/languages",
jsontext = Text.FromBinary(Json.FromValue(Text.Start(Text.Trim(text), 5000))),
jsonbody = "{ documents: [ { id: ""0"", text: " & jsontext & " } ] }",
bytesbody = Text.ToBinary(jsonbody),
headers = [#"Ocp-Apim-Subscription-Key" = apikey],
bytesresp = Web.Contents(endpoint, [Headers=headers, Content=bytesbody]),
jsonresp = Json.Document(bytesresp),
language = jsonresp [documents]{0}[detectedLanguage] [name] in language
// Returns the name (for example, 'English') of the language in which the text is written
(text) => let
apikey = "YOUR_API_KEY_HERE",
endpoint = "https://<your-custom-subdomain>.cognitiveservices.azure.com" & "/text/analytics/v3.1/languages",
jsontext = Text.FromBinary(Json.FromValue(Text.Start(Text.Trim(text), 5000))),
jsonbody = "{ documents: [ { id: ""0"", text: " & jsontext & " } ] }",
bytesbody = Text.ToBinary(jsonbody),
headers = [#"Ocp-Apim-Subscription-Key" = apikey],
bytesresp = Web.Contents(endpoint, [Headers=headers, Content=bytesbody]),
jsonresp = Json.Document(bytesresp),
language =jsonresp [documents]{0}[detectedLanguage] [name] in language
A konečně, tady je již uvedená varianta funkce Klíčové fráze, která vrátí fráze jako objekt seznamu, a ne jako jeden řetězec čárkami oddělených frází.
Poznámka:
Vracení jednoho řetězce sloužilo ke zjednodušení našeho příkladu Word Cloudu. Seznam je oproti tomu flexibilnější formát pro práci s vrácenými frázemi v Power BI. V Power BI Desktopu můžete s objekty seznamu pracovat s využitím skupiny Strukturovaný sloupec na pásu karet Transformace v Editoru dotazů.
// Returns key phrases from the text as a list object
(text) => let
apikey = "YOUR_API_KEY_HERE",
endpoint = "https://<your-custom-subdomain>.cognitiveservices.azure.com" & "/text/analytics/v3.1/keyPhrases",
jsontext = Text.FromBinary(Json.FromValue(Text.Start(Text.Trim(text), 5000))),
jsonbody = "{ documents: [ { language: ""en"", id: ""0"", text: " & jsontext & " } ] }",
bytesbody = Text.ToBinary(jsonbody),
headers = [#"Ocp-Apim-Subscription-Key" = apikey],
bytesresp = Web.Contents(endpoint, [Headers=headers, Content=bytesbody]),
jsonresp = Json.Document(bytesresp),
keyphrases = jsonresp[documents]{0}[keyPhrases]
in keyphrases
Další kroky
Přečtěte si další informace o jazyce Azure AI, jazyce vzorců Power Query M nebo Power BI.