Editar

Share via


Reconhecimento facial e análise de sentimento

Serviços de IA do Azure
Azure Cosmos DB
Azure Cosmos DB
Azure HDInsight
Azure Synapse Analytics

Este artigo apresenta uma solução para medir a opinião pública em tweets. O objetivo é criar um pipeline de transformação que gere clusters de comentários e assuntos de tendência.

Apache®, Apache NiFi, Apache Hadoop, Apache Hive e Apache Airflow são marcas registradas ou marcas comerciais da Apache Software Foundation nos Estados Unidos e/ou em outros países. O uso desta marca não implica aprovação por parte da Apache Software Foundation.

Arquitetura

Architecture diagram of a pipeline. Components include services for ingestion, data transformation, storage, analytics, AI, and data presentation.

Baixe um arquivo PowerPoint desse diagrama.

Pipeline de ingestão

O pipeline de ingestão do Twitter consiste em quatro etapas.

Coletar e ingerir dados

Os seguintes componentes ingerem tweets:

  • Sistema de Arquivos Distribuído do Hadoop (HDFS) (1)
  • Azure Synapse Analytics via Azure Data Factory (4)
  • Armazenamento de Blobs do Azure (4)
  • Azure Cosmos DB (4)

Processar dados

Durante o processamento de dados:

  • O arquivo JSON que contém dados de tweet é transformado no formato CSV (2).
  • As tabelas Apache Hive e Azure Synapse Analytics são criadas (2).
  • A análise de sentimento é executada nos tweets (2).
  • Os Serviços Cognitivos do Azure processam imagens e identificam rostos humanos (2).

Armazenar dados

Os seguintes componentes armazenam dados:

  • HDFS e Hive (3)
  • Azure Synapse Analytics (3)
  • Armazenamento de blobs (3)
  • Azure Cosmos DB (7)

Visualizar dados

Os painéis do Power BI exibem dados das seguintes fontes:

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

Fluxo de dados

Architecture diagram that shows the flow of data from Twitter, through image processing and sentiment analysis, and into storage.

Baixe um arquivo PowerPoint desse diagrama.

O fluxo de dados da solução contém três partes principais.

Ingerir tweets

O arquivo com os dados do tweet, que está no formato JSON, é transformado no formato CSV. Os atributos são extraídos dos dados JSON para usar como variáveis para a composição CSV.

Processar imagens

A análise de sentimento é executada em tweets que contêm imagens. Depois que as imagens são coletadas, os processos de detecção de rosto são executados nas imagens. Todos os rostos humanos reconhecidos são armazenados no HDInsight.

Executar a análise de sentimento

Um algoritmo Natural Language Toolkit (NLTK) é executado nas mensagens ingeridas. A análise de sentimento é executada no texto dos tweets. Os resultados são armazenados no formato CSV em uma tabela do Hive e os dados JSON são armazenados no Azure Cosmos DB.

Componentes

Architecture diagram that shows the components in the ingestion, storage, and processing layers of the solution.

Baixe um arquivo PowerPoint desse diagrama.

  • O Data Factory fornece serviços de transformação em lote para várias fontes e coletores. Como um componente-chave do processamento de big data, o Data Factory ajuda a simplificar as cargas de trabalho de ETL (extract-transform-load). O Data Factory também lida com as complexidades e os desafios de escala da integração de big data.

  • O NiFi automatiza o fluxo de dados entre sistemas de software. O NiFi oferece recursos de segurança, uma arquitetura extensível e um modelo de dimensionamento flexível. Ele lida com várias fontes e vários coletores com diferentes tipos de processadores. A funcionalidade NiFi inclui:

    • Executando transformações de streaming.
    • Conectando sistemas separados na nuvem.
    • Inserindo e retirando dados do Armazenamento do Azure e de outros armazenamentos de dados.
    • Integração de aplicativos de borda para nuvem e nuvem híbrida com os serviços do Azure.
    • Fornecendo recursos robustos de procedência de dados.
  • O HDInsight é uma plataforma Hadoop para dados e análises para ambientes locais. O HDInsight pode ingerir, armazenar e processar dados com segurança em tempo real e em lotes. O HDInsight foi criado com base na Hortonworks Data Platform (HDP), uma estrutura de código aberto para armazenamento distribuído e processamento de grandes conjuntos de dados provenientes de várias fontes.

  • O Azure Synapse Analytics é um serviço de análise para data warehouses e sistemas de big data. Ele centraliza os dados na nuvem para facilitar o acesso.

  • O Azure Cosmos DB é um banco de dados NoSQL totalmente gerenciado para o desenvolvimento de aplicativos modernos. Ao fornecer tempos de resposta de um dígito em milissegundos e escalabilidade automática e instantânea, o Azure Cosmos DB garante velocidade em qualquer escala. Sua disponibilidade apoiada por SLA e segurança de nível empresarial proporcionam continuidade dos negócios.

  • Os Serviços Cognitivos consistem em serviços baseados em nuvem que fornecem funcionalidade de IA. As APIs REST e os SDKs da biblioteca de clientes ajudam você a criar inteligência cognitiva em aplicativos, mesmo que você não tenha habilidades de IA ou ciência de dados.

  • O Power BI é um serviço de análise de negócios que faz parte do Microsoft Power Platform. O Power BI fornece visualizações interativas e recursos de business intelligence. Sua interface fácil de usar permite que os usuários criem seus próprios relatórios e painéis.

Alternativas

Você pode substituir alternativas para a maioria dos componentes da solução. Por exemplo:

  • Em vez de um cluster HDInsight, você pode usar um cluster Cloudera.
  • Você pode usar o Azure Databricks em vez do Data Factory. O Azure Databricks pode transformar e armazenar dados, mas você também pode usá-los como um orquestrador. Outra alternativa é utilizar os dois serviços. Muitas soluções que usam o Data Factory também usam o Azure Databricks.
  • Em vez de Nifi, você pode usar o Apache Airflow como uma ferramenta de fluxo de trabalho que executa scripts ETL.
  • Para seu repositório de arquivos principal, você pode usar o Elasticsearch no lugar do Azure Cosmos DB.
  • Para serviços de painel, você pode usar o Kibana em vez do Power BI.

Detalhes do cenário

O branding é importante para as empresas, pois o valor de uma empresa depende da imagem de mercado dessa empresa. À medida que sua empresa se move para tomar decisões preditivas e baseadas em dados, em vez de decisões reativas, você precisa monitorar e entender o que está acontecendo em tempo real. Para obter uma vantagem competitiva, você precisa usar a análise de mídia social para identificar e entender a opinião pública. Além de identificar o sentimento em tweets, você também pode optar por reconhecer rostos e imagens.

Essa solução mede a opinião pública em tuítes. Um pipeline de transformação gera clusters de comentários e assuntos de tendência. O pipeline agrega valor integrando perfeitamente soluções de código aberto como Apache NiFi e Azure HDInsight com serviços de análise de sentimento e reconhecimento facial do Azure. A solução se aplica a uma ampla gama de setores — o monitoramento de redes sociais não se limita a um setor.

Possíveis casos de uso

Esta solução é ideal para qualquer área que monitora o branding nas redes sociais, incluindo:

  • Marketing
  • Comunicações
  • Política
  • Mídia e entretenimento
  • Imóveis e instalações
  • Serviço de alimentação (viagens e hospitalidade)
  • Moda
  • Retail

Considerações

Essas considerações implementam os pilares do Azure Well-Architected Framework, um conjunto de princípios orientadores que você poderá usar para melhorar a qualidade de uma carga de trabalho. Para obter mais informações, confira Microsoft Azure Well-Architected Framework.

Dependendo das ferramentas de processamento e do número de fontes que você usa, talvez seja possível simplificar as transformações e visualizações da solução. Se possível, considere usar uma tubulação básica com um coletor. Em vez de usar várias fontes e vários painéis, alimente esse pipeline em um único painel.

Este exemplo usa o maior número possível de serviços. Por meio dessa abordagem, você pode comparar o desempenho e as experiências que você tem com o Power BI em várias fontes e tipos de dados.

Confiabilidade

A confiabilidade garante que seu aplicativo possa cumprir os compromissos que você assume com seus clientes. Para obter mais informações, confira Visão geral do pilar de confiabilidade.

Em ambientes de produção, avalie o RTO (Recovery Time Objective, objetivo de tempo de recuperação) e o RPO (Recovery Point Objective, objetivo de ponto de recuperação). Todas as decisões e cenários de recuperação de desastres dependem dessas avaliações.

Na maioria dos casos, você precisa de um serviço de alta disponibilidade para cada ferramenta. Para uma recuperação de desastres eficaz, é importante reduzir o RTO. Mas se você tiver alta disponibilidade, poderá evitar cenários de desastre. Por exemplo, você pode criar serviços em outra região.

Segurança

A segurança fornece garantias contra ataques deliberados e o abuso de seus dados e sistemas valiosos. Para saber mais, confira Visão geral do pilar de segurança.

Busque uma postura de segurança forte usando um sistema baseado em identidade e ferramentas nativas do Azure. Para componentes externos, use ferramentas de autenticação externas, como Kerberos, para garantir uma carga de trabalho robusta e segura.

Otimização de custo

Para obter informações sobre como criar uma carga de trabalho econômica, consulte Visão geral do pilar de otimização de custos.

Excelência operacional

A excelência operacional abrange os processos de operações que implantam um aplicativo e o mantêm em execução na produção. Para obter mais informações, confira Visão geral do pilar de excelência operacional.

Centralize os logs de monitoramento de todos os serviços. A solução usa ferramentas externas e ferramentas nativas do Azure. Para obter uma visão holística de todos os sistemas, integre os dados de monitoramento de todas as ferramentas.

Eficiência de desempenho

A eficiência do desempenho é a capacidade de dimensionar sua carga de trabalho para atender às demandas colocadas por usuários de maneira eficiente. Para saber mais, confira Visão geral do pilar de eficiência de desempenho.

Como a solução usa várias fontes, considere a compactação como parte do processo. Considere também os formatos de arquivo que você usa. Configure o Azure Cosmos DB para obter uma compensação entre os níveis de latência e consistência. Mas monitore e avalie o desempenho do Azure Cosmos DB durante todo o processo para evitar que esse componente se torne um afunilamento. Para diminuir a latência, considere particionar dados por local ou mover fontes de dados para perto de onde você as usa.

Colaboradores

Esse artigo é mantido pela Microsoft. Ele foi originalmente escrito pelos colaboradores a seguir.

Principais autores:

Próximas etapas