Analyse van sociale media met Azure Stream Analytics

In dit artikel leert u hoe u een oplossing voor sentimentanalyse voor sociale media bouwt door realtime Twitter-gebeurtenissen in Azure Event Hubs te brengen en deze vervolgens te analyseren met Behulp van Stream Analytics. U schrijft een Azure Stream Analytics-query om de gegevens te analyseren en resultaten op te slaan voor later gebruik of om een Power BI-dashboard te maken om in realtime inzicht te krijgen.

Hulpprogramma's voor sociale media-analyses helpen organisaties inzicht te hebben in trending onderwerpen. Trending onderwerpen zijn onderwerpen en houdingen met een groot aantal berichten op sociale media. Sentimentanalyse, ook wel meninganalyse genoemd, maakt gebruik van hulpprogramma's voor sociale media-analyses om de houding van een product of idee te bepalen.

Realtime Twitter-trendanalyse is een goed voorbeeld van een analysehulpprogramma omdat u met het hashtag-abonnementsmodel naar specifieke trefwoorden (hashtags) kunt luisteren en sentimentanalyse van de feed kunt ontwikkelen.

Scenario: Sentimentanalyse van sociale media in realtime

Een bedrijf met een nieuwsmediawebsite is geïnteresseerd in het verkrijgen van een voordeel ten opzichte van zijn concurrenten door site-inhoud te bevatten die direct relevant is voor de lezers. Het bedrijf maakt gebruik van analyse van sociale media over onderwerpen die relevant zijn voor lezers door realtime sentimentanalyse van Twitter-gegevens uit te voeren.

Om trending onderwerpen in realtime op Twitter te identificeren, heeft het bedrijf realtime analyses nodig over het tweetvolume en sentiment voor belangrijke onderwerpen.

Vereisten

In deze handleiding gebruikt u een clienttoepassing die verbinding maakt met Twitter en zoekt naar tweets met bepaalde hashtags (die u kunt instellen). De volgende lijst bevat vereisten voor het uitvoeren van de toepassing en het analyseren van de tweets met behulp van Azure Streaming Analytics.

Hier volgt de oplossingsarchitectuur die u gaat implementeren.

A diagram showing different pieces of services and applications used to build the solution.

Een Event Hub maken voor streaming-invoer

De voorbeeldtoepassing genereert gebeurtenissen en pusht deze naar een Event Hub. Azure Event Hubs is de voorkeursmethode voor gebeurtenisopname voor Stream Analytics. Zie de documentatie van Azure Event Hubs voor meer informatie.

Een Event Hubs-naamruimte en Event Hub maken

Volg de instructies uit de quickstart: Een Event Hub maken met behulp van Azure Portal om een Event Hubs-naamruimte en een Event Hub met de naam socialtwitter-eh te maken. U kunt ook een andere naam gebruiken. Als u dit doet, noteert u deze, omdat u de naam later nodig hebt. U hoeft geen andere opties in te stellen voor de Event Hub.

Toegang verlenen tot de Event Hub

Voordat een proces gegevens naar een Event Hub kan verzenden, heeft de Event Hub een beleid nodig dat toegang toestaat. Het toegangsbeleid genereert een verbindingsreeks die autorisatiegegevens bevat.

  1. Selecteer Event Hubs in de navigatiebalk aan de linkerkant van uw Event Hubs-naamruimte. Deze bevindt zich in de sectie Entiteiten . Selecteer vervolgens de Event Hub die u zojuist hebt gemaakt.

  2. Selecteer in de navigatiebalk aan de linkerkant beleid voor gedeelde toegang onder Instellingen.

    Notitie

    Er is een optie voor gedeeld toegangsbeleid onder voor de naamruimte en voor de Event Hub. Zorg ervoor dat u in de context van uw Event Hub werkt, niet de naamruimte.

  3. Selecteer + Toevoegen op de opdrachtbalk op de pagina Beleid voor gedeelde toegang. Voer vervolgens socialtwitter-access in voor de beleidsnaam en schakel het selectievakje Beheren in.

  4. Selecteer Maken.

  5. Nadat het beleid is geïmplementeerd, selecteert u het beleid in de lijst met beleid voor gedeelde toegang.

  6. Zoek het vak met het label primaire sleutel van Verbinding maken iontekenreeks en selecteer de knop Kopiëren naast de verbindingsreeks.

  7. Plak de verbindingsreeks in een teksteditor. U hebt deze verbindingsreeks nodig voor de volgende sectie nadat u enkele kleine wijzigingen hebt uitgevoerd.

De verbindingsreeks ziet er als volgt uit:

Endpoint=sb://EVENTHUBS-NAMESPACE.servicebus.windows.net/;SharedAccessKeyName=socialtwitter-access;SharedAccessKey=XXXXXXXXXXXXXXX;EntityPath=socialtwitter-eh

U ziet dat de verbindingsreeks meerdere sleutel-waardeparen bevat, gescheiden door puntkomma's: Endpoint, SharedAccessKeyName, SharedAccessKeyen EntityPath.

Notitie

Voor beveiliging zijn delen van de verbindingsreeks in het voorbeeld verwijderd.

De Twitter-clienttoepassing configureren en starten

De clienttoepassing haalt tweet-gebeurtenissen rechtstreeks vanuit Twitter op. Hiervoor is toestemming nodig om de Twitter Streaming-API's aan te roepen. Als u deze machtiging wilt configureren, maakt u een toepassing in Twitter, waarmee unieke referenties worden gegenereerd (zoals een OAuth-token). Vervolgens kunt u de clienttoepassing zo configureren dat deze referenties worden gebruikt wanneer er API-aanroepen worden uitgevoerd.

Maak een Twitter-toepassing

Als u nog geen Twitter-toepassing hebt die u voor deze instructies kunt gebruiken, kunt u er een maken. U moet al een Twitter-account hebben.

Notitie

Het exacte proces in Twitter voor het maken van een toepassing en het ophalen van de sleutels, geheimen en token kan veranderen. Als deze instructies niet overeenkomen met wat u op de Twitter-site ziet, raadpleegt u de documentatie voor Twitter-ontwikkelaars.

  1. Ga in een webbrowser naar Twitter for Developers, maak een ontwikkelaarsaccount en selecteer Een app maken. Mogelijk wordt er een bericht weergegeven met de mededeling dat u een Twitter-ontwikkelaarsaccount moet aanvragen. U kunt dit doen en nadat uw aanvraag is goedgekeurd, ziet u een bevestigingsmail. Het kan enkele dagen duren voordat de aanvraag voor een ontwikkelaarsaccount wordt goedgekeurd.

    Screenshot shows the Create an app button.

  2. Voer op de pagina Create an application de gegevens voor de nieuwe app in en selecteer Create your Twitter application.

    Screenshot shows the App details pane where you can enter values for your app.

  3. Selecteer op de toepassingspagina het tabblad Keys and Tokens en kopieer de waarden voor Consumer API Key en Consumer API Secret Key. Selecteer ook Create onder Access Token and Access Token Secret om de toegangstokens te genereren. Kopieer de waarden voor Access Token en Access Token Secret.

    Sla de waarden op die u hebt opgehaald voor de Twitter-toepassing. U hebt de waarden later nodig.

Notitie

De sleutels en geheimen voor de Twitter-toepassing bieden toegang tot uw Twitter-account. Behandel deze informatie als gevoelig, hetzelfde als uw Twitter-wachtwoord. Sluit deze informatie bijvoorbeeld niet in in een toepassing die u aan anderen geeft.

De clienttoepassing configureren

We hebben een clienttoepassing gemaakt die verbinding maakt met Twitter-gegevens met behulp van Twitter Streaming-API's voor het verzamelen van tweet-gebeurtenissen over een specifieke set onderwerpen.

Voordat de toepassing wordt uitgevoerd, is bepaalde informatie van u vereist, zoals de Twitter-sleutels en de Event Hub verbindingsreeks.

  1. Zorg ervoor dat u de TwitterClientCore-toepassing hebt gedownload, zoals vermeld in de vereisten.

  2. Gebruik een teksteditor om het App.config-bestand te openen . Breng de volgende wijzigingen aan in het <appSettings> element:

    • Ingesteld oauth_consumer_key op de Twitter Consumer Key (API-sleutel).
    • Ingesteld oauth_consumer_secret op het Twitter Consumer Secret (API secret key).
    • Ingesteld oauth_token op het Twitter Access-token.
    • Ingesteld oauth_token_secret op het Twitter Access-tokengeheim.
    • Ingesteld EventHubNameConnectionString op de verbindingsreeks.
    • Ingesteld EventHubName op de event hub-naam (dat is de waarde van het entiteitspad).
  3. Open de opdrachtregel en navigeer naar de map waar uw TwitterClientCore-app zich bevindt. Gebruik de opdracht dotnet build om het project te bouwen. Gebruik vervolgens de opdracht dotnet run om de app uit te voeren. De app verzendt tweets naar uw Event Hubs.

Een Stream Analytics-taak maken

Nu tweet-gebeurtenissen in realtime worden gestreamd vanuit Twitter, kunt u een Stream Analytics-taak instellen om deze gebeurtenissen in realtime te analyseren.

  1. Navigeer in Azure Portal naar uw resourcegroep en selecteer + Toevoegen. Zoek vervolgens naar de Stream Analytics-taak en selecteer Maken.

  2. Geef de taak socialtwitter-sa-job een naam en geef een abonnement, resourcegroep en locatie op.

    Het is een goed idee om de taak en de Event Hub in dezelfde regio te plaatsen voor de beste prestaties en zodat u niet betaalt om gegevens over te dragen tussen regio's.

  3. Selecteer Maken. Navigeer vervolgens naar uw taak wanneer de implementatie is voltooid.

Geef de taakinvoer op

  1. Selecteer invoer in uw Stream Analytics-taak in het linkermenu onder Taaktopologie.

  2. Selecteer + Stream-invoer>toevoegen Event Hub. Vul het nieuwe invoerformulier in met de volgende informatie:

    Instelling Voorgestelde waarde Beschrijving
    Invoeralias TwitterStream Voer een alias in voor de invoer.
    Abonnement <Uw abonnement> Selecteer het Azure-abonnement dat u wilt gebruiken.
    Event Hubs-naamruimte asa-twitter-eventhub
    Event hub-naam socialtwitter-eh Kies Bestaande gebruiken. Selecteer vervolgens de Event Hub die u hebt gemaakt.
    Gebeurteniscompressietype Gzip Het gegevenscompressietype.

    Laat de resterende standaardwaarden staan en selecteer Opslaan.

De taakquery opgeven

Stream Analytics ondersteunt een eenvoudig, declaratief querymodel dat transformaties beschrijft. Raadpleeg Verwijzing voor Azure Stream Analytics-querytaal voor meer informatie over de taal. Deze handleiding helpt u bij het ontwerpen en testen van verschillende query's via Twitter-gegevens.

Als u het aantal vermeldingen tussen onderwerpen wilt vergelijken, kunt u een Tumblingvenster gebruiken om het aantal vermeldingen per onderwerp om de vijf seconden op te halen.

  1. Selecteer in uw taakoverzicht de optie Query bewerken rechtsboven in het vak Query. In Azure worden de invoer- en uitvoergegevens vermeld die zijn geconfigureerd voor de taak en kunt u een query maken om de invoerstroom te transformeren terwijl deze naar de uitvoer wordt verzonden.

  2. Wijzig de query in de query-editor in het volgende:

    SELECT *
    FROM TwitterStream
    
  3. Gebeurtenisgegevens uit de berichten moeten worden weergegeven in het voorbeeldvenster Invoer onder uw query. Zorg ervoor dat de weergave is ingesteld op JSON. Als u geen gegevens ziet, controleert u of uw gegevensgenerator gebeurtenissen naar uw Event Hub verzendt en of u Gzip hebt geselecteerd als het compressietype voor de invoer.

  4. Selecteer Testquery en let op de resultaten in het venster Testresultaten onder uw query.

  5. Wijzig de query in de code-editor in het volgende en selecteer Testquery:

    SELECT System.Timestamp as Time, text
    FROM TwitterStream
    WHERE text LIKE '%Azure%'
    
  6. Deze query retourneert alle tweets die het trefwoord Azure bevatten.

Een uitvoersink maken

U hebt nu een gebeurtenisstroom gedefinieerd, een Event Hub-invoer voor het opnemen van gebeurtenissen en een query voor het uitvoeren van een transformatie via de stream. De laatste stap is het definiëren van een uitvoersink voor de taak.

In deze handleiding schrijft u de samengevoegde tweetgebeurtenissen van de taakquery naar Azure Blob Storage. U kunt uw resultaten ook pushen naar Azure SQL Database, Azure Table Storage, Event Hubs of Power BI, afhankelijk van uw toepassingsbehoeften.

De taakuitvoer opgeven

  1. Selecteer Uitvoer in de sectie Taaktopologie in het linkernavigatiemenu.

  2. Selecteer + Toevoegen en Blob Storage/Data Lake Storage Gen2 op de pagina Uitvoer:

    • Uitvoeralias: Gebruik de naam TwitterStream-Output.
    • Importopties: Selecteer opslag in uw abonnementen.
    • Opslagaccount. Selecteer uw opslagaccount.
    • Container. Selecteer Nieuwe maken en voer in socialtwitter.
  3. Selecteer Opslaan.

Taak starten

Er wordt een taakinvoer, query en uitvoer opgegeven. U bent klaar om de Stream Analytics-taak te starten.

  1. Zorg ervoor dat de TwitterClientCore-toepassing wordt uitgevoerd.

  2. Selecteer Start in het taakoverzicht.

  3. Selecteer Nu op de pagina Taak starten voor de begintijd van de taakuitvoer en selecteer Vervolgens Start.

Ondersteuning krijgen

Probeer onze microsoft Q&A-vragenpagina voor Azure Stream Analytics voor meer hulp.

Volgende stappen