Analisi dei social media con Analitica di Azure Stream

Questo articolo illustra come creare una soluzione di analisi del sentiment dei social media portando gli eventi X in tempo reale in Hub eventi di Azure e quindi analizzandoli usando Stream Analitica. Si scrive una query Analitica di Flusso di Azure per analizzare i dati e archiviare i risultati per usarli in un secondo momento o creare un dashboard di Power BI per fornire informazioni dettagliate in tempo reale.

Gli strumenti di analisi dei social media permettono alle organizzazioni di determinare gli argomenti di tendenza, vale a dire gli argomenti e gli atteggiamenti che registrano un numero elevato di post sui social media. L'analisi del sentiment, detta anche opinion mining, usa gli strumenti di analisi dei social media per determinare le attitudini rispetto a un prodotto o un'idea.

L'analisi delle tendenze X in tempo reale è un ottimo esempio di uno strumento di analitica perché il modello di sottoscrizione hashtag consente di ascoltare parole chiave specifiche (hashtag) e sviluppare l'analisi del sentiment del feed.

Scenario: analisi del sentiment su social media in tempo reale

Un'azienda che dispone di un sito web multimediale di notizie è interessata a ottenere un vantaggio rispetto ai suoi concorrenti grazie al contenuto del sito immediatamente rilevante per i suoi lettori. L'azienda usa l'analisi dei social media su argomenti rilevanti per i lettori eseguendo l'analisi del sentiment in tempo reale dei dati X.

Per identificare gli argomenti di tendenza in tempo reale su X, l'azienda deve analitica in tempo reale sul volume dei tweet e sul sentiment per gli argomenti chiave.

Prerequisiti

In questa guida pratica si usa un'applicazione client che si connette a X e cerca tweet con determinati hashtag (che è possibile impostare). L'elenco seguente fornisce i prerequisiti per l'esecuzione dell'applicazione e l'analisi dei tweet usando Azure Streaming Analitica.

Ecco l'architettura della soluzione che verrà implementata.

Diagramma che mostra diversi servizi e applicazioni usati per compilare la soluzione.

Creare un hub eventi per l'input di streaming

L'applicazione di esempio genera eventi e li inserisce in un hub eventi. Hub eventi di Azure è il metodo preferito per l'inserimento di eventi per stream Analitica. Per altre informazioni, vedere la documentazione di Hub eventi di Azure.

Creare uno spazio dei nomi e un hub eventi di Hub eventi

Seguire le istruzioni riportate in Avvio rapido: Creare un hub eventi usando portale di Azure per creare uno spazio dei nomi di Hub eventi e un hub eventi denominato socialx-eh. È possibile usare un nome diverso. In questo caso, tenerne traccia, poiché sarà necessario in un secondo momento. Non sono richieste altre impostazioni per l'hub eventi.

Concedere l'accesso all'hub eventi

Prima che un processo possa inviare dati a un hub eventi, l'hub necessita che siano configurati criteri che consentano l'accesso. I criteri di accesso generano una stringa di connessione che include informazioni di autorizzazione.

  1. Nella barra di spostamento a sinistra dello spazio dei nomi di Hub eventi selezionare Hub eventi, che si trova nella sezione Entità . Quindi, selezionare l'hub eventi appena creato.

  2. Nella barra di spostamento sul lato sinistro selezionare Criteri di accesso condiviso disponibili in Impostazioni.

    Nota

    È disponibile un'opzione Criteri di accesso condiviso per lo spazio dei nomi e per l'hub eventi. Assicurarsi di lavorare nel contesto dell'hub eventi, non nello spazio dei nomi.

  3. Nella pagina Criteri di accesso condiviso selezionare + Aggiungi sulla barra dei comandi. Immettere quindi socialx-access per il nome del criterio e selezionare la casella di controllo Gestisci.

  4. Seleziona Crea.

  5. Dopo aver distribuito i criteri, selezionare il criterio dall'elenco dei criteri di accesso condiviso.

  6. Individuare la casella con l'etichetta Connection string primar-key e fare clic sul pulsante Copia accanto alla stringa di connessione.

  7. Incollare la stringa di connessione in un editor di testo. Sarà necessario usare questa stringa nella sezione successiva, dopo aver apportato alcune piccole modifiche.

La stringa di connessione ha un aspetto simile al seguente:

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

Si noti che la stringa di connessione contiene più coppie chiave-valore, separate da punti e virgola: Endpoint, SharedAccessKeyName, SharedAccessKey e EntityPath.

Nota

Per sicurezza, le parti della stringa di connessione nell'esempio sono state rimosse.

Configurare e avviare l'applicazione client X

L'applicazione client ottiene gli eventi tweet direttamente da X. A tale scopo, è necessaria l'autorizzazione per chiamare le API di Twitter Streaming. Per configurare tale autorizzazione, creare un'applicazione in X, che genera credenziali univoce, ad esempio un token OAuth. Si può quindi configurare l'applicazione client in modo da usare queste credenziali quando esegue chiamate API.

Creare un'applicazione X

Se non si ha già un'applicazione X che è possibile usare per questa guida pratica, è possibile crearne una. È necessario avere già un account X.

Nota

Il processo esatto in X per la creazione di un'applicazione e il recupero di chiavi, segreti e token possono cambiare. Se queste istruzioni non corrispondono a quanto visualizzato nel sito X, vedere la documentazione per sviluppatori X.

  1. Da un Web browser passare a X Developers (Sviluppatori X), creare un account per sviluppatore e selezionare Crea un'app. Potrebbe essere visualizzato un messaggio che informa che è necessario richiedere un account per sviluppatore X. Eseguire questa operazione e, dopo l'approvazione della richiesta, si dovrebbe ricevere un messaggio di posta elettronica di conferma. L'approvazione di un account di sviluppatore potrebbe richiedere diversi giorni.

    Screenshot che mostra il pulsante Crea un'app.

  2. Nella pagina Create an application (Crea applicazione) specificare i dettagli per la nuova app e quindi selezionare Create your Twitter application (Crea applicazione Twitter).

    Screenshot che mostra il riquadro Dettagli app in cui è possibile immettere i valori per l'app.

  3. Nella pagina dell'applicazione selezionare Keys and Tokens (Chiavi e token) e copiare i valori di Consumer API Key (Chiave API consumer) e Consumer API Secret Key (Chiave privata API consumer). Selezionare inoltre Create (Crea) in Access Token and Access Token Secret (Token di accesso e Segreto del token di accesso) per generare i token di accesso. Copiare i valori di Access Token (Token di accesso) e Access Token Secret (Segreto del token di accesso).

    Salvare i valori recuperati per l'applicazione X. È necessario usare questi valori più avanti.

Nota

Le chiavi e i segreti per l'applicazione X forniscono l'accesso all'account X. Trattare queste informazioni come sensibili, come si fa con la password X. Evitare, ad esempio, di incorporare queste informazioni in un'applicazione che si prevede di distribuire ad altri utenti.

Configurare l'applicazione client

È stata creata un'applicazione client che si connette ai dati X usando le API di streaming di Twitter per raccogliere gli eventi tweet relativi a un set specifico di argomenti.

Prima di essere eseguita, l'applicazione richiede all'utente determinate informazioni, ad esempio le chiavi di Twitter e la stringa di connessione all'hub eventi.

  1. Verificare di aver scaricato il file dell'applicazione TwitterClientCore, come indicato nei prerequisiti.

  2. Usare un editor di testo per aprire il file App.config. Apportare le modifiche seguenti all'elemento <appSettings>:

    • Per oauth_consumer_key impostare la chiave utente di Twitter (chiave API).
    • Per oauth_consumer_secret impostare il segreto utente di Twitter (chiave privata API).
    • Per oauth_token impostare il token di accesso di Twitter.
    • Per oauth_token_secret impostare il segreto del token di accesso di Twitter.
    • Per EventHubNameConnectionString impostare la stringa di connessione.
    • Per EventHubName impostare il nome dell'hub eventi, ovvero il valore del percorso dell'entità.
  3. Aprire la riga di comando e passare alla directory che contiene l'app TwitterClientCore. Per compilare il progetto, usare il comando dotnet build. Quindi usare il comando dotnet run per eseguire l'app. L'app invia tweet a Hub eventi.

Creare un processo di Analisi di flusso.

Ora che gli eventi tweet vengono trasmessi in tempo reale da X, è possibile configurare un processo di Analitica Stream per analizzare questi eventi in tempo reale.

  1. Passare al gruppo di risorse nel portale di Azure e selezionare + Aggiungi. Cercare quindi processo analisi di flusso e selezionare Crea.

  2. Assegnare il nome socialx-sa-job al processo, specificare una sottoscrizione, un gruppo di risorse e un percorso.

    È consigliabile posizionare il processo e l'hub eventi nella stessa area per ottenere prestazioni ottimali ed evitare di pagare il trasferimento dei dati tra aree.

  3. Seleziona Crea. Quindi, al termine della distribuzione, passare al processo.

Specificare l'input del processo

  1. Nel processo di Analisi di flusso selezionare Input dal menu a sinistra sotto a Topologia processo.

  2. Selezionare + Aggiungi hub eventi di input>del flusso. Compilare il modulo del nuovo input con le informazioni seguenti:

    Impostazione Valore consigliato Descrizione
    Alias di input TwitterStream Immettere un alias per l'input.
    Subscription <Sottoscrizione in uso> Seleziona la sottoscrizione di Azure da usare.
    Spazio dei nomi Hub eventi asa-x-eventhub
    Nome hub eventi socialx-eh Scegliere Usa esistente. Selezionare quindi l'hub eventi creato.
    Tipo di compressione eventi Gzip Il tipo di compressione dati.

    Lasciare i valori predefiniti restanti e selezionare Salva.

Specificare la query del processo

Analisi di flusso supporta un semplice modello di query dichiarativa per descrivere le trasformazioni. Per altre informazioni sul linguaggio, vedere le Informazioni di riferimento sul linguaggio di query di analisi dei flussi di Azure. Questa guida pratica consente di creare e testare diverse query sui dati X.

Per confrontare il numero di menzioni tra gli argomenti, è possibile usare una finestra a cascata per ottenere il conteggio delle menzioni per argomento ogni cinque secondi.

  1. Nel processo Panoramica selezionare Modifica query accanto all'angolo in alto a destra della casella Query. Azure elenca gli input e gli output configurati per il processo e consente di creare una query per trasformare il flusso di input nel momento in cui viene inviato all'output.

  2. Modificare la query nell'editor di query nel modo seguente:

    SELECT *
    FROM TwitterStream
    
  3. I dati eventi dei messaggi devono essere visualizzati nella finestra di Anteprima input sotto la query. Assicurarsi che la Vista sia impostata su JSON. Se non vengono visualizzati dati, assicurarsi che il generatore di dati invii eventi all'hub eventi e che Gzip sia stato selezionato come tipo di compressione per l'input.

  4. Selezionare Esegui test della queryosservare i risultati nella finestra Risultati test sotto la query.

  5. Modificare come indicato di seguito la query nell'editor di codice e scegliere Esegui test della query:

    SELECT System.Timestamp as Time, text
    FROM TwitterStream
    WHERE text LIKE '%Azure%'
    
  6. Questa query restituisce tutti i tweet che includono la parola chiave Azure.

Creare un sink di output

A questo punto è stato definito un flusso di eventi, un input dell'hub eventi per inserire eventi e una query per eseguire una trasformazione nel flusso. L'ultimo passaggio consiste nel definire un sink di output per il processo.

In questa guida pratica gli eventi tweet aggregati ottenuti dalla query del processo vengono scritti nell'archiviazione BLOB di Azure. È anche possibile eseguire il push dei risultati al database SQL di Azure, ad Archiviazione tabelle di Azure, a Hub eventi o a Power BI, in base alle esigenze specifiche dell'applicazione.

Specificare l'output del processo

  1. Nella sezione Topologia processo nel menu di spostamento a sinistra selezionare Output.

  2. Nella pagina Output selezionare + Aggiungi e Archiviazione BLOB/Data Lake Storage Gen2:

    • Alias di output: usare il nome TwitterStream-Output.
    • Opzioni di importazione: selezionare Selezionare l'archiviazione dalle sottoscrizioni.
    • Account di archiviazione. Selezionare l'account di archiviazione.
    • Contenitore. Selezionare Crea nuovo e immettere socialx.
  3. Seleziona Salva.

Avviare il processo

Sono stati specificati l'input del processo, la query e l'output. Si è pronti per avviare il processo di Analitica Stream.

  1. Verificare che l'applicazione TwitterClientCore sia in esecuzione.

  2. Nella panoramica del processo selezionare Avvia.

  3. Nella pagina Avvia processo, per Ora di inizio dell'output del processo, selezionare Ora e quindi selezionare Avvia.

Ottenere supporto

Per maggiore supporto, provare la Pagina delle domande di Domande e risposte Microsoft per Analisi di flusso di Azure.

Passaggi successivi