Analisi del riconoscimento del viso e del sentiment

Servizi di intelligenza artificiale di Azure
Azure Cosmos DB
Azure Cosmos DB
Azure HDInsight
Azure Synapse Analytics

Questo articolo presenta una soluzione per valutare l'opinione pubblica nei tweet. L'obiettivo è creare una pipeline di trasformazione che restituisce cluster di commenti e soggetti di tendenza.

Apache®, Apache NiFi, ApacheHadoop, Apache Hive e Apache Airflow sono marchi o marchi registrati di Apache Software Foundation nei Stati Uniti e/o in altri paesi. L'uso di questi marchi non implica alcuna approvazione da parte di Apache Software Foundation.

Architettura

Diagramma dell'architettura di una pipeline. I componenti includono servizi per l'inserimento, la trasformazione dei dati, l'archiviazione, l'analisi, l'intelligenza artificiale e la presentazione dei dati.

Scaricare un file di PowerPoint di questo diagramma.

Pipeline di inserimento

La pipeline di inserimento di Twitter è costituita da quattro fasi.

Raccogliere e inserire dati

I componenti seguenti inseriscono tweet:

  • File system distribuito hadoop (HDFS) (1)
  • Azure Synapse Analytics tramite Azure Data Factory (4)
  • Archiviazione BLOB di Azure (4)
  • Azure Cosmos DB (4)

Elaborazione dei dati

Durante l'elaborazione dei dati:

  • Il file JSON che contiene i dati del tweet viene trasformato in formato CSV (2).
  • Vengono create tabelle Apache Hive e Azure Synapse Analytics (2).
  • L'analisi del sentiment viene eseguita sui tweet (2).
  • Servizi cognitivi di Azure elabora immagini e identifica i visi umani (2).

Archiviare dati

I componenti seguenti archiviano i dati:

  • HDFS e Hive (3)
  • Azure Synapse Analytics (3)
  • Archiviazione BLOB (3)
  • Azure Cosmos DB (7)

Visualizzare i dati

I dashboard di Power BI visualizzano i dati dalle origini seguenti:

  • Hive (5)
  • Azure Synapse Analytics (6)
  • Azure Cosmos DB (8)

Flusso di dati

Diagramma dell'architettura che mostra il flusso di dati da Twitter, tramite l'elaborazione delle immagini e l'analisi del sentiment e l'archiviazione.

Scaricare un file di PowerPoint di questo diagramma.

Il flusso di dati della soluzione contiene tre parti principali.

Inserire tweet

Il file con i dati del tweet, in formato JSON, viene trasformato in formato CSV. Gli attributi vengono estratti dai dati JSON da usare come variabili per la composizione CSV.

Elaborare immagini

L'analisi del sentiment viene eseguita su tweet contenenti immagini. Dopo aver raccolto le immagini, i processi di rilevamento viso vengono eseguiti sulle immagini. Tutti i visi umani riconosciuti vengono archiviati in HDInsight.

Eseguire l'analisi del sentiment

Un algoritmo Natural Language Toolkit (NLTK) viene eseguito nei messaggi inseriti. L'analisi del sentiment viene eseguita sul testo nei tweet. I risultati vengono archiviati in formato CSV in una tabella Hive e i dati JSON vengono archiviati in Azure Cosmos DB.

Componenti

Diagramma dell'architettura che mostra i componenti nei livelli di inserimento, archiviazione ed elaborazione della soluzione.

Scaricare un file di PowerPoint di questo diagramma.

  • Data Factory offre servizi di trasformazione batch per diverse origini e sink. Come componente chiave dell'elaborazione dei Big Data, Data Factory consente di semplificare i carichi di lavoro ETL (extract-transform-load). Data Factory gestisce anche le complessità e le sfide di scalabilità dell'integrazione dei Big Data.

  • NiFi automatizza il flusso di dati tra i sistemi software. NiFi offre funzionalità di sicurezza, un'architettura estendibile e un modello di scalabilità flessibile. Gestisce più origini e più sink con diversi tipi di processori. La funzionalità NiFi include:

    • Esecuzione di trasformazioni di streaming.
    • Connessione di sistemi disaccoppiati nel cloud.
    • Spostamento dei dati in e fuori archiviazione di Azure e altri archivi dati.
    • Integrazione di applicazioni edge-to-cloud e cloud ibride con i servizi di Azure.
    • Fornire funzionalità di provenienza dei dati affidabili.
  • HDInsight è una piattaforma Hadoop per i dati e l'analisi per gli ambienti locali. HDInsight può inserire, archiviare e elaborare i dati in tempo reale e in batch. HDInsight è basato su Hortonworks Data Platform (HDP), un framework open source per l'archiviazione e l'elaborazione di set di dati di grandi dimensioni provenienti da più origini.

  • Azure Synapse Analytics è un servizio di analisi per data warehouse e sistemi di Big Data. Centralizza i dati nel cloud per semplificare l'accesso.

  • Azure Cosmos DB è un database NoSQL completamente gestito per lo sviluppo di app moderne. Fornendo tempi di risposta a millisecondi a cifre singole e scalabilità automatica e istantanea, Azure Cosmos DB garantisce velocità in qualsiasi scala. La disponibilità supportata dal contratto di servizio e la sicurezza di livello aziendale offrono continuità aziendale.

  • Servizi cognitivi è costituito da servizi basati sul cloud che forniscono funzionalità di intelligenza artificiale. Le API REST e gli SDK della libreria client consentono di creare intelligenza cognitiva nelle app anche se non si dispone di competenze di intelligenza artificiale o di data science.

  • Power BI è un servizio di analisi aziendale che fa parte di Microsoft Power Platform. Power BI offre visualizzazioni interattive e funzionalità di business intelligence. La sua interfaccia facile da usare consente agli utenti di creare report e dashboard personalizzati.

Alternativi

È possibile sostituire le alternative per la maggior parte dei componenti della soluzione. Ad esempio:

  • Anziché un cluster HDInsight, è possibile usare un cluster Cloudera.
  • È possibile usare Azure Databricks anziché Data Factory. Azure Databricks può trasformare e archiviare i dati, ma è anche possibile usarlo come agente di orchestrazione. Un'altra alternativa consiste nell'usare entrambi i servizi. Molte soluzioni che usano Data Factory usano anche Azure Databricks.
  • Invece di Nifi, è possibile usare Apache Airflow come strumento del flusso di lavoro che esegue script ETL.
  • Per il repository file principale, è possibile usare Elasticsearch al posto di Azure Cosmos DB.
  • Per i servizi dashboard, è possibile usare Kibana anziché Power BI.

Dettagli dello scenario

La personalizzazione è importante per le aziende, perché il valore di un'azienda dipende dall'immagine del mercato di tale azienda. Quando l'azienda si sposta per prendere decisioni predittive e basate sui dati, anziché decisioni reattive, è necessario monitorare e comprendere cosa accade in tempo reale. Per ottenere un vantaggio competitivo, è necessario usare l'analisi dei social media per identificare e comprendere l'opinione pubblica. Oltre all'identificazione del sentiment nei tweet, è anche possibile scegliere di riconoscere i visi e le immagini.

Questa soluzione misura l'opinione pubblica nei tweet. Una pipeline di trasformazione restituisce cluster di commenti e soggetti di tendenza. La pipeline offre valore integrando facilmente soluzioni open source come Apache NiFi e Azure HDInsight con servizi di analisi del sentiment di Azure e riconoscimento viso. La soluzione si applica a un'ampia gamma di settori: il monitoraggio dei social network non è limitato a un settore.

Potenziali casi d'uso

Questa soluzione è ideale per qualsiasi area che monitora la personalizzazione sui social network, tra cui:

  • Marketing
  • Comunicazioni
  • Politica
  • Media e intrattenimento
  • Proprietà e strutture
  • Servizio alimentare (viaggi e ospitalità)
  • Fashion
  • Retail

Considerazioni

Queste considerazioni implementano i pilastri di Azure Well-Architected Framework, un set di set di set di guide che è possibile usare per migliorare la qualità di un carico di lavoro. Per altre informazioni, vedere Microsoft Azure Well-Architected Framework.

A seconda degli strumenti di elaborazione e del numero di origini usate, è possibile semplificare le trasformazioni e le visualizzazioni della soluzione. Se possibile, prendere in considerazione l'uso di una pipeline di base con un sink. Anziché usare più origini e più dashboard, inserire tale pipeline in un singolo dashboard.

Questo esempio usa il maggior numero possibile di servizi. Tramite questo approccio è possibile confrontare le prestazioni e le esperienze disponibili con Power BI in diverse origini e tipi di dati.

Affidabilità

L'affidabilità garantisce che l'applicazione possa soddisfare gli impegni che l'utente ha preso con i clienti. Per altre informazioni, vedere Panoramica del pilastro di affidabilità.

Negli ambienti di produzione valutare l'obiettivo del tempo di ripristino (RTO) e l'obiettivo del punto di ripristino (RPO). Tutte le decisioni e gli scenari di ripristino di emergenza dipendono da tali valutazioni.

Nella maggior parte dei casi è necessario un servizio a disponibilità elevata per ogni strumento. Per un ripristino di emergenza efficace, è importante ridurre l'RTO. Tuttavia, se si dispone di disponibilità elevata, è possibile evitare scenari di emergenza. Ad esempio, è possibile creare servizi in un'altra area.

Sicurezza

La sicurezza offre garanzie contro attacchi intenzionali e l'abuso dei dati e dei sistemi preziosi. Per altre informazioni, vedere Panoramica del pilastro della sicurezza.

Mirare a una forte postura di sicurezza usando un sistema basato su identità e strumenti nativi di Azure. Per i componenti esterni, usare strumenti di autenticazione esterni come Kerberos per garantire un carico di lavoro affidabile e sicuro.

Ottimizzazione dei costi

Per informazioni sulla creazione di un carico di lavoro conveniente, vedere Panoramica del pilastro dell'ottimizzazione dei costi.

Eccellenza operativa

L'eccellenza operativa copre i processi operativi che distribuiscono un'applicazione e la mantengono in esecuzione nell'ambiente di produzione. Per altre informazioni, vedere Panoramica del pilastro dell'eccellenza operativa.

Centralizzare i log di monitoraggio da tutti i servizi. La soluzione usa strumenti e strumenti esterni nativi di Azure. Per ottenere una visione olistica di tutti i sistemi, integrare i dati di monitoraggio da tutti gli strumenti.

Efficienza delle prestazioni

L'efficienza delle prestazioni è la capacità di ridimensionare il carico di lavoro soddisfare in modo efficiente le richieste poste dagli utenti. Per altre informazioni, vedere Panoramica dell'efficienza delle prestazioni.

Poiché la soluzione usa più origini, considerare la compressione come parte del processo. Considerare anche i formati di file usati. Configurare Azure Cosmos DB per ottenere un compromesso tra livelli di latenza e coerenza. Tuttavia, monitorare e valutare le prestazioni di Azure Cosmos DB in tutto il processo per impedire che il componente diventi un collo di bottiglia. Per ridurre la latenza, prendere in considerazione il partizionamento dei dati in base alla posizione o lo spostamento di origini dati vicino a dove vengono usate.

Autori di contributi

Questo articolo viene gestito da Microsoft. È stato originariamente scritto dai collaboratori seguenti.

Autori principali:

Passaggi successivi