Gezichtsherkenning en sentimentanalyse

Azure AI services
Azure Cosmos DB
Azure Cosmos DB
Azure HDInsight
Azure Synapse Analytics

Dit artikel biedt een oplossing voor het meten van de publieke opinie in tweets. Het doel is om een transformatiepijplijn te maken die clusters met opmerkingen en trending onderwerpen uitvoert.

Apache®, Apache NiFi, Apache Hadoop, Apache Hive en Apache Airflow zijn gedeponeerde handelsmerken of handelsmerken van Apache Software Foundation in de Verenigde Staten en/of andere landen. Het gebruik van deze markeringen impliceert geen goedkeuring door De Apache Software Foundation.

Architectuur

Architectuurdiagram van een pijplijn. Onderdelen omvatten services voor opname, gegevenstransformatie, opslag, analyse, AI en gegevenspresentatie.

Download een PowerPoint-bestand van dit diagram.

Opnamepijplijn

De Twitter-opnamepijplijn bestaat uit vier fasen.

Gegevens verzamelen en opnemen

De volgende onderdelen nemen tweets op:

  • Hadoop Distributed File System (HDFS) (1)
  • Azure Synapse Analytics via Azure Data Factory (4)
  • Azure Blob Storage (4)
  • Azure Cosmos DB (4)

Gegevens verwerken

Tijdens gegevensverwerking:

  • Het JSON-bestand met tweetgegevens wordt omgezet in CSV-indeling (2).
  • Apache Hive- en Azure Synapse Analytics-tabellen worden gemaakt (2).
  • Sentimentanalyse wordt uitgevoerd op de tweets (2).
  • Azure Cognitive Services verwerkt afbeeldingen en identificeert menselijke gezichten (2).

Opgeslagen gegevens

In de volgende onderdelen worden gegevens opgeslagen:

  • HDFS en Hive (3)
  • Azure Synapse Analytics (3)
  • Blob Storage (3)
  • Azure Cosmos DB (7)

Gegevens visualiseren

In Power BI-dashboards worden gegevens uit de volgende bronnen weergegeven:

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

Gegevensstroom

Architectuurdiagram met de stroom van gegevens van Twitter, via afbeeldingsverwerking en sentimentanalyse, en naar opslag.

Download een PowerPoint-bestand van dit diagram.

De gegevensstroom van de oplossing bestaat uit drie hoofdonderdelen.

Tweets opnemen

Het bestand met de tweetgegevens, dat de JSON-indeling heeft, wordt omgezet in een CSV-indeling. Kenmerken worden geëxtraheerd uit de JSON-gegevens om te gebruiken als variabelen voor de CSV-samenstelling.

Afbeeldingen verwerken

Sentimentanalyse wordt uitgevoerd op tweets die afbeeldingen bevatten. Nadat de afbeeldingen zijn verzameld, worden gezichtsdetectieprocessen uitgevoerd op de afbeeldingen. Alle menselijke gezichten die worden herkend, worden opgeslagen in HDInsight.

Sentimentanalyse uitvoeren

Een NLTK-algoritme (Natural Language Toolkit) wordt uitgevoerd op de opgenomen berichten. Sentimentanalyse wordt uitgevoerd op de tekst in de tweets. De resultaten worden opgeslagen in CSV-indeling in een Hive-tabel en de JSON-gegevens worden opgeslagen in Azure Cosmos DB.

Onderdelen

Architectuurdiagram met de onderdelen in de opname-, opslag- en verwerkingslagen van de oplossing.

Download een PowerPoint-bestand van dit diagram.

  • Data Factory biedt batchtransformatieservices voor verschillende bronnen en sinks. Data Factory is een belangrijk onderdeel van de verwerking van big data en helpt etl-workloads (extract-transform-load) te vereenvoudigen. Data Factory verwerkt ook de complexiteit en schaaluitdagingen van de integratie van big data.

  • NiFi automatiseert de gegevensstroom tussen softwaresystemen. NiFi biedt beveiligingsfuncties, een uitbreidbare architectuur en een flexibel schaalmodel. Het verwerkt meerdere bronnen en meerdere sinks met verschillende typen processors. NiFi-functionaliteit omvat:

    • Streamingtransformaties uitvoeren.
    • Losgekoppelde systemen in de cloud verbinden.
    • Gegevens verplaatsen naar en uit Azure Storage en andere gegevensarchieven.
    • Edge-to-cloud- en hybride cloudtoepassingen integreren met Azure-services.
    • Het bieden van robuuste mogelijkheden voor gegevensvergelijking.
  • HDInsight is een Hadoop-platform voor gegevens en analyses voor on-premises omgevingen. HDInsight kan gegevens veilig opnemen, opslaan en verwerken in realtime en in batches. HDInsight is gebouwd op Hortonworks Data Platform (HDP), een opensource-framework voor gedistribueerde opslag en verwerking van grote gegevenssets die afkomstig zijn van meerdere bronnen.

  • Azure Synapse Analytics is een analyseservice voor datawarehouses en big data-systemen. Het centraliseert gegevens in de cloud voor eenvoudige toegang.

  • Azure Cosmos DB is een volledig beheerde NoSQL-database voor het ontwikkelen van moderne apps. Azure Cosmos DB biedt reactietijden van milliseconden met één cijfer en automatische en directe schaalbaarheid om snelheid op elke schaal te garanderen. De beschikbaarheid met SLA-ondersteuning en beveiliging op bedrijfsniveau bieden bedrijfscontinuïteit.

  • Cognitive Services bestaat uit cloudservices die AI-functionaliteit bieden. Met de REST API's en clientbibliotheek-SDK's kunt u cognitieve intelligentie in apps inbouwen, zelfs als u niet over AI- of data science-vaardigheden beschikt.

  • Power BI is een business analytics-service die deel uitmaakt van Microsoft Power Platform. Power BI biedt interactieve visualisaties en mogelijkheden voor business intelligence. Dankzij de gebruiksvriendelijke interface kunnen gebruikers hun eigen rapporten en dashboards maken.

Alternatieven

U kunt alternatieven voor de meeste oplossingsonderdelen vervangen. Bijvoorbeeld:

  • In plaats van een HDInsight-cluster kunt u een Cloudera-cluster gebruiken.
  • U kunt Azure Databricks gebruiken in plaats van Data Factory. Azure Databricks kan gegevens transformeren en opslaan, maar u kunt deze ook gebruiken als orchestrator. Een ander alternatief is om beide services te gebruiken. Veel oplossingen die gebruikmaken van Data Factory maken ook gebruik van Azure Databricks.
  • In plaats van Nifi kunt u Apache Airflow gebruiken als een werkstroomhulpprogramma waarmee ETL-scripts worden uitgevoerd.
  • Voor uw hoofdbestandsopslagplaats kunt u Elasticsearch gebruiken in plaats van Azure Cosmos DB.
  • Voor dashboardservices kunt u Kibana gebruiken in plaats van Power BI.

Scenariodetails

Branding is belangrijk voor bedrijven, omdat de waarde van een bedrijf afhankelijk is van het imago van de markt van dat bedrijf. Wanneer uw bedrijf voorspellende, gegevensgestuurde beslissingen neemt in plaats van reactieve beslissingen, moet u in realtime controleren en begrijpen wat er gebeurt. Om een concurrentievoordeel te behalen, moet u analyse van sociale media gebruiken om de publieke opinie te identificeren en te begrijpen. Naast het identificeren van sentiment in tweets, kunt u er ook voor kiezen om gezichten en afbeeldingen te herkennen.

Deze oplossing meet de publieke opinie in tweets. Een transformatiepijplijn voert clusters met opmerkingen en trending onderwerpen uit. De pijplijn levert waarde door naadloos opensource-oplossingen zoals Apache NiFi en Azure HDInsight te integreren met Azure-sentimentanalyse- en gezichtsherkenningsservices. De oplossing is van toepassing op een breed scala aan branches: het bewaken van sociale netwerken is niet beperkt tot één sector.

Potentiële gebruikscases

Deze oplossing is ideaal voor elk gebied dat de huisstijl op sociale netwerken bewaakt, waaronder:

  • Marketing
  • Communicatie
  • Politiek
  • Media en entertainment
  • Onroerend goed en faciliteiten
  • Foodservice (reizen en gastvrijheid)
  • Fashion
  • Retail

Overwegingen

Deze overwegingen implementeren de pijlers van het Azure Well-Architected Framework, een reeks richtlijnen die u kunt gebruiken om de kwaliteit van een workload te verbeteren. Zie Microsoft Azure Well-Architected Framework voor meer informatie.

Afhankelijk van de verwerkingshulpprogramma's en het aantal bronnen dat u gebruikt, kunt u de transformaties en visualisaties van de oplossing mogelijk stroomlijnen. Overweeg indien mogelijk een eenvoudige pijplijn met één sink te gebruiken. In plaats van meerdere bronnen en meerdere dashboards te gebruiken, voert u die pijplijn in één dashboard in.

In dit voorbeeld worden zoveel mogelijk services gebruikt. Met deze benadering kunt u de prestaties en ervaringen die u hebt met Power BI vergelijken in verschillende bronnen en gegevenstypen.

Betrouwbaarheid

Betrouwbaarheid zorgt ervoor dat uw toepassing kan voldoen aan de toezeggingen die u aan uw klanten doet. Zie Overzicht van de betrouwbaarheidspijler voor meer informatie.

Evalueer in productieomgevingen uw beoogde hersteltijd (RTO) en RPO (Recovery Point Objective). Alle beslissingen en scenario's voor herstel na noodgevallen zijn afhankelijk van deze evaluaties.

In de meeste gevallen hebt u voor elk hulpprogramma een service met hoge beschikbaarheid nodig. Voor effectief herstel na noodgevallen is het belangrijk om uw RTO te verminderen. Maar als u hoge beschikbaarheid hebt, kunt u noodscenario's vermijden. U kunt bijvoorbeeld services maken in een andere regio.

Beveiliging

Beveiliging biedt garanties tegen opzettelijke aanvallen en misbruik van uw waardevolle gegevens en systemen. Zie Overzicht van de beveiligingspijler voor meer informatie.

Streven naar een sterke beveiligingspostuur met behulp van een systeem op basis van identiteit en systeemeigen Azure-hulpprogramma's. Voor externe onderdelen gebruikt u hulpprogramma's voor externe verificatie, zoals Kerberos, om een robuuste en veilige workload te garanderen.

Kostenoptimalisatie

Raadpleeg Overzicht van de pijler kostenoptimalisatie voor informatie over het maken van een kosteneffectieve workload.

Operationele uitmuntendheid

Operationele uitmuntendheid omvat de operationele processen die een toepassing implementeren en deze in productie houden. Zie Overzicht van de pijler operationele uitmuntendheid voor meer informatie.

Centraliseer de bewakingslogboeken van alle services. De oplossing maakt gebruik van externe hulpprogramma's en hulpprogramma's die systeemeigen zijn voor Azure. Als u een holistische weergave van alle systemen wilt bereiken, integreert u bewakingsgegevens van alle hulpprogramma's.

Prestatie-efficiëntie

Prestatie-efficiëntie is de mogelijkheid om op efficiënte wijze uw werkbelasting te schalen om te voldoen aan de vereisten die gebruikers eraan stellen. Zie Overzicht van prestatie-efficiëntiepijler voor meer informatie.

Omdat de oplossing gebruikmaakt van meerdere bronnen, kunt u compressie overwegen als onderdeel van het proces. Houd ook rekening met de bestandsindelingen die u gebruikt. Configureer Azure Cosmos DB om een afweging te maken tussen latentie- en consistentieniveaus. Maar bewaak en evalueer de prestaties van Azure Cosmos DB gedurende het hele proces om te voorkomen dat dat onderdeel een knelpunt wordt. Als u de latentie wilt verlagen, kunt u overwegen om gegevens te partitioneren op locatie of gegevensbronnen te verplaatsen in de buurt van waar u ze gebruikt.

Medewerkers

Dit artikel wordt onderhouden door Microsoft. Het is oorspronkelijk geschreven door de volgende inzenders.

Hoofdauteurs:

Volgende stappen