Editar

Compartilhar via


NLP (processamento de linguagem natural personalizado) em larga escala

Pesquisa Visual Computacional do Azure
Armazenamento do Azure Data Lake
Azure Databricks
Azure HDInsight
Azure Synapse Analytics

ideias da Solução

Este artigo descreve uma ideia de solução. Seu arquiteto de nuvem pode usar essas diretrizes para ajudar a visualizar os principais componentes para uma implementação típica dessa arquitetura. Use este artigo como ponto de partida para criar uma solução bem arquiteta que esteja alinhada com os requisitos específicos da carga de trabalho.

Implemente uma solução de NLP (processamento de linguagem natural) personalizada no Azure. Use o SPARK NLP para tarefas como detecção e análise de tópicos e sentimentos.

Apache®, Apache Sparke o logotipo da chama são marcas registradas ou marcas comerciais do Apache Software Foundation nos Estados Unidos e/ou em outros países. Nenhum endosso do Apache Software Foundation está implícito com o uso dessas marcas.

Arquitetura

Diagrama que mostra o fluxo de dados por meio de um pipeline N L P. Os estágios incluem ingestão, armazenamento, processamento e serviço.

Baixe um arquivo do Visio dessa arquitetura.

Fluxo de trabalho

  1. Os Hubs de Eventos do Azure, o Azure Data Factory ou ambos os serviços recebem documentos ou dados de texto não estruturados.
  2. Os Hubs de Eventos e o Data Factory armazenam os dados no formato de arquivo no Azure Data Lake Storage. Recomendamos que você configure uma estrutura de diretório que esteja em conformidade com os requisitos de negócios.
  3. A API da Pesquisa Visual Computacional do Azure usa sua funcionalidade de OCR (reconhecimento óptico de caracteres) para consumir os dados. Em seguida, a API grava os dados na camada bronze. Essa plataforma de consumo usa uma arquitetura lakehouse.
  4. Na camada bronze, vários recursos do Spark NLP pré-processam o texto. Exemplos incluem divisão, correção de ortografia, limpeza e compreensão da gramática. É recomendável executar a classificação de documento na camada bronze e, em seguida, gravar os resultados na camada de prata.
  5. Na camada de prata, os recursos avançados do Spark NLP executam tarefas de análise de documento, como reconhecimento de entidade nomeada, resumo e recuperação de informações. Em algumas arquiteturas, o resultado é gravado na camada de ouro.
  6. Na camada de ouro, o Spark NLP executa várias análises visuais linguísticas nos dados de texto. Essas análises fornecem insights sobre dependências de linguagem e ajudam na visualização de rótulos NER.
  7. Os usuários consultam os dados de texto da camada de ouro como um quadro de dados e exibem os resultados no Power BI ou aplicativos Web.

Durante as etapas de processamento, o Azure Databricks, o Azure Synapse Analytics e o Azure HDInsight são usados com o Spark NLP para fornecer funcionalidade NLP.

Componentes

  • Data Lake Storage é um sistema de arquivos compatível com Hadoop que tem um namespace hierárquico integrado e a grande escala e economia do Armazenamento de Blobs do Azure.
  • do Azure Synapse Analytics é um serviço de análise para data warehouses e sistemas de Big Data.
  • a do Azure Databricks é um serviço de análise para Big Data fácil de usar, facilita a colaboração e é baseado no Apache Spark. O Azure Databricks foi projetado para ciência de dados e engenharia de dados.
  • Hubs de Eventos ingerir fluxos de dados gerados por aplicativos cliente. Os Hubs de Eventos armazenam os dados de streaming e preservam a sequência de eventos recebidos. Os consumidores podem se conectar aos pontos de extremidade do hub para recuperar mensagens para processamento. Os Hubs de Eventos se integram ao Data Lake Storage, como mostra esta solução.
  • do Azure HDInsight é um serviço de análise de software livre gerenciado, de espectro completo e de software livre na nuvem para empresas. Você pode usar estruturas de software livre com o Azure HDInsight, como Hadoop, Apache Spark, Apache Hive, LLAP, Apache Kafka, Apache Storm e R.
  • Data Factory move automaticamente os dados entre contas de armazenamento de diferentes níveis de segurança para garantir a separação de tarefas.
  • Pesquisa Visual Computacional usa APIs de reconhecimento de texto para reconhecer texto em imagens e extrair essas informações. O da API de Leitura usa os modelos de reconhecimento mais recentes e é otimizado para documentos grandes e pesados em texto e imagens barulhentas. O da API OCR não é otimizado para documentos grandes, mas dá suporte a mais idiomas do que a API de Leitura. Essa solução usa o OCR para produzir dados no formato de hOCR.

Detalhes do cenário

O NLP (processamento de linguagem natural) tem muitos usos: análise de sentimento, detecção de tópicos, detecção de idioma, extração de frase-chave e categorização de documentos.

O Apache Spark é uma estrutura de processamento paralela que dá suporte ao processamento na memória para aumentar o desempenho de aplicativos analíticos de Big Data, como o NLP. do Azure Synapse Analytics, do Azure HDInsight e a do Azure Databricks oferecem acesso ao Spark e aproveitam seu poder de processamento.

Para cargas de trabalho de NLP personalizadas, a biblioteca de software livre Spark NLP serve como uma estrutura eficiente para processar uma grande quantidade de texto. Este artigo apresenta uma solução para NLP personalizado em larga escala no Azure. A solução usa recursos do Spark NLP para processar e analisar texto. Para obter mais informações sobre o Spark NLP, consulte funcionalidade e pipelines do Spark NLP, mais adiante neste artigo.

Possíveis casos de uso

  • Classificação de documento: o SPARK NLP oferece várias opções para classificação de texto:

    • Pré-processamento de texto no Spark NLP e algoritmos de aprendizado de máquina baseados no Spark ML
    • Pré-processamento de texto e inserção de palavras no Spark NLP e algoritmos de aprendizado de máquina, como GloVe, BERT e ELMo
    • Pré-processamento de texto e inserção de frases no Spark NLP e algoritmos e modelos de aprendizado de máquina, como o Codificador de Sentença Universal
    • Pré-processamento e classificação de texto no Spark NLP que usa o anotador ClassifierDL e se baseia no TensorFlow
  • NER (extração de entidade de nome): No Spark NLP, com algumas linhas de código, você pode treinar um modelo NER que usa BERT e obter precisão de última geração. NER é uma subtarefa de extração de informações. O NER localiza entidades nomeadas em texto não estruturado e as classifica em categorias predefinidas, como nomes de pessoas, organizações, locais, códigos médicos, expressões de tempo, quantidades, valores monetários e percentuais. O Spark NLP usa um modelo NER de última geração com BERT. O modelo é inspirado em um antigo modelo NER, LSTM-CNN bidirecional. Esse modelo anterior usa uma nova arquitetura de rede neural que detecta automaticamente recursos de nível de palavra e nível de caractere. Para essa finalidade, o modelo usa uma arquitetura LSTM bidirecional híbrida e cnn, portanto elimina a necessidade de maior parte da engenharia de recursos.

  • detecção de sentimento e de emoções: o Spark NLP pode detectar automaticamente aspectos positivos, negativos e neutros da linguagem.

  • parte da fala (POS): Essa funcionalidade atribui um rótulo gramatical a cada token no texto de entrada.

  • Detecção de Sentença (SD): SD se baseia em um modelo de rede neural de uso geral para detecção de limite de sentença que identifica sentenças dentro do texto. Muitas tarefas NLP tomam uma frase como uma unidade de entrada. Exemplos dessas tarefas incluem marcação de POS, análise de dependência, reconhecimento de entidade nomeada e tradução automática.

Funcionalidade e pipelines do Spark NLP

O Spark NLP fornece bibliotecas Python, Java e Scala que oferecem toda a funcionalidade de bibliotecas NLP tradicionais, como spaCy, NLTK, Stanford CoreNLP e Open NLP. O Spark NLP também oferece funcionalidades como verificação ortográfica, análise de sentimento e classificação de documentos. O SPARK NLP melhora os esforços anteriores fornecendo precisão, velocidade e escalabilidade de última geração.

O Spark NLP é de longe a biblioteca NLP de software livre mais rápida. Os parâmetros de comparação públicos recentes mostram o Spark NLP como 38 e 80 vezes mais rápido que o spaCy, com precisão comparável para treinar modelos personalizados. O Spark NLP é a única biblioteca de software livre que pode usar um cluster Spark distribuído. O Spark NLP é uma extensão nativa do Spark ML que opera diretamente em quadros de dados. Como resultado, as acelerações em um cluster resultam em outra ordem de magnitude do ganho de desempenho. Como cada pipeline do Spark NLP é um pipeline do Spark ML, o Spark NLP é adequado para a criação de pipelines unificados de NLP e machine learning, como classificação de documentos, previsão de risco e pipelines recomendados.

Além do excelente desempenho, o Spark NLP também oferece precisão de última geração para um número crescente de tarefas NLP. A equipe do Spark NLP lê regularmente os últimos artigos acadêmicos relevantes e produz os modelos mais precisos.

Para a ordem de execução de um pipeline NLP, o SPARK NLP segue o mesmo conceito de desenvolvimento que os modelos tradicionais de machine learning do Spark. Mas o Spark NLP aplica técnicas de NLP. O diagrama a seguir mostra os principais componentes de um pipeline do Spark NLP.

Diagrama que mostra estágios de pipeline N L P, como assembly de documento, detecção de sentença, tokenização, normalização e inserção de palavras.

Contribuintes

Este artigo é mantido pela Microsoft. Foi originalmente escrito pelos colaboradores a seguir.

Autor principal:

  • Moritz Steller | Arquiteto sênior de soluções de nuvem

Próximas etapas