Share via


Oktatóanyag: Kulcskifejezések kinyerése a Power BI-ban tárolt szövegből

A Microsoft Power BI Desktop ingyenes alkalmazás segítségével csatlakozni, átalakítani és szemléltetni is lehet az adatokat. A kulcskifejezések kinyerése, az Azure AI Nyelv egyik funkciója természetes nyelvi feldolgozást biztosít. A nyers, szerkezet nélkül megadott szövegből képes kivonatolni a legfontosabb kifejezéseket, elemzi az érzéseket és azonosítani tud olyan jól ismert dolgokat, mint a márkák. Ezekkel az eszközökkel gyors bepillantást nyerhet abba, hogy az ügyfelei miről beszélnek, és milyen érzéseket váltottak ki belőlük.

Az oktatóanyag segítségével megtanulhatja a következőket:

  • A Power BI Desktop használatával adatokat importálhat és alakíthat át
  • Egyéni függvény létrehozása a Power BI Desktopban
  • A Power BI Desktop integrálása az Azure AI Nyelv kulcskifejezés-kinyerési funkciójával
  • A Kulcskifejezések kinyerése funkcióval lekérheti a legfontosabb kifejezéseket az ügyfelek visszajelzéséből
  • Szófelhő létrehozása az ügyfél visszajelzésekből

Előfeltételek

Ügyféladatok betöltése

Első lépésként nyissa meg a Power BI Desktopot, és töltse be az előfeltételek részeként letöltött vesszővel tagolt értékfájlt (CSV). Ez a fájl egy fiktív kisvállalkozás támogatási fórumának egy napi feltételezett tevékenységeit tartalmazza.

Megjegyzés:

A Power BI számos webes forrásból, például SQL-adatbázisokból származó adatokat használhat. További információt a Power Query dokumentációjában talál.

A Power BI Desktop főablakában válassza ki a Kezdőlap menüszalagot. A menüszalagon a Külső adatok csoportban, nyissa meg az Adatok lekérése legördülő menüt és válassza Szöveg/CSV opciót.

The Get Data button

Megjelenik a Megnyitás párbeszédpanel. Lépjen a Letöltések mappába, vagy arra a mappára, ahová a CSV-fájlt letöltötte. Válassza ki a fájl nevét, majd a Megnyitás gombot. Megjelenik a CSV-importálási párbeszédpanel.

The CSV Import dialog

A CSV-importálási párbeszédpanelen ellenőrizheti, hogy a Power BI Desktop megfelelően észlelte-e a karakterkészletet, a tagoló karaktert, a fejlécsorokat és az oszloptípusokat. Ezek az információk helyesek, ezért válassza a Betöltés lehetőséget.

A betöltött adatok megtekintéséhez kattintson a Power BI-munkaterület bal szélén az Adatnézet gombra. Megnyílik az adatokat tartalmazó táblázat, mint a Microsoft Excelben.

The initial view of the imported data

Az adatok előkészítése

Előfordulhat, hogy át kell alakítania az adatokat a Power BI Desktopban, mielőtt készen áll a kulcskifejezések kinyerésére.

A mintaadatok egy subject oszlopot és egy comment oszlopot tartalmaznak. A Power BI Desktopon az Oszlopok egyesítése függvénnyel mindkét oszlop adataiból gyűjtheti a kulcskifejezéseket, nem csak az comment oszlopból.

A Power BI Desktopon válassza ki a Kezdőlap menüszalagot. A Külső adatcsoportban válassza a Lekérdezések szerkesztése lehetőséget.

The External Data group in Home ribbon

Ha még nincs kijelölve, jelölje ki az ablak bal oldalán a FabrikamComments elemet a Lekérdezések listában.

Most jelölje be a subject és a comment oszlopot a táblázatban. Lehetséges, hogy vízszintesen görgetnie kell, hogy mindkét oszlopot elérje. Először kattintson a subject oszlop fejlécére, majd a Control billentyűt lenyomva tartva kattintson a comment oszlop fejlécére is.

Selecting fields to be merged

Válassza ki az Átalakít menüszalagot. A menüszalag Szövegoszlopok csoportjában válassza az Oszlopok egyesítése lehetőséget. Megjelenik az Oszlopok egyesítése párbeszédpanel.

Merging fields using the Merge Columns dialog

Az Oszlopok egyesítése párbeszédpanelen válassza Tab elválasztóként, majd kattintson az OK gombra.

Ha szeretné, az Üres elemek eltávolítása szűrővel ki is szűrheti az üres üzeneteket, illetve az Átalakítás tisztítással eltávolíthatja a nem nyomtatható karaktereket. Ha az adatok a mintafájl spamscore oszlopához hasonló oszlopot tartalmaznak, akkor a Szám szűrővel kihagyhatja a „spam” megjegyzéseket.

Az API ismertetése

A kulcskifejezések kinyerése HTTP-kérésenként akár ezer szöveges dokumentumot is feldolgozhat. A Power BI azonban jobban szereti a rekordokat egyenként kezelni, ezért az oktatóanyagban az API-hívásaink mindig csak egyetlen dokumentumot fognak tartalmazni. A Key Phrases API számára minden feldolgozandó dokumentumra a következő mezőket kell megadni.

Mező Description
id A dokumentum egy egyedi azonosítóját a kérésen belül. Ezt a mezőt a válasz is tartalmazza. Így több dokumentum feldolgozásakor könnyen társítani lehet a kinyert kulcskifejezéseket a dokumentummal, amelyből származnak. Az oktatóanyagban, mivel kérésenként csak egy dokumentumot dolgozunk fel, az id értéket fixen rögzítheti, hogy mindegyik kérésre ugyanaz legyen.
text A feldolgozandó szöveg. Ennek a mezőnek az értéke az előző részben létrehozott Merged oszlopból származik, amely a tárgysor és a megjegyzés kombinált szövegét tartalmazza. A Key Phrases API megköveteli, hogy ezek az adatok legfeljebb 5120 karakter hosszúságúak legyenek.
language A dokumentum természetes nyelvét jelölő kód. A mintaadatokban minden üzenet angolul van, így a mezőre rögzítheti a en értéket.

Egyéni függvény létrehozása

Most már készen áll arra, hogy létrehozza az egyéni függvényt, amely integrálja a Power BI-t és a key phrase extraction-t. A függvény a feldolgozandó szöveget paraméterként kapja meg. Elvégzi az adatok átalakítását a szükséges JSON formára és vissza, és elküldi a HTTP-kérést a Key Phrases API-nak. A függvény elemzi az API válaszát és a kinyert kulcskifejezések vesszővel tagolt listáját tartalmazó sztringet ad vissza.

Megjegyzés:

A Power BI Desktop egyéni függvényei a Power Query M képletnyelven (röviden „M”) vannak megírva. Az M egy funkcionális programozási nyelv, amelynek az alapját az F# képezi. Az oktatóanyag elvégzéséhez azonban nem kell programozónak lennie. A szükséges kód alább megtalálható.

A Power BI Desktopban ellenőrizze, hogy még a Lekérdezésszerkesztő ablakban van-e. Ha nem, válassza a Kezdőlap menüszalagot, és a Külső adatcsoportban válassza a Lekérdezések szerkesztése lehetőséget.

Most a Kezdőlap menüszalagon az Új lekérdezés csoportban nyissa meg az Új forrás legördülő menüt, majd válassza az Üres lekérdezést.

Az új lekérdezés eredetileg Query1 névvel megjelenik a Lekérdezések listában. Kattintson duplán erre az elemre, és nevezze át a KeyPhrases névre.

Most a Kezdőlap menüszalag Lekérdezés csoportjában válassza a Speciális szerkesztő lehetőséget a Speciális szerkesztő ablak megnyitásához. Törölje az eredetileg az ablakban lévő kódot, és illessze be a következőt.

Megjegyzés:

Cserélje le az alábbi példavégpontot (amely <your-custom-subdomain>tartalmazza) a nyelvi erőforráshoz létrehozott végpontra. Ezt a végpontot az Azure Portalra való bejelentkezéssel, az erőforrásra való navigálással, valamint a Kulcs és a végpont kiválasztásával találja meg.

// 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

Cserélje le YOUR_API_KEY_HERE a nyelvi erőforráskulcsot. Ezt a kulcsot úgy is megtalálhatja, hogy bejelentkezik az Azure Portalra, navigál a nyelvi erőforráshoz, és kiválasztja a Kulcs és a végpont lapot. A kulcs előtt és után mindenképp tartsa meg az idézőjeleket. Ezután válassza a Kész lehetőséget.

Egyéni függvény használata

Ekkor az egyéni függvény használatával kinyerheti az ügyfelek megjegyzéseiből a kulcskifejezéseket, és eltárolhatja őket a táblázat új oszlopában.

A Power BI Desktopban, a Lekérdezésszerkesztő ablakban váltson vissza a FabrikamComments lekérdezésre. Válassza ki a Oszlop hozzáadása menüszalagot. Az Általános csoportban válassza az Egyéni függvény meghívása lehetőséget.

Invoke Custom Function button

Megjelenik az Egyéni függvény hívása párbeszédablak. Az Új oszlop neve mezőbe írja be: keyphrases. A Függvénylekérdezésnél válassza ki a létrehozott, KeyPhrases egyéni függvényt.

A párbeszédpanelen új mező jelenik meg, (nem kötelező) szöveg. A mezőben azt kell megadnunk, mely oszlop adja a Key Phrases API text paraméterének az értékét. (Ne feledje, hogy már rögzítette a paraméterek és id a language paraméterek értékeit.) Válassza ki Merged (a korábban létrehozott oszlopot a tárgy- és üzenetmezők egyesítésével) a legördülő menüből.

Invoking a custom function

Végül válassza az OK gombot.

Ha minden kész, a Power BI a táblázat minden sorára meghívja egyszer az egyéni függvényt. A lekérdezéseket elküldi a Key Phrases API-nak és új oszlopot ad a táblázathoz az eredmények tárolására. Mielőtt azonban ez megtörténne, lehetséges, hogy meg kell adnia a hitelesítési és adatvédelmi beállításokat.

Hitelesítés és adatvédelem

Miután bezárja az Egyéni függvény hívása párbeszédpanelt, egy értesítés jelenhet meg, amely megkéri, hogy adja meg, miként szeretne csatlakozni a Key Phrases API-hoz.

credentials banner

Válassza a Hitelesítő adatok szerkesztése lehetőséget, győződjön meg arról, hogy Anonymous ki van jelölve a párbeszédpanelen, majd válassza a Csatlakozás.

Megjegyzés:

Azért kell választania Anonymous , mert a kulcskifejezés-kinyerés a hozzáférési kulccsal hitelesíti a kéréseket, így a Power BI-nak nem kell hitelesítő adatokat megadnia magának a HTTP-kérésnek.

setting authentication to anonymous

Ha a névtelen hozzáférés kiválasztása után is megjelenik a Hitelesítő adatok szerkesztése szalagcím, előfordulhat, hogy elfelejtette beilleszteni a nyelvi erőforráskulcsot az KeyPhrasesegyéni függvény kódjába.

Ezután egy értesítés jelenhet meg, amely arra kéri, hogy szolgáltasson információkat az adatforrás adatainak védelmével kapcsolatban.

privacy banner

Válassza a Folytatás lehetőséget, és válassza Public ki a párbeszédpanelen az egyes adatforrásokat. Ezután válassza a Mentés lehetőséget.

setting data source privacy

A szófelhő létrehozása

Miután megoldotta a megjelenő szalagcímeket, a Kezdőlap menüszalagon a Bezárás &alkalmazás lehetőséget választva zárja be a Lekérdezésszerkesztő.

A Power BI Desktop néhány pillanatig a szükséges HTTP-kérésekkel lesz elfoglalva. A táblázat mindegyik sorához az új keyphrases oszlopban találhatók a szövegben a Key Phrases API által talált kulcskifejezések.

Most pedig ezzel az oszloppal létrehozunk egy szófelhőt. Első lépésként kattintson a Jelentés gombra a Power BI Desktop főablakában, a munkaterület bal oldalán.

Megjegyzés:

Miért a kivonatolt kulcskifejezéseket használjuk a szófelhő létrehozásához a megjegyzések teljes szövege helyett? A kulcskifejezések az ügyfelek megjegyzéseiből a fontos és nem egyszerűen csak a leggyakoribb szavakat tartalmazzák. Emellett a szavak méretezését így nem torzítja az, ha valamely szó csak szűk számú megjegyzésben fordul elő nagyon gyakran.

Ha a Word Cloud (Szófelhő) egyéni vizualizációt még nem telepítette, tegye meg. A munkaterület jobb oldalán található Vizualizációk panelen kattintson a három pontra (...), és válassza az Importálás a piacról lehetőséget. Ha a "felhő" szó nem szerepel a listában megjelenített vizualizációs eszközök között, kereshet a "felhő" kifejezésre, és kattintson a Hozzáadás gombra a Word Cloud-vizualizáció mellett. A Power BI telepíti a szófelhő vizualizációt, és tájékoztatja, amint ez sikeresen megtörtént.

adding a custom visual

Először kattintson a szófelhő ikonjára a Vizualizációk panelen.

Word Cloud icon in visualizations panel

Egy új jelentés jelenik meg a munkaterületen. Húzza a keyphrases mezőt a Mezők panelről a Vizualizációk panel Kategória mezőjébe. A szófelhő megjelenik a jelentésben.

Most váltson a Vizualizációk panel Formátum lapjára. A Stopszavak kategóriában kapcsolja be az Alapértelmezett stopszavak beállítást a rövid és gyakori szavak (például a névelők) kiszűréséhez a felhőből. Mivel azonban a kulcskifejezéseket vizualizáljuk, előfordulhat, hogy nem tartalmaznak stop szavakat.

activating default stop words

Egy kicsit lejjebb ugyanezen a panelen kapcsolja ki a Szöveg elforgatása és a Cím beállítást.

activate focus mode

A jelentés Fókusz mód eszközének kiválasztásával jobban áttekintheti a felhő szót. Az eszköz kinagyítja a szófelhőt a teljes munkaterületre, amint az alább látható.

A Word Cloud

Egyéb funkciók használata

Az Azure AI Language hangulatelemzést és nyelvfelismerést is biztosít. A nyelvfelismerés különösen hasznos, ha az ügyfelek visszajelzései nem mind angol nyelven születnek.

Mindkét további API hasonlóan működik, mint a Key Phrases API. Ez azt jelenti, hogy a Power BI Desktoppal integrálni tudja majd őket olyan egyéni függvénnyel, amely majdnem megegyezik az oktatóanyagban létrehozottal. Csak hozzon létre egy üres lekérdezést, és illessze be a megfelelő kódot az alábbiak közül a Speciális szerkesztőbe a korábbihoz hasonló módon. (Ne felejtse el a hozzáférési kulcsot!) Ezután, mint korábban, a függvény használatával adjon hozzá egy új oszlopot a táblához.

Az alábbi Hangulatelemzés függvény egy címkét ad vissza, amely jelzi, hogy mennyire pozitív a szövegben kifejezett hangulat.

// 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

Íme két változat egy nyelvfelismerési függvényre. Az első a nyelv ISO-kódját adja vissza (például az angol esetében: en), a második pedig a közkeletű nevét (például: English). Észreveheti, hogy a két változat között csak a törzs utolsó sorában van eltérés.

// 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 

Végezetül íme a korábban bemutatott Key Phrases-függvény egy olyan változata, amely a kifejezéseket nem egyetlen, vesszővel tagolt sztringként, hanem listaobjektumként adja vissza.

Megjegyzés:

Azzal, hogy egyetlen sztringet kaptunk vissza, a szófelhőt egyszerűbben lehetett létrehozni. A lista azonban egy olyan formátum, amellyel a visszaadott kifejezések sokkal rugalmasabban kezelhetők a Power BI-ban. A listaobjektumok a Power BI Desktopban a Lekérdezésszerkesztő Átalakítás menüszalagjának Strukturált oszlop csoportjában szerkeszthetők.

// 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

További lépések

További információ az Azure AI Nyelvről, a Power Query M képletnyelvéről vagy a Power BI-ról.