Editar

Reconhecimento facial e análise de sentimentos

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

Este artigo apresenta uma solução para avaliar a opinião pública em tweets. O objetivo é criar um pipeline de transformação que produz clusters de comentários e assuntos mais populares.

Apache®, Apache NiFi, Apache Hadoop, Apache Hive e Apache Airflow são marcas registadas ou marcas registadas da Apache Software Foundation no Estados Unidos e/ou noutros países/ Nenhuma recomendação da Apache Software Foundation está implícita na utilização destas marcas.

Arquitetura

Diagrama de arquitetura de um pipeline. Os componentes incluem serviços para ingestão, transformação de dados, armazenamento, análise, IA e apresentação de dados.

Transfira um ficheiro do PowerPoint deste diagrama.

Pipeline de ingestão

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

Recolher e ingerir dados

Os seguintes componentes ingerem tweets:

  • Sistema de Ficheiros Distribuí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 ficheiro JSON que contém dados de tweet é transformado em formato CSV (2).
  • São criadas tabelas do Apache Hive e do Azure Synapse Analytics (2).
  • A análise de sentimentos é 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 os dados

Os dashboards do Power BI apresentam dados das seguintes origens:

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

Fluxo de dados

Diagrama de arquitetura que mostra o fluxo de dados do Twitter, através do processamento de imagens e análise de sentimentos, e para o armazenamento.

Transfira um ficheiro do PowerPoint deste diagrama.

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

Ingerir tweets

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

Processar imagens

A análise de sentimentos é executada em tweets que contêm imagens. Depois de as imagens serem recolhidas, os processos de deteção facial são executados nas imagens. Todos os rostos humanos reconhecidos são armazenados no HDInsight.

Executar análise de sentimentos

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

Componentes

Diagrama de arquitetura que mostra os componentes nas camadas de ingestão, armazenamento e processamento da solução.

Transfira um ficheiro do PowerPoint deste diagrama.

  • O Data Factory fornece serviços de transformação em lotes para várias origens e sinks. Como componente-chave do processamento de macrodados, o Data Factory ajuda a simplificar as cargas de trabalho de extração-transformação-carregamento (ETL). O Data Factory também processa as complexidades e os desafios de dimensionamento da integração de macrodados.

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

    • A executar transformações de transmissão em fluxo.
    • Ligar sistemas desacoplados na cloud.
    • Mover dados para dentro e para fora do Armazenamento do Azure e de outros arquivos de dados.
    • Integrar aplicações de periferia para cloud e de cloud híbrida com os serviços do Azure.
    • Fornecer capacidades robustas de proveniência de dados.
  • O HDInsight é uma plataforma do Hadoop para dados e análise para ambientes no local. O HDInsight pode ingerir, armazenar e processar dados de forma segura em tempo real e em lotes. O HDInsight baseia-se na Hortonworks Data Platform (HDP), uma arquitetura open source para armazenamento distribuído e processamento de grandes conjuntos de dados provenientes de várias origens.

  • Azure Synapse Analytics é um serviço de análise para armazéns de dados e sistemas de macrodados. Centraliza os dados na cloud para facilitar o acesso.

  • O Azure Cosmos DB é uma base de dados NoSQL totalmente gerida para desenvolvimento de aplicações modernas. Ao fornecer tempos de resposta de milissegundos de um dígito e escalabilidade automática e instantânea, o Azure Cosmos DB garante velocidade em qualquer escala. A disponibilidade suportada pelo SLA e a segurança de nível empresarial proporcionam continuidade de negócio.

  • Os Serviços Cognitivos consistem em serviços baseados na cloud que fornecem funcionalidades de IA. As APIs REST e os SDKs da biblioteca de cliente ajudam-no a criar inteligência cognitiva em aplicações, mesmo que não tenha competências 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 capacidades de business intelligence. A sua interface fácil de utilizar permite que os utilizadores criem os seus próprios relatórios e dashboards.

Alternativas

Pode substituir as alternativas para a maioria dos componentes da solução. Por exemplo:

  • Em vez de um cluster do HDInsight, pode utilizar um cluster do Cloudera.
  • Pode utilizar o Azure Databricks em vez do Data Factory. O Azure Databricks pode transformar e armazenar dados, mas também pode utilizá-los como orquestrador. Outra alternativa é utilizar ambos os serviços. Muitas soluções que utilizam o Data Factory também utilizam o Azure Databricks.
  • Em vez de Nifi, pode utilizar o Apache Airflow como uma ferramenta de fluxo de trabalho que executa scripts ETL.
  • Para o seu repositório de ficheiros principal, pode utilizar o Elasticsearch em vez do Azure Cosmos DB.
  • Para serviços de dashboard, pode utilizar o Kibana em vez do Power BI.

Detalhes do cenário

A imagem corporativa é importante para as empresas, porque o valor de uma empresa depende da imagem do mercado dessa empresa. À medida que a sua empresa se move para tomar decisões preditivas e condicionadas por dados, em vez de decisões reativas, tem de monitorizar e compreender o que está a acontecer em tempo real. Para obter uma vantagem competitiva, tem de utilizar a análise das redes sociais para identificar e compreender a opinião pública. Além de identificar sentimentos em tweets, também pode optar por reconhecer rostos e imagens.

Esta solução mede a opinião pública em tweets. Um pipeline de transformação produz clusters de comentários e assuntos mais populares. O pipeline fornece valor ao integrar perfeitamente soluções open source como o Apache NiFi e o Azure HDInsight com a análise de sentimentos do Azure e os serviços de reconhecimento facial. A solução aplica-se a um vasto leque de setores: a monitorização de redes sociais não está limitada a um setor.

Potenciais casos de utilização

Esta solução é ideal para qualquer área que monitorize a imagem corporativa nas redes sociais, incluindo:

  • Marketing
  • Comunicações
  • Política
  • Multimédia e entretenimento
  • Imóveis e instalações
  • Serviço alimentar (viagens e hospitalidade)
  • Moda
  • Retail

Considerações

Estas considerações implementam os pilares do Azure Well-Architected Framework, um conjunto de princípios de orientação que pode utilizar para melhorar a qualidade de uma carga de trabalho. Para obter mais informações, veja Microsoft Azure Well-Architected Framework.

Dependendo das ferramentas de processamento e do número de origens que utiliza, poderá conseguir simplificar as transformações e visualizações da solução. Se possível, considere utilizar um pipeline básico com um sink. Em vez de utilizar várias origens e vários dashboards, alimente esse pipeline num único dashboard.

Este exemplo utiliza o maior número possível de serviços. Através desta abordagem, pode comparar o desempenho e as experiências que tem com o Power BI em várias origens e tipos de dados.

Fiabilidade

A fiabilidade garante que a sua aplicação cumpre os compromissos assumidos com os seus clientes. Para obter mais informações, veja Descrição geral do pilar de fiabilidade.

Em ambientes de produção, avalie o objetivo de tempo de recuperação (RTO) e o objetivo de ponto de recuperação (RPO). Todas as decisões e cenários de recuperação após desastre dependem dessas avaliações.

Na maioria dos casos, precisa de um serviço de elevada disponibilidade para cada ferramenta. Para uma recuperação após desastre eficaz, é importante reduzir o RTO. No entanto, se tiver elevada disponibilidade, pode evitar cenários de desastre. Por exemplo, pode criar serviços noutra região.

Segurança

A segurança fornece garantias contra ataques deliberados e abuso dos seus valiosos dados e sistemas. Para obter mais informações, veja Descrição geral do pilar de segurança.

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

Otimização de custos

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

Excelência operacional

A excelência operacional abrange os processos de operações que implementam uma aplicação e a mantêm em execução na produção. Para obter mais informações, veja Descrição geral do pilar de excelência operacional.

Centralize os registos de monitorização de todos os serviços. A solução utiliza ferramentas externas e ferramentas nativas do Azure. Para obter uma vista holística de todos os sistemas, integre os dados de monitorização de todas as ferramentas.

Eficiência de desempenho

Eficiência de desempenho é a capacidade da sua carga de trabalho para dimensionar para satisfazer as exigências que os utilizadores lhe colocam de forma eficiente. Para obter mais informações, veja Descrição geral do pilar Eficiência de desempenho.

Uma vez que a solução utiliza várias origens, considere a compressão como parte do processo. Considere também os formatos de ficheiro que utiliza. Configure o Azure Cosmos DB para obter uma desvantagem entre a latência e os níveis de consistência. Mas monitorize e avalie o desempenho do Azure Cosmos DB ao longo do processo para evitar que esse componente se torne um estrangulamento. Para diminuir a latência, considere criar partições de dados por localização ou mover origens de dados para perto do local onde os utiliza.

Contribuidores

Este artigo é mantido pela Microsoft. Foi originalmente escrito pelos seguintes contribuidores.

Principais autores:

Passos seguintes