O NLP (processamento de linguagem natural) tem muitos aplicativos, como análise de sentimento, detecção de tópicos, detecção de idioma, extração de frase-chave e categorização de documentos.
Especificamente, você pode usar o NLP para:
- Classifique documentos, por exemplo, rotulando-os como confidenciais ou spam.
- Realize processamento ou pesquisas subsequentes com saídas NLP.
- Resumir texto identificando entidades no documento.
- Marque documentos com palavras-chave, utilizando entidades identificadas.
- Realize a pesquisa e a recuperação baseadas em conteúdo por meio da marcação.
- Resumir os principais tópicos de um documento usando entidades identificadas.
- Categorize documentos para navegação utilizando tópicos detectados.
- Enumerar documentos relacionados com base em um tópico selecionado.
- Avalie o sentimento de texto para entender seu tom positivo ou negativo.
Com os avanços na tecnologia, o NLP pode não apenas ser usado para categorizar e analisar dados de texto, mas também para aprimorar funções de IA interpretáveis em diversos domínios. A integração de LLM (Modelos de Linguagem Grande) aprimora significativamente os recursos do NLP. LLMs como GPT e BERT podem gerar texto humano, contextualmente consciente, tornando-os altamente eficazes para tarefas complexas de processamento de linguagem. Eles complementam técnicas de NLP existentes lidando com tarefas cognitivas mais amplas, que melhoram os sistemas de conversa e o engajamento do cliente, especialmente com modelos como a Dolly 2.0do
Relação e diferenças entre modelos de linguagem e NLP
O NLP é um campo abrangente que abrange várias técnicas para processar a linguagem humana. Por outro lado, os modelos de linguagem são um subconjunto específico no NLP, com foco no aprendizado profundo para executar tarefas de linguagem de alto nível. Embora os modelos de linguagem aprimorem o NLP fornecendo recursos avançados de geração e compreensão de texto, eles não são sinônimos de NLP. Em vez disso, elas servem como ferramentas poderosas dentro do domínio NLP mais amplo, permitindo um processamento de linguagem mais sofisticado.
Nota
Este artigo se concentra no NLP. A relação entre o NLP e os modelos de linguagem demonstra que os modelos de linguagem aprimoram os processos de NLP por meio de recursos de geração e compreensão de linguagem superiores.
Apache®, Apache Spark e o logotipo da chama 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.
Possíveis casos de uso
Os cenários de negócios que podem se beneficiar do NLP personalizado incluem:
- Informação de Documentos para documentos manuscritos ou criados por computador em finanças, saúde, varejo, governo e outros setores.
- Tarefas de NLP independentes do setor para processamento de texto, como NER (reconhecimento de entidade nomeada), classificação, resumo e extração de relação. Essas tarefas automatizam o processo de recuperação, identificação e análise de informações do documento, como texto e dados não estruturados. Exemplos dessas tarefas incluem modelos de estratificação de risco, classificação de ontologia e resumos de varejo.
- Recuperação de informações e criação de grafo de conhecimento para pesquisa semântica. Essa funcionalidade possibilita criar grafos de conhecimento médico que dão suporte à descoberta de medicamentos e ensaios clínicos.
- Tradução de texto para sistemas de IA conversacional em aplicativos voltados para o cliente em varejo, finanças, viagens e outros setores.
- Sentimento e inteligência emocional aprimorada na análise, especialmente para monitorar a percepção da marca e a análise de comentários do cliente.
- Geração de relatórios automatizada. Sintetize e gere relatórios textuais abrangentes a partir de entradas de dados estruturadas, auxiliando setores como finanças e conformidade, onde a documentação completa é necessária.
- Interfaces ativadas por voz para aprimorar as interações do usuário em aplicativos de IoT e dispositivo inteligente integrando o NLP para reconhecimento de voz e recursos de conversa natural.
- Modelos de linguagem adaptativa para ajustar dinamicamente a saída da linguagem para atender a vários níveis de compreensão de público, o que é crucial para aprimoramentos de conteúdo educacional e acessibilidade.
- Análise de texto de segurança cibernética para analisar padrões de comunicação e uso de linguagem em tempo real para identificar possíveis ameaças à segurança na comunicação digital, melhorando a detecção de tentativas de phishing ou desinformação.
Apache Spark como uma estrutura NLP personalizada
O Apache Spark é uma poderosa estrutura de processamento paralelo que aprimora o desempenho de aplicativos analíticos de Big Data por meio do processamento na memória. do Azure Synapse Analytics, do Azure HDInsight e do Azure Databricks continuam fornecendo acesso robusto aos recursos de processamento do Spark, garantindo a execução perfeita de operações de dados em larga escala.
Para cargas de trabalho de NLP personalizadas, o NLP do Spark continua sendo uma estrutura eficiente capaz de processar grandes volumes de texto. Essa biblioteca de software livre fornece ampla funcionalidade por meio de bibliotecas Python, Java e Scala, que fornecem a sofisticação encontrada em bibliotecas NLP proeminentes, como spaCy e NLTK. O Spark NLP inclui recursos avançados, como verificação ortográfica, análise de sentimento e classificação de documentos, garantindo consistentemente a precisão e a escalabilidade de última geração.
Os parâmetros de comparação públicos recentes destacam o desempenho do Spark NLP, mostrando melhorias significativas de velocidade em relação a outras bibliotecas, mantendo a precisão comparável para treinar modelos personalizados. Notavelmente, a integração dos modelos llama-2 e o OpenAI Whisper aprimora as interfaces de conversação e o reconhecimento de fala multilíngue, marcando avanços significativos nos recursos de processamento otimizados.
Exclusivamente, o Spark NLP utiliza efetivamente um cluster Spark distribuído, funcionando como uma extensão nativa do Spark ML que opera diretamente em quadros de dados. Essa integração dá suporte a ganhos de desempenho aprimorados em clusters, facilitando a criação de pipelines unificados de NLP e machine learning para tarefas como classificação de documentos e previsão de risco. A introdução de inserções MPNet e o amplo suporte ao ONNX enriquecem ainda mais esses recursos, permitindo o processamento preciso e com reconhecimento de contexto.
Além das vantagens de desempenho, o Spark NLP oferece precisão de última geração em uma matriz em expansão de tarefas NLP. A biblioteca vem com modelos de aprendizado profundo predefinidos para reconhecimento de entidade nomeada, classificação de documentos, detecção de sentimento e muito mais. Seu design avançado em recursos inclui modelos de linguagem pré-treinados que dão suporte a incorporações de palavras, partes, frases e documentos.
Com builds otimizados para CPUs, GPUs e os chips Intel Xeon mais recentes, a infraestrutura do Spark NLP foi projetada para escalabilidade, permitindo que os processos de treinamento e inferência utilizem totalmente os clusters spark. Isso garante a manipulação eficiente de tarefas NLP em diversos ambientes e aplicativos, mantendo sua posição na vanguarda da inovação do NLP.
Desafios
recursos de processamento: o processamento de uma coleção de documentos de texto de forma livre requer uma quantidade significativa de recursos computacionais, e o processamento também é demorado. Esse tipo de processamento geralmente envolve a implantação de computação de GPU. Os avanços recentes, como otimizações em arquiteturas NLP do Spark, como o Llama-2, que dão suporte à quantização, ajudam a simplificar essas tarefas intensivas, tornando a alocação de recursos mais eficiente.
problemas de padronização: Sem um formato de documento padronizado, pode ser difícil obter resultados consistentemente precisos quando você usa o processamento de texto de forma livre para extrair fatos específicos de um documento. Por exemplo, extrair o número da fatura e a data de várias faturas apresenta desafios. A integração de modelos NLP adaptáveis, como m2M100, aprimorou a precisão do processamento em vários idiomas e formatos, facilitando maior consistência nos resultados.
Variedade e complexidade de dados: O endereçamento da variedade de estruturas de documentos e nuances linguísticas permanece complexo. Inovações como inserções MPNet fornecem uma compreensão contextual aprimorada, oferecendo uma manipulação mais intuitiva de diversos formatos textuais e melhorando a confiabilidade geral do processamento de dados.
Principais critérios de seleção
No Azure, serviços spark como Azure Databricks, Microsoft Fabric e Azure HDInsight fornecem funcionalidade NLP quando usados com o Spark NLP. Os serviços de IA do Azure são outra opção para a funcionalidade NLP. Para decidir qual serviço usar, considere estas perguntas:
Deseja usar modelos predefinidos ou pré-treinados? Se sim, considere usar as APIs que os serviços de IA do Azure oferecem ou baixe seu modelo de escolha por meio do Spark NLP, que agora inclui modelos avançados como Llama-2 e MPNet para recursos aprimorados.
Você precisa treinar modelos personalizados em um corpo grande de dados de texto? Se sim, considere usar o Azure Databricks, o Microsoft Fabric ou o Azure HDInsight com o Spark NLP. Essas plataformas fornecem o poder computacional e a flexibilidade necessários para o treinamento extensivo do modelo.
Você precisa de funcionalidades de NLP de baixo nível como geração de tokens, lematização e TF/IDF (frequência de termo/frequência de documento inverso)? Se sim, considere usar o Azure Databricks, o Microsoft Fabric ou o Azure HDInsight com o Spark NLP. Como alternativa, use uma biblioteca de software livre em sua ferramenta de processamento de escolha.
Você precisa de funcionalidades de NLP simples e de alto nível, como identificação de entidade e intenção, detecção de tópico, verificação ortográfica ou análise de sentimento? Se sim, considere o uso das APIs oferecidas pelos serviços de IA do Azure. Ou baixe seu modelo de escolha por meio do Spark NLP para aproveitar funções predefinidas para essas tarefas.
Matriz de funcionalidades
As tabelas a seguir resumem as principais diferenças nos recursos dos serviços NLP.
Funcionalidades gerais
Recurso | Serviço Spark (Azure Databricks, Microsoft Fabric, Azure HDInsight) com Spark NLP | Serviços de IA do Azure |
---|---|---|
Fornece modelos pré-treinados como serviço | Sim | Sim |
REST API | Sim | Sim |
Programação | Python, Scala | Para idiomas com suporte, confira Recursos Adicionais |
Dá suporte ao processamento de conjuntos de Big Data e documentos grandes | Sim | Não |
Capacidades do NLP de baixo nível
Funcionalidade de Anotador
Recurso | Serviço Spark (Azure Databricks, Microsoft Fabric, Azure HDInsight) com Spark NLP | Serviços de IA do Azure |
---|---|---|
Detector de sentenças | Sim | Não |
Detector de sentenças profundas | Sim | Sim |
Gerador de token | Sim | Sim |
Gerador de N-grama | Sim | Não |
Segmentação de palavras | Sim | Sim |
Lematizador | Sim | Não |
Lematizador | Sim | Não |
Marcação de parte do discurso | Sim | Não |
Analisador de dependência | Sim | Não |
Tradução | Sim | Não |
Limpador de palavras irrelevantes | Sim | Não |
Correção ortográfica | Sim | Não |
Normalizer | Sim | Sim |
Correspondente de texto | Sim | Não |
TF/IDF | Sim | Não |
Correspondente de expressão regular | Sim | Inserido no CLU (Reconhecimento vocal de conversa) |
Correspondente de data | Sim | Possível em CLU por meio de reconhecedores datetime |
Chunker | Sim | Não |
Nota
O LUIS (Reconhecimento Vocal da Microsoft) será desativado em 1º de outubro de 2025. Os aplicativos LUIS existentes são incentivados a migrar para o CLU (Conversational Language Understanding), uma funcionalidade dos Serviços de IA do Azure para Linguagem, que aprimora os recursos de compreensão da linguagem e oferece novos recursos.
Capacidades do NLP de alto nível
Recurso | Serviço Spark (Azure Databricks, Microsoft Fabric, Azure HDInsight) com Spark NLP | Serviços de IA do Azure |
---|---|---|
Verificação ortográfica | Sim | Não |
Resumo | Sim | Sim |
Respostas às perguntas | Sim | Sim |
Detecção de sentimento | Sim | Sim |
Detecção de Emoções | Sim | Dá suporte à mineração de opiniões |
Classificação de token | Sim | Sim, por meio de modelos personalizados |
Classificação de texto | Sim | Sim, por meio de modelos personalizados |
Representação de texto | Sim | Não |
NER | Sim | Sim. A análise de texto fornece um conjunto de NER e os modelos personalizados estão no reconhecimento de entidade |
Reconhecimento de entidade | Sim | Sim, por meio de modelos personalizados |
Detecção de idioma | Sim | Sim |
Dá suporte a idiomas além do inglês | Sim, dá suporte a mais de 200 idiomas | Sim, dá suporte a mais de 97 idiomas |
Configurar o Spark NLP no Azure
Para instalar o Spark NLP, use o código a seguir, mas substitua <version>
pelo número de versão mais recente. Para obter mais informações, confira a documentação do Spark NLP.
# Install Spark NLP from PyPI.
pip install spark-nlp==<version>
# Install Spark NLP from Anacodna or Conda.
conda install -c johnsnowlabs spark-nlp
# Load Spark NLP with Spark Shell.
spark-shell --packages com.johnsnowlabs.nlp:spark-nlp_<version>
# Load Spark NLP with PySpark.
pyspark --packages com.johnsnowlabs.nlp:spark-nlp_<version>
# Load Spark NLP with Spark Submit.
spark-submit --packages com.johnsnowlabs.nlp:spark-nlp_<version>
# Load Spark NLP as an external JAR after compiling and building Spark NLP by using sbt assembly.
spark-shell --jars spark-nlp-assembly-3 <version>.jar
Desenvolver pipelines NLP
Para a ordem de execução de um pipeline NLP, o NLP do Spark segue o mesmo conceito de desenvolvimento que os modelos tradicionais de machine learning do Spark ML, aplicando técnicas de NLP especializadas.
Os principais componentes de um pipeline do Spark NLP são:
DocumentAssembler: um transformador que prepara dados convertendo-os em um formato que o Spark NLP pode processar. Essa fase é o ponto de entrada para cada pipeline do Spark NLP. O DocumentAssembler lê uma coluna
String
ou umaArray[String]
, com opções para pré-processar o texto usandosetCleanupMode
, que está desativado por padrão.SentenceDetector: um anotador que identifica limites de sentença usando abordagens predefinidas. Ele pode retornar cada frase detectada em um
Array
ou em linhas separadas quandoexplodeSentences
é definido como true.Tokenizer: um anotador que divide o texto bruto em tokens discretos — palavras, números e símbolos — gerando-os como um
TokenizedSentence
. O Tokenizer não é ajustado e usa a configuração de entrada noRuleFactory
para criar regras de token. As regras personalizadas podem ser adicionadas quando os padrões são insuficientes.normalizador: um anotador encarregado de refinar tokens. Normalizador aplica expressões regulares e transformações de dicionário para limpar texto e remover caracteres desnecessários.
WordEmbeddings: anotações de pesquisa que mapeiam tokens para vetores, facilitando o processamento semântico. Você pode especificar um dicionário de inserção personalizado usando
setStoragePath
, em que cada linha contém um token e seu vetor, separados por espaços. Tokens não resolvidos padrão para zero vetores.
O Spark NLP aproveita os pipelines do Spark MLlib, com suporte nativo do MLflow, uma plataforma de software livre que gerencia o ciclo de vida do machine learning. Os principais componentes do MLflow incluem:
MLflow Tracking: registra execuções experimentais e fornece recursos de consulta robustos para analisar resultados.
mlflow projects: habilita a execução do código de ciência de dados em diversas plataformas, aprimorando a portabilidade e a reprodutibilidade.
modelos MLflow: dá suporte à implantação de modelo versátil em diferentes ambientes por meio de uma estrutura consistente.
registro de modelo: fornece gerenciamento abrangente de modelos, armazenando versões centralmente para acesso e implantação simplificados, facilitando a preparação para a produção.
O MLflow é integrado a plataformas como o Azure Databricks, mas também pode ser instalado em outros ambientes baseados em Spark para gerenciar e acompanhar seus experimentos. Essa integração permite o uso do Registro de Modelo do MLflow para disponibilizar modelos para fins de produção, simplificando assim o processo de implantação e mantendo a governança do modelo.
Usando o MLflow junto com o Spark NLP, você pode garantir o gerenciamento eficiente e a implantação de pipelines NLP, abordando os requisitos modernos de escalabilidade e integração, ao mesmo tempo em que dá suporte a técnicas avançadas, como incorporações de palavras e adaptações de modelo de linguagem grandes.
Colaboradores
Esse artigo é mantido pela Microsoft. Ele foi originalmente escrito pelos colaboradores a seguir.
Principais autores:
- Freddy Ayala | Arquiteto de Soluções na Nuvem
- Moritz Steller | Arquiteto Sênior de Soluções de Nuvem
Próximas etapas
Documentação do Spark NLP:
Componentes do Azure:
Saiba mais sobre os recursos:
Recursos relacionados
- Processamento de linguagem natural personalizado em grande escala no Azure
- Escolher uma tecnologia de serviços de IA do Microsoft Azure
- Comparar os produtos e tecnologias de machine learning da Microsoft
- MLflow e Azure Machine Learning
- Enriquecimento de IA com processamento de imagem e linguagem natural no Azure Cognitive Search
- Analisar news feeds com a análise quase em tempo real usando o processamento de imagem e linguagem natural