Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O processamento de linguagem natural tem muitas aplicações, como análise de sentimento, deteção de tópicos, deteção de linguagem, extração de frases-chave e categorização de documentos.
Especificamente, você pode usar o processamento de linguagem natural para:
- Classifique documentos. Por exemplo, você pode rotulá-los como confidenciais ou spam.
- Realize o processamento subsequente ou as pesquisas usando saídas de processamento de linguagem natural.
- Resuma o texto identificando entidades no documento.
- Marque documentos com palavras-chave usando entidades identificadas.
- Realize pesquisas e recuperações baseadas em conteúdo usando tags.
- Resuma os principais tópicos de um documento usando entidades identificadas.
- Categorize documentos para navegação usando tópicos detetados.
- Enumerar documentos relacionados com base em um tópico selecionado.
- Avalie o sentimento do texto para entender seu tom positivo ou negativo.
À medida que a tecnologia avança, você pode usar o processamento de linguagem natural para categorizar e analisar dados de texto. Você também pode usá-lo para aprimorar funções de IA interpretáveis em diversos domínios. A integração de modelos de linguagem aumenta significativamente as capacidades de processamento de linguagem natural. Modelos de linguagem como GPT e BERT podem gerar texto semelhante ao humano e contextualmente consciente. Esta capacidade torna-os altamente eficazes para tarefas complexas de processamento de linguagem. Eles complementam as técnicas de processamento de linguagem natural existentes, lidando com tarefas cognitivas mais amplas, que melhoram os sistemas de conversação e o envolvimento do cliente, especialmente com modelos como o Dolly 2.0 daDatabricks.
Relação e diferenças entre modelos de linguagem e processamento de linguagem natural
O processamento de linguagem natural é um campo abrangente que engloba várias técnicas de processamento da linguagem humana. Em contraste, os modelos de linguagem são um subconjunto específico do processamento de linguagem natural. Eles se concentram na aprendizagem profunda para executar tarefas de linguagem de alto nível. Os modelos de linguagem melhoram o processamento de linguagem natural, fornecendo recursos avançados de geração e compreensão de texto, mas não são sinônimo de processamento de linguagem natural. Em vez disso, eles servem como ferramentas poderosas dentro do domínio mais amplo de processamento de linguagem natural, permitindo um processamento de linguagem mais sofisticado.
Observação
Este artigo concentra-se no processamento de linguagem natural. A relação entre o processamento de linguagem natural e os modelos de linguagem demonstra que os modelos de linguagem melhoram os processos de processamento de linguagem natural através de capacidades superiores de compreensão e geração de linguagem.
Casos de uso potenciais
Os cenários de negócios que podem se beneficiar do processamento personalizado de linguagem natural incluem:
Inteligência documental para documentos manuscritos ou criados por máquina em finanças, saúde, varejo, governo e outros setores.
Tarefas de processamento de linguagem natural independentes da indústria para processamento de texto, como reconhecimento de entidades nomeadas (NER), classificação, sumarização e extração de relações.
Essas tarefas ajudam a recuperar, identificar e analisar automaticamente informações de documentos, como texto e dados não estruturados. Exemplos dessas tarefas incluem modelos de estratificação de risco, classificação ontológica e resumos de varejo.
Recuperação de informação e criação de gráficos de conhecimento para pesquisa semântica. Esta funcionalidade torna possível criar gráficos de conhecimento médico que apoiam a 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 melhorada em analytics, particularmente para monitorizar a perceção da marca e análise de feedback do cliente.
Geração automatizada de relatórios. Sintetize e gere relatórios textuais abrangentes a partir de entradas de dados estruturados. Estas tarefas ajudam setores como o financeiro e o compliance onde é necessária documentação exaustiva.
Interfaces ativadas por voz que integram processamento de linguagem natural para reconhecimento de voz e capacidades de conversação natural. Essa integração melhora as interações do usuário em aplicativos de Internet das Coisas e aplicativos de dispositivos inteligentes.
Modelos de linguagem adaptáveis que podem ajustar dinamicamente a produção de linguagem para se adequar a vários níveis de compreensão do público. Esta capacidade é crucial para melhorar os conteúdos educativos e a acessibilidade.
Análise de texto de cibersegurança para analisar padrões de comunicação e uso da linguagem em tempo real. Esta análise ajuda-o a identificar potenciais ameaças à segurança na comunicação digital e a melhorar a deteção de tentativas de phishing ou desinformação.
Apache Spark como uma estrutura personalizada de processamento de linguagem natural
O Apache Spark é uma poderosa estrutura de processamento paralelo que melhora o desempenho de aplicativos analíticos de big data usando processamento na memória. Azure Synapse Analytics, Azure HDInsighte Azure Databricks fornecer acesso robusto aos recursos de processamento do Spark. Esse acesso ajuda você a executar operações de dados em grande escala sem problemas.
O Spark NLP é uma estrutura eficiente que pode processar grandes volumes de texto para cargas de trabalho personalizadas de processamento de linguagem natural. Esta biblioteca de código aberto fornece funcionalidade extensiva usando bibliotecas Python, Java e Scala. Essas bibliotecas oferecem a sofisticação que você pode encontrar em bibliotecas proeminentes de processamento de linguagem natural, como spaCy e Natural Language Toolkit. O Spark NLP inclui recursos avançados, como verificação ortográfica, análise de sentimento e classificação de documentos. Esses recursos ajudam a garantir consistentemente a precisão e a escalabilidade ideais.
Apache®, Apache Spark e o logotipo flame são marcas registradas ou marcas comerciais da Apache Software Foundation nos Estados Unidos e/ou em outros países. Nenhum endosso da Apache Software Foundation está implícito no uso dessas marcas.
Benchmarks públicos recentes destacam o desempenho do Spark NLP. Esses benchmarks mostram melhorias significativas de velocidade em relação a outras bibliotecas. O Spark NLP também mantém uma precisão comparável para treinar modelos personalizados. Notavelmente, a integração dos modelos Llama 2 e OpenAI Whisper melhora as interfaces de conversação e o reconhecimento de fala multilíngue. Esses recursos marcam avanços significativos nas capacidades de processamento otimizado.
O Spark NLP utiliza efetivamente um cluster Spark distribuído que funciona como uma extensão nativa do Spark ML e opera diretamente em quadros de dados. Essa integração oferece suporte a ganhos de desempenho aprimorados em clusters, o que facilita a criação de pipelines unificados de processamento de linguagem natural e aprendizado de máquina para tarefas como classificação de documentos e previsão de riscos. As incorporações MPNet e o extenso suporte a ONNX enriquecem ainda mais esses recursos e permitem um processamento preciso e sensível ao contexto.
O Spark NLP oferece resultados altamente precisos em uma gama crescente de tarefas de processamento de linguagem natural. A biblioteca vem com modelos de aprendizagem profunda pré-construídos para reconhecimento de entidades nomeadas, classificação de documentos e deteção de sentimentos. Seu design rico em recursos inclui modelos de linguagem pré-treinados que suportam incorporações de palavras, partes, frases e documentos.
A infraestrutura do Spark NLP é dimensionada usando compilações otimizadas para CPUs, GPUs e os mais recentes chips Intel Xeon, que permitem processos de treinamento e inferência para utilizar totalmente os clusters Spark. Esse recurso ajuda a garantir o manuseio eficiente de tarefas de processamento de linguagem natural em diversos ambientes e aplicativos.
Desafios
Processamento de recursos: O processamento de uma coleção de documentos de texto de forma livre requer uma quantidade significativa de recursos computacionais. O processamento também é demorado. Esse tipo de processamento geralmente envolve a implantação de computação de GPU. Avanços recentes que suportam quantização, como otimizações em arquiteturas de PNL do Spark como o Llama 2, ajudam a simplificar essas tarefas intensivas alocando recursos de forma mais eficiente.
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 e a data da fatura de várias faturas apresenta desafios. A integração de modelos adaptáveis de processamento de linguagem natural como o M2M100 melhora a precisão do processamento em vários idiomas e formatos. Esta precisão melhorada conduz a resultados mais consistentes.
Variedade e complexidade dos dados: Abordar a variedade de estruturas de documentos e nuances linguísticas permanece complexo. Inovações como as incorporações MPNet proporcionam uma melhor compreensão contextual, o que leva a um tratamento mais intuitivo de diversos formatos textuais e a um processamento de dados mais fiável.
Principais critérios de seleção
No Azure, os serviços do Spark, como o Azure Databricks, o Microsoft Fabric e o HDInsight, fornecem funcionalidade de processamento de linguagem natural quando você os usa com o Spark NLP. Os serviços de IA do Azure são outra opção para a funcionalidade de processamento de linguagem natural. Para ajudá-lo a decidir qual serviço usar, considere os seguintes aspetos:
Se você quiser usar modelos pré-construídos ou pré-treinados, considere usar as APIs que os serviços de IA fornecem. Ou você pode baixar seu modelo de escolha através do Spark NLP, que inclui modelos avançados como Llama 2 e MPNet para recursos aprimorados.
Se você precisar treinar modelos personalizados em relação a uma grande coleção de dados de texto, considere usar o Azure Databricks, o Fabric ou o HDInsight com o Spark NLP. Essas plataformas fornecem o poder computacional e a flexibilidade de que você precisa para o treinamento extensivo de modelos.
Se você precisar de recursos de processamento de linguagem natural de baixo nível, como tokenização, derivação, lemmatização e frequência de termos/frequência inversa de documentos (TF/IDF), considere usar o Azure Databricks, o Fabric ou o HDInsight com o Spark NLP. Como alternativa, use uma biblioteca de software de código aberto na ferramenta de processamento de sua escolha.
Se você precisar de recursos simples e de alto nível de processamento de linguagem natural, como identificação de entidade e intenção, deteção de tópicos, verificação ortográfica ou análise de sentimento, considere usar as APIs que os serviços de IA fornecem. Ou baixe seu modelo de escolha através do Spark NLP para usar funções pré-criadas para essas tarefas.
Matriz de capacidades
As tabelas a seguir resumem as principais diferenças nos recursos dos serviços de processamento de linguagem natural.
Capacidades gerais
Capacidade | Serviço Spark (Azure Databricks, Fabric, HDInsight) com Spark NLP | Serviços de IA |
---|---|---|
Fornece modelos pré-treinados como um serviço | Sim | Sim |
API REST | Sim | Sim |
Programabilidade | Python, Scala | Consulte linguagens de programação suportadas |
Suporta o processamento de grandes conjuntos de dados e documentos grandes | Sim | Não |
Recursos do anotador
Capacidade | Serviço Spark (Azure Databricks, Fabric, HDInsight) com Spark NLP | Serviços de IA |
---|---|---|
Detetor de orações | Sim | Não |
Detetor de frases profundas | Sim | Sim |
Tokenizador | Sim | Sim |
Gerador de N-gramas | Sim | Não |
Segmentação de palavras | Sim | Sim |
Stemmer (Algoritmo de radicalização) | Sim | Não |
Lemmatizador | Sim | Não |
Etiquetagem de categorias gramaticais | Sim | Não |
Analisador de dependência | Sim | Não |
Tradução | Sim | Não |
Limpador de palavras paradas | Sim | Não |
Correção ortográfica | Sim | Não |
Normalizador | Sim | Sim |
Comparador de texto | Sim | Não |
TF/IDF | Sim | Não |
Verificador de expressão regular | Sim | Incorporado no recurso de compreensão de linguagem conversacional (CLU) |
Correspondente de data | Sim | Possível na CLU através dos reconhecedores de Data e Hora |
Fragmento | Sim | Não |
Observação
O Language Understanding (LUIS) será aposentado em 1º de outubro de 2025. Você deve migrar os aplicativos LUIS existentes para o recurso de compreensão de linguagem conversacional (CLU) do Azure AI Language, que aprimora os recursos de compreensão de idioma e fornece novos recursos.
Recursos de processamento de linguagem natural de alto nível
Capacidade | Serviço Spark (Azure Databricks, Fabric, HDInsight) com Spark NLP | Serviços de IA |
---|---|---|
Verificação de ortografia | Sim | Não |
Sumarização | Sim | Sim |
Perguntas e respostas | Sim | Sim |
Deteção de sentimentos | Sim | Sim |
Deteção de emoções | Sim | Apoia a mineração de opinião |
Classificação de tokens | Sim | Sim, através de modelos personalizados |
Classificação de texto | Sim | Sim, através de modelos personalizados |
Representação de texto | Sim | Não |
NER | Sim | Sim, a análise de texto fornece um conjunto de NER |
Reconhecimento de entidades | Sim | Sim, através de modelos personalizados |
Deteção de idioma | Sim | Sim |
Suporta idiomas além do inglês | Sim, suporta mais de 200 idiomas | Sim, suporta 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 da versão mais recente. Para obter mais informações, consulte documentação do Spark NLP.
# Install Spark NLP from PyPI.
pip install spark-natural language processing==<version>
# Install Spark NLP from Anaconda or Conda.
conda install -c johnsnowlabs spark-natural language processing
# Load Spark NLP with Spark Shell.
spark-shell --packages com.johnsnowlabs.natural language processing:spark-natural language processing_<version>
# Load Spark NLP with PySpark.
pyspark --packages com.johnsnowlabs.natural language processing:spark-natural language processing_<version>
# Load Spark NLP with Spark Submit.
spark-submit --packages com.johnsnowlabs.natural language processing:spark-natural language processing_<version>
# Load Spark NLP as an external JAR after compiling and building Spark NLP by using SBT assembly.
spark-shell --jars spark-natural language processing-assembly-3 <version>.jar
Desenvolver pipelines de processamento de linguagem natural
O Spark NLP segue o mesmo conceito de desenvolvimento dos modelos tradicionais de aprendizado de máquina do Spark ML quando executa um pipeline de processamento de linguagem natural. Também aplica técnicas especializadas de processamento de linguagem natural.
Um pipeline de PNL do Spark inclui os seguintes componentes principais:
DocumentAssembler é um transformador que prepara dados convertendo-os em um formato que o Spark NLP pode processar. Este estágio é o ponto de entrada para cada pipeline de PNL do Spark. O DocumentAssembler lê uma coluna
String
ou umArray[String]
e pode pré-processar o texto usandosetCleanupMode
, que está desativado por padrão.SentenceDetector é um anotador que identifica limites de sentenças usando abordagens predefinidas. Ele pode retornar cada frase detetada em um
Array
ou em linhas separadas quandoexplodeSentences
estiver definido como true.Tokenizer é um anotador que divide o texto bruto em tokens discretos, como palavras, números e símbolos, e os produz como um
TokenizedSentence
. O tokenizador não está adaptado e usa a configuração de entrada dentro doRuleFactory
para criar regras de tokenização. Você pode adicionar regras personalizadas se as padrão forem insuficientes.Normalizer é um anotador encarregado de refinar tokens. O Normalizer aplica expressões regulares e transformações de dicionário para limpar texto e remover caracteres estranhos.
WordEmbeddings são anotadores de pesquisa que mapeiam tokens para vetores e facilitam o processamento semântico. Você pode especificar um dicionário de incorporação personalizado usando
setStoragePath
, onde cada linha contém um token e seu vetor, separados por espaços. Tokens não resolvidos são definidos como vetores nulos.
O Spark NLP usa pipelines Spark MLlib que têm suporte nativo do MLflow, uma plataforma de código aberto que gerencia o ciclo de vida do aprendizado de máquina. O MLflow tem os seguintes componentes-chave:
MLflow Tracking registra execuções experimentais e fornece recursos robustos de consulta para analisar resultados.
MLflow Projects permite executar código de ciência de dados em diversas plataformas. Esta capacidade aumenta a portabilidade e a reprodutibilidade.
MLflow Models oferece suporte à implantação de modelos versáteis em diferentes ambientes por meio de uma estrutura consistente.
O Registro de Modelos fornece um gerenciamento abrangente de modelos, armazenando versões centralmente para acesso e implantação simplificados. Esta etapa facilita a preparação para a produção.
O MLflow é integrado a plataformas como o Azure Databricks, mas você também pode instalá-lo em outros ambientes baseados no Spark para gerenciar e acompanhar seus experimentos. Essa integração permite que você use o MLflow Model Registry para disponibilizar modelos para fins de produção. Você pode simplificar o processo de implantação e manter a governança do modelo.
Usando o MLflow junto com o Spark NLP, você pode garantir um gerenciamento e implantação mais eficientes de pipelines de processamento de linguagem natural. Você também pode atender aos requisitos modernos de escalabilidade e integração, ao mesmo tempo em que oferece suporte a técnicas avançadas, como incorporação de palavras e adaptações de modelos de linguagem.
Contribuidores
A Microsoft mantém este artigo. Os seguintes colaboradores escreveram este artigo.
Principais autores:
- Freddy Ayala | Arquiteto de Soluções em Nuvem
- Moritz Steller | Arquiteto de Soluções Cloud Senior
Para ver perfis não públicos do LinkedIn, faça login no LinkedIn.
Próximos passos
Documentação do Spark NLP:
Componentes do Azure:
Saiba mais sobre os recursos: