Självstudie: Extrahera nyckelfraser från text som lagras i Power BI
Microsoft Power BI Desktop är ett kostnadsfritt program som låter dig ansluta till, transformera och visualisera dina data. Extrahering av nyckelfraser, en av funktionerna i Azure AI Language, ger bearbetning av naturligt språk. Den kan ta rå ostrukturerad text och utvinna de viktigaste fraserna, analysera avsikter och identifiera välkända koncept, till exempel varumärken. Tillsammans kan dessa verktyg hjälpa dig att snabbt se vad kunderna talar om och vad de anser om det.
I den här självstudien får du lära dig att:
- Använda Power BI Desktop för att importera och transformera data
- Skapa en anpassad funktion i Power BI Desktop
- Integrera Power BI Desktop med funktionen extrahering av nyckelfraser i Azure AI Language
- Använd extrahering av nyckelfraser för att få de viktigaste fraserna från kundfeedback
- Skapa ett ordmoln från kundåterkoppling
Förutsättningar
- Microsoft Power BI Desktop. Hämta utan kostnad.
- Ett Microsoft Azure-konto. Skapa ett kostnadsfritt konto eller logga in.
- En språkresurs. Om du inte har en kan du skapa en.
- Den språkresursnyckel som genererades åt dig när du skapade resursen.
- Kundkommentarer. Du kan använda våra exempeldata eller dina egna data. Den här självstudien utgår från att du använder våra exempeldata.
Hämta kundinformation
Kom igång genom att öppna Power BI Desktop och läsa in filen med kommaavgränsat värde (CSV) som du laddade ned som en del av förutsättningarna. Den här filen representerar en dags hypotetisk aktivitet i ett supportforum hos ett fiktivt småföretag.
Kommentar
Power BI kan använda data från en mängd olika webbaserade källor, till exempel SQL-databaser. Mer information finns i Power Query-dokumentationen .
I huvudfönstret i Power BI Desktop väljer du menyfliksområdet Start. I gruppen Externa data på menyfliken öppnar du listrutan Hämta data och väljer Text/CSV.
Dialogrutan Öppna visas. Gå till mappen Nedladdningar eller till mappen där du laddade ned CSV-filen. Välj namnet på filen och sedan knappen Öppna . Dialogrutan för CSV-import visas.
Via dialogrutan för .csv-import kan du kontrollera att Power BI Desktop har identifierat rätt teckenuppsättning, avgränsare, rubrikrader och kolumntyper. Den här informationen är korrekt, så välj Läs in.
Visa inlästa data genom att klicka på knappen Datavy längs till vänster på Power BI-arbetsytan. En tabell med våra data öppnas, t.ex. i Microsoft Excel.
Förbereda data
Du kan behöva transformera dina data i Power BI Desktop innan de är redo att bearbetas med extrahering av nyckelfraser.
Våra exempeldata inkluderar en subject
-kolumn och en comment
-kolumn. Med funktionen slå ihop kolumner i Power BI Desktop kan du extrahera nyckelfraser från data i båda dessa kolumner, i stället för endast kolumnen comment
.
I Power BI Desktop väljer du menyfliksområdet Start. I gruppen Externa data väljer du Redigera frågor.
Välj FabrikamComments
i frågelistan på vänster sida av fönstret om det inte redan är valt.
Välj nu båda kolumnerna, subject
och comment
, i tabellen. Du kan behöva bläddra vågrätt för att se de här kolumnerna. Klicka först på kolumnrubriken subject
. Håll sedan ned Ctrl-tangenten och klicka sedan på kolumnrubriken comment
.
Välj menyfliksområdet Transformera. I gruppen Textkolumner i menyfliksområdet väljer du Slå samman kolumner. Dialogrutan Slå ihop kolumner visas.
I dialogrutan Sammanfoga kolumner väljer du Tab
som avgränsare och väljer sedan OK.
Du kan också överväga att filtrera bort tomma meddelanden med filtret Ta bort tom och att ta bort icke utskrivbara tecken med Rensa-transformeringen. Om det i dina data finns en kolumn som kolumnen spamscore
i vår exempelfil kan du hoppa över skräpkommentarer med hjälp av ett nummerfilter.
Förstå API:et
Extrahering av nyckelfraser kan bearbeta upp till tusen textdokument per HTTP-begäran. Power BI föredrar dock att hantera poster en i taget, så att våra anrop till API:et i den här självstudien innehåller endast ett enskilt dokument. Nyckelfras-API:et kräver följande fält för varje dokument som bearbetas.
Fält | beskrivning |
---|---|
id |
En unik identifierare för det här dokumentet inom begäran. Svaret innehåller även det här fältet. På så sätt kan du enkelt koppla de extraherade nyckelfraserna med det dokument de kom från, om du bearbetar flera dokument. Eftersom du endast bearbetar ett dokument per begäran i denna självstudie kan du hårdkoda värdet för id så att det är samma som begäran. |
text |
Texten som ska bearbetas. Värdet för det här fältet kommer från kolumnen Merged som du skapade i föregående avsnitt och som innehåller den kombinerade ämnesrad- och kommentarstexten. Enligt nyckelfras-API:et får dessa data inte vara längre än cirka 5 120 tecken. |
language |
Koden för det naturliga språket som dokumentet är skrivet i. Alla meddelanden i exempelfilen är skrivna på engelska så du kan hårdkoda värdet en för detta fält. |
Skapa anpassad funktion
Nu är du redo att skapa den anpassade funktion som integrerar Power BI och extrahering av nyckelfraser. Funktionen tar emot texten som ska behandlas som parameter. Den konverterar data till och från JSON-formatet som krävs och gör en HTTP-begäran till nyckelfras-API-slutpunkten. När vi har tolkat svaret returnerar funktionen en sträng från API:et som innehåller en kommaavgränsad lista över extraherade nyckelfraser.
Kommentar
De anpassade funktionerna i Power BI Desktop är skrivna med Power Query M-formelspråket, även kallat M. M är ett funktionellt programmeringsspråk som baseras på F#. Du behöver inte vara programmerare för att genomföra den här självstudien. Den kod som krävs finns nedan.
Kontrollera att du fortfarande befinner dig i frågeredigerarfönstret i Power BI Desktop. Om du inte är det väljer du menyfliksområdet Start och i gruppen Externa data väljer du Redigera frågor.
Nu, i den Startmenyfliksområdet i gruppen Ny fråga öppnar du listrutan Ny källa och väljer Tom fråga.
En ny fråga, inledningsvis med namnet Query1
visas i listan med frågor. Dubbelklicka på den här posten och ge den namnet KeyPhrases
.
I menyfliksområdet Start i gruppen Fråga väljer du nu Avancerad redigerare för att öppna fönstret Avancerad redigerare. Ta bort den kod som redan finns i fönstret och klistra in följande kod.
Kommentar
Ersätt exempelslutpunkten nedan (innehåller <your-custom-subdomain>
) med slutpunkten som genererats för språkresursen. Du hittar den här slutpunkten genom att logga in på Azure Portal, navigera till resursen och välja Nyckel och slutpunkt.
// 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
Ersätt YOUR_API_KEY_HERE
med din språkresursnyckel. Du kan också hitta den här nyckeln genom att logga in på Azure Portal, navigera till språkresursen och välja sidan Nyckel och slutpunkt. Kom ihåg att lämna de dubbla citattecknen före och efter nyckeln. Markera sedan Klar.
Använda anpassad funktion
Du kan nu hämta nyckelfraser i var och en av våra kundkommentarer med den anpassade funktionen. Vi lagrar dem i en ny kolumn i tabellen.
Växla tillbaka till frågan FabrikamComments
i frågeredigerarfönstret i Power BI Desktop. Välj menyfliksområdet Lägg till kolumn. I gruppen Allmänt väljer du Anropa anpassad funktion.
Dialogrutan Anropa anpassad funktion visas. Ange keyphrases
i Nytt kolumnnamn. I Funktionsfråga väljer du den anpassad funktionen som du skapade, KeyPhrases
.
Ett nytt fält visas i dialogrutan text (valfritt). Det här fältet frågar vilken kolumn som ska användas för att ange värden för text
-parametern i nyckelfras-API:et. (Kom ihåg att du redan hårdkodade värdena för parametrarna language
och id
.) Välj Merged
(den kolumn som du skapade tidigare genom att sammanfoga ämnes- och meddelandefälten) i den nedrullningsbara menyn.
Välj slutligen OK.
Om allt är klart anropar Power BI din anpassade funktion en gång för varje rad i tabellen. Den skickar frågor till nyckelfras-API:et och lägger till en ny kolumn i tabellen där resultaten lagras. Innan det händer kan du behöva ange inställningar för autentisering och sekretess.
Autentisering och sekretess
När du stänger dialogrutan Anropa anpassad funktion visas en banderoll där du uppmanas att ange hur du vill ansluta till nyckelfras-API:et.
Välj Redigera autentiseringsuppgifter, kontrollera att Anonymous
är markerat i dialogrutan och välj sedan Anslut.
Kommentar
Du väljer Anonymous
eftersom extrahering av nyckelfraser autentiserar begäranden med hjälp av din åtkomstnyckel, så Power BI behöver inte ange autentiseringsuppgifter för själva HTTP-begäran.
Om du ser banderollen Redigera autentiseringsuppgifter även efter att du har valt anonym åtkomst kanske du har glömt att klistra in din språkresursnyckel i koden i den KeyPhrases
anpassade funktionen.
Nu kan ett meddelande visas där du uppmanas att ange information om datakällornas sekretess.
Välj Fortsätt och välj Public
för var och en av datakällorna i dialogrutan. Välj sedan Spara.
Skapa ordmoln
När du har hanterat eventuella banderoller som visas väljer du Stäng och använd i menyfliksområdet Start för att stänga Power Query-redigeraren.
Det tar en stund innan Power BI Desktop har slutfört nödvändiga HTTP-begäranden. För varje rad i tabellen innehåller den nya keyphrases
-kolumnen nyckelfraser som identifieras i texten av nyckelfras-API:et.
Nu ska du generera ett ordmoln med den här kolumnen. Börja med att klicka på knappen Rapport i Power BI Desktop-huvudfönstret, till vänster om arbetsytan.
Kommentar
Varför generera ett ordmoln med extraherade nyckelfraser i stället för hela texten i varje kommentar? Nyckelfraser förser oss med de viktiga orden från kundkommentarerna, inte bara de vanligaste orden. Ordstorleken i det resulterande molnet påverkas dessutom inte av ord som används ofta i ett relativt litet antal kommentarer.
Installera den anpassade ordmolnsvyn om du inte redan har den. I panelen Visualiseringar till höger om arbetsytan klickar du på de tre punkterna (...) och väljer Importera från marknad. Om ordet "moln" inte finns bland de visualiseringsverktyg som visas i listan kan du söka efter "molnet" och klicka på knappen Lägg till bredvid det visuella Word Cloud-objektet. Power BI installerar ordmolnsvyn och bekräftar att installationen slutfördes.
Klicka först på ikonen Ordmoln på panelen visualiseringar.
En ny rapport visas i arbetsytan. Dra fältet keyphrases
från fältpanelen till kategorifältet på panelen Visualiseringar. Ordmolnet visas i rapporten.
Växla nu till sidan Format på panelen Visualiseringar. I kategorin Stoppord slår du på Standard-stoppord för att slippa korta och vanliga ord som ”och” i molnet. Men eftersom vi visualiserar nyckelfraser kanske de inte innehåller stoppord.
Lite längre ned på panelen slår du av Rotera texten och Title (rubrik/titel).
Välj verktyget Fokusläge i rapporten för att få en bättre titt på vårt ordmoln. Verktyget expanderar ordmolnet så att det fyller hela arbetsytan. Se nedan.
Använda andra funktioner
Azure AI Language tillhandahåller även attitydanalys och språkidentifiering. Språkidentifieringen är särskilt användbart om du får kundfeedback på andra språk än engelska.
Båda dessa andra API:er liknar nyckelfras-API:et. Det innebär att du kan integrera dem med Power BI Desktop med hjälp av anpassade funktioner som nästan är identiska med den som du skapade i den här självstudien. Skapa helt enkelt en tom fråga och klistra in lämplig kod nedan i den avancerade redigeraren, som du gjorde tidigare. (Glöm inte din åtkomstnyckel!) Använd sedan funktionen för att lägga till en ny kolumn i tabellen som tidigare.
Funktionen Attitydanalys nedan returnerar en etikett som anger hur positiv attityden som uttrycks i texten är.
// 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
Här följer två typer av språkidentifiering. Den första returnerar ISO-språkkoden (t.ex. en
för engelska), och den andra returnerar ett smeknamn (t.ex. English
). Du kanske märker att bara den sista raden i texten skiljer sig åt mellan de två versionerna.
// 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
Här är en variant av nyckelfrasfunktionen som redan visas. Den returnerar fraserna som listobjekt snarare än som en sträng med kommaseparerade fraser.
Kommentar
Returnerar en enkel sträng, förenklad, vårt ordmolnsexempel. En lista är å andra sidan ett mer flexibelt format för att arbeta med returnerade fraser i Power BI. Du kan ändra listobjekten i Power BI Desktop. Använd gruppen Strukturerad kolumn på frågeredigerarens transformeringsmenyflik.
// 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
Nästa steg
Läs mer om Azure AI Language, formelspråket Power Query M eller Power BI.