Rozpoznávání nálady v textu písniček bez programování

Umělou inteligenci a Kognitivní služby jsem doposud vnímal jako velmi zajímavou oblast, která však vyžaduje solidní programátorské schopnosti a tudíž to není nic, do čeho bych se mohl sám pustit. Zkušenosti s Microsoft Flow mi však naznačily, že i já si mohu něco „naprogramovat“ a tak jsem začal uvažovat o nějakém scénáři právě pro kognitivní služby. Nápad rozpoznávat náladu v textech písniček nebyl z mojí hlavy, ale stal se tou pravou výzvou, jak otestovat, zda je možné využívat kognitivní služby Microsoft bez znalosti programování. A ukázalo se, že to jde bez jediného řádku kódu!
Libor Krejčiřík, Microsoft TAM, původní autor tohoto článku.


Princip a použité služby

Princip: Do složky na OneDrive jsou nahrávány zvukové soubory s textem zkoumané písníčky. Azure LogicApps složku monitoruje, vytvoření souboru poslouží jako spouštěč dalších kroků. Těmi jsou volání analýzy textu ze zvukového souboru, uložení konkrétních výsledků dané písničky, přenesení do předem připraveného Online Excelu, který již může sloužit jako výstup ale pěkný pohled dá až nějaká vizualizace, např. PowerBI.

  • OneDrive – úložiště písniček, vytvoření souboru poslouží jako spouštěč dalších kroků.
  • Microsoft Azure Logic Apps – Serverless technologie pro tvorbu, řízení a provoz business workflow procesů.
  • Azure Blob Storage – pro ukládání metadat a výsledků
  • Azure Text Analytics – pro detekci jazyka, nálady a klíčových slov
  • Excel Online – výsledky analýzy se budou zapisovat jako řádky do Excel souboru.
  • Power BI – volitelně, pro finální vizualizaci výsledků z Excel souboru

Postup

Pokud máte zprovozněn Azure, (stačí trial) a OneDrive, pak se do toho můžeme pustit.

1. Vytvoření kognitivní služby Text Analytics

Azure portál … (Create a resource>Text Analytics).

Po kliknutí na Create je třeba vyplnit základní údaje nutné k vytvoření služby. U Pricing tier zcela postačí F0, který je zdarma.

2. Vytvořte Azure Storage Account

Azure Portál, (Create a resource>Storage account)

Nastavené předvolby není třeba měnit. Po vytvoření úložiště přejděte do položky Blobs a vytvořte nový kontejner (+Container). V mém případě jsem u přístupových oprávnění zvolil Blob (Anonymous read access for blobs only) pro jednoduchý přístup k odkazům v Power BI reportu.

3. Tabulka v Excelu na OneDrive

Výsledky analýzy se budou zapisovat do Excel tabulky na OneDrive. Zároveň mi Excel pomohl pomocí vzorců jednoduše vyřešit věci, které by programátor řešil určitě jinak. Výsledná tabulka má tuto podobu:

Žlutě označené buňky naplní Logic App workflow (viz bod 5), ostatní buňky jsou pomocné. Při uploadu souborů s texty na OneDrive používám stejnou jmennou konvenci „Artist-Song name.txt“. Použité textové funkce:

Sloupec B – LEN (počet znaků ve sloupci A)
Sloupec C – SEARCH (vyhledání pozice znaku “-“ ve sloupci A)
Sloupec D – LEFT (vytvoření jména interpreta z názvu souboru ve sloupci A)
Sloupec E – MID (vytvoření jména skladby z názvu souboru ve sloupci A)
Sloupec G – CONCAT (spojení Blob URL a cesty k souboru ve sloupci F)

Poznámka: Blob URL najdete ve vlastnostech úložiště (Storage account>Properties)

4. Vytvoření Azure Logic App

Logic Apps je stejně jako Microsoft Flow integrační služba pro vytváření workflows. Microsoft Flow je dokonce služba postavená na službě Logic Apps, takže pokud máte předchozí zkušenosti s MS Flow, budete se v Logic Apps cítit jako doma. Postup je stejný jako u Text Analytics, tedy v Azure Portálu : Create a resource > Logic App.

Po vyplnění základních údajů dojde k vytvoření Logic App a nyní následuje hlavní část, tedy vytvoření workflow.

5. Tvorba workflow v Logic Apps

Při prvním spuštění se automaticky otevře Logic Apps Designer. K dispozici je celá řada šablon, my však začneme s prázdným workflow (+Blank Logic App).

Jak bylo uvedeno výše, spouštěčem bude vytvoření souboru v konkrétní složce. Z nabídky konektorů a spouštěčů je tedy třeba vybrat OneDrive-When a file is created a po přihlášení nakonfigurovat složku a interval.

Dalším krokem je přidání kognitivních funkcí. Pod nabídkou Text Analytics se skrývají tři, které postupně použijeme, tedy Detect Language, Detect Sentiment a Key Phrases. Po zvolení první z nich je nejprve třeba vytvořit připojení na Text Analytics z bodu 1.

Account Key najdete pod vámi vytvořeným Text Analytics zdrojem z bodu 1 pod položkou Keys, Site URL pak pod položkou Overview.
Poté je třeba přidat parametr z rozevíracího menu a zvolit Text. Bohužel v podporovaných jazycích dnes ještě chybí čeština, tak je s tím třeba počítat.

Do vytvořeného pole Text vyberte z dynamického obsahu File content.

Stejný postup použijete i u funkcí Detect Sentiment a Key Phrases, takže po dokončení těchto kroků bude mít vaše workflow zatím čtyři kroky.

Následující kroky se budou týkat práce s proměnnými. Cílem je upravit výstupy tak, aby byly vhodné pro Excel tabulku.

Pod nabídkou Variables zvolte Initialize variable a nadefinujte dvě proměnné – Detected Language a Keywords.

Poznámka: na obrázku jsou pro lepší přehlednost původní názvy kroků Initialize variable a Initialize variable 2 přejmenovány na Variable – Language a Variable – Keywords.

Další dva kroky slouží k naplnění obou proměnných. Nejprve v kategorii Variables vyberte Append to string variable a u jména vyberte v minulém kroku nadefinovanou proměnnou Detected Language. Jako hodnotu vyberte dynamické pole dle obrázku.

U druhé proměnné v kategorii Variables vyberte Append to array variable a u jména vyberte dříve nadefinovanou proměnnou Keywords. Hodnotu opět vyberte dle obrázku.

Poznámka: v obou případech Logic App automaticky přidá „For each“ kontejner.

Poslední fází přípravy výstupů je spojení klíčových slov. V kategorii Data Operations vyberte Join. Do pole From zadejte z dynamického obsahu proměnnou Keywords a do pole Join with zadejte “; “ (středník a mezera).

V následujícím kroku nakonfigurujte kopírovaní souboru do Blob storage. Z kategorie Azure Blob Storage vyberte akci Create blob. Logic App vám automaticky nabídne seznam vašich Storage Accounts, vyberte ten vytvořený v bodu 2. Pole vyplňte dle obrázku.

Posledním krokem je pak zápis do Excel tabulky uložené na OneDrive. V kategorii Excel Online (Business nebo OneDrive) zvolte Add a row into a table, přihlašte se, vyberte soubor a tabulku a ze seznamu parametrů vyberte všech pět žlutě označených z bodu 3. Pole vyplňte dle obrázku.

Poznámka: některá dynamická pole mohou být skrytá a je třeba kliknout na „See more“.

6. Pohled na celé workflow a jeho otestování

Pro otestování můžete workflow spustit, nahrát zvukový soubor s textem do složky na OneDrive a následně ověřit výsledek v Excel souboru.

7. Vizualizace v Power BI

Tvorba PowerBI reportu již není součástí tohoto článku. Vizualizaci si každý může nakonfigurovat dle vlastních požadavků, opět bez znalosti programování. Obrázek výše tedy slouží jen jako ukázka a inspirace.

Závěrem

Článek je typická ukázka, jak lze elegantně řešit netriviální zadání pomocí moderních postupů a umělé inteligence v rámci kognitivních cloudových služeb Microsoft.