Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O 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 processamento de linguagem natural para:
- Classificar documentos. Por exemplo, você pode rotulá-los como confidenciais ou spam.
- Realize processamento ou pesquisas subsequentes usando saídas de processamento de linguagem natural.
- Resumir texto identificando entidades no documento.
- Marque documentos com palavras-chave usando entidades identificadas.
- Realize a pesquisa e recuperação baseadas em conteúdo usando etiquetas.
- Resumir os principais tópicos de um documento usando entidades identificadas.
- Categorize documentos para navegação usando 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.
À 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 aprimora significativamente os recursos de processamento de linguagem natural. Modelos de linguagem como GPT e BERT podem gerar texto semelhante ao humano e consciente do contexto. Essa funcionalidade os torna 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 e o engajamento do cliente, especialmente com modelos como a Dolly 2.0 do Databricks.
Relação e diferenças entre modelos de linguagem e processamento de linguagem natural
O processamento de linguagem natural é 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 do processamento de linguagem natural. Eles se concentram no aprendizado profundo para executar tarefas de idioma de alto nível. Os modelos de linguagem aprimoram o processamento de linguagem natural fornecendo recursos avançados de geração e compreensão de texto, mas não são sinônimos de processamento de linguagem natural. Em vez disso, eles servem como ferramentas poderosas dentro do domínio de processamento de linguagem natural mais amplo, habilitando o processamento de linguagem mais sofisticado.
Observação
Este artigo se concentra 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 aprimoram os processos de processamento de linguagem natural por meio de recursos superiores de compreensão de linguagem e geração.
Possíveis casos de uso
Os cenários de negócios que podem se beneficiar do processamento de linguagem natural personalizado incluem:
Inteligência de documentos para documentos manuscritos ou criados por máquina em finanças, saúde, varejo, governo e outros setores.
Tarefas de processamento de linguagem natural independente do setor para processamento de texto, como NER (reconhecimento de entidade nomeada), classificação, resumo e extração de relação.
Essas tarefas ajudam você a recuperar, identificar e analisar automaticamente 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. Essas tarefas ajudam setores como finanças e conformidade quando uma documentação completa é necessária.
Interfaces ativadas por voz que integram o processamento de linguagem natural para reconhecimento de voz e recursos de conversa natural. Essa integração aprimora as interações do usuário em aplicativos de Internet das Coisas e aplicativos de dispositivo inteligente.
Modelos de linguagem adaptável que podem ajustar dinamicamente a saída da linguagem para atender a vários níveis de compreensão de público. Essa funcionalidade é crucial para melhorias de acessibilidade e conteúdo educacional.
Análise de texto de segurança cibernética para analisar padrões de comunicação e uso de linguagem em tempo real. Essa análise ajuda você a identificar possíveis ameaças à segurança na comunicação digital e melhorar a detecção de tentativas de phishing ou desinformação.
Apache Spark como uma estrutura de processamento de linguagem natural personalizada
O Apache Spark é uma poderosa estrutura de processamento paralelo que aprimora o desempenho de aplicativos analíticos de Big Data usando o processamento na memória. do Azure Synapse Analytics, do Azure HDInsight e do Azure Databricks fornecem acesso robusto aos recursos de processamento do Spark. Esse acesso ajuda você a executar operações de dados em grande escala perfeitamente.
O Spark NLP é uma estrutura eficiente que pode processar grandes volumes de texto para cargas de trabalho personalizadas de processamento de linguagem natural. Essa biblioteca de software livre fornece ampla funcionalidade usando bibliotecas Python, Java e Scala. Essas bibliotecas fornecem a sofisticação que você pode encontrar em bibliotecas de processamento de linguagem natural proeminentes, 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 você a garantir consistentemente a precisão e a escalabilidade ideais.
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. Nenhum endosso do Apache Software Foundation está implícito com o uso dessas marcas.
Os parâmetros de comparação públicos recentes destacam o desempenho do Spark NLP. Esses parâmetros de comparação mostram melhorias significativas de velocidade em relação a outras bibliotecas. O Spark NLP também mantém a precisão comparável para treinar modelos personalizados. Notavelmente, a integração dos modelos do Llama 2 e do OpenAI Whisper aprimora as interfaces de conversação e o reconhecimento de fala multilíngue. Esses recursos marcam avanços significativos nos recursos de processamento otimizados.
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 dá suporte a ganhos de desempenho aprimorados em clusters, o que facilita a criação de pipelines unificados de processamento de linguagem natural e machine learning para tarefas como classificação de documentos e previsão de risco. As inserções MPNet e o amplo suporte ao ONNX enriquecem ainda mais esses recursos e permitem o processamento preciso e com reconhecimento de contexto.
O Spark NLP fornece resultados altamente precisos em uma matriz em expansão de tarefas de processamento de linguagem natural. A biblioteca vem com modelos de aprendizado profundo predefinidos para reconhecimento de entidade nomeada, classificação de documentos e detecção de sentimento. 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.
A infraestrutura do Spark NLP é dimensionada usando builds otimizados para CPUs, GPUs e os chips Intel Xeon mais recentes, que permitem que processos de treinamento e inferência utilizem totalmente os clusters Spark. Essa funcionalidade ajuda a garantir o tratamento eficiente de tarefas de processamento de linguagem natural em diversos ambientes e aplicativos.
Desafios
Processamento de recursos: processar uma coleção de documentos de texto de forma livre requer uma quantidade significativa de recursos computacionais. O processamento também é intensivo em tempo. Esse tipo de processamento geralmente envolve a implantação de computação de GPU. Os avanços recentes que dão suporte à quantização, como otimizações em arquiteturas do Spark NLP como o Llama 2, ajudam a simplificar essas tarefas intensivas alocando recursos com mais eficiência.
Padronização: sem um formato de documento padronizado, pode ser difícil obter resultados consistentemente precisos quando se 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 adaptáveis de processamento de linguagem natural, como M2M100, melhora a precisão do processamento em vários idiomas e formatos. Essa precisão aprimorada leva a resultados mais consistentes.
A variedade de dados e a complexidade: abordar a variedade de estruturas de documentos e nuances linguísticas continua sendo complexo. Inovações como incorporações MPNet fornecem uma compreensão contextual aprimorada, o que leva a uma manipulação mais intuitiva de formatos textuais diversos e processamento de dados mais confiável.
Principais critérios de seleção
No Azure, serviços spark como Azure Databricks, Microsoft Fabric e HDInsight fornecem funcionalidade de processamento de linguagem natural ao usá-los 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 aspectos:
Se você quiser usar modelos predefinidos ou pré-treinados, considere usar as APIs fornecidas pelos serviços de IA. Ou você pode baixar seu modelo de escolha por meio do Spark NLP, que inclui modelos avançados como Llama 2 e MPNet para recursos aprimorados.
Se você precisar treinar modelos personalizados em uma grande coleção de dados de texto, considere usar o Azure Databricks, Fabric ou HDInsight com o Spark NLP. Essas plataformas fornecem o poder computacional e a flexibilidade necessárias para o treinamento extensivo do modelo.
Se você precisar de recursos de processamento de linguagem natural de baixo nível, como tokenização, stemming, lematização e frequência de termos/frequência inversa de frequência de documentos (TF/IDF), considere usar o Azure Databricks, Fabric ou HDInsight com o Spark NLP. Como alternativa, use uma biblioteca de software livre em sua ferramenta de processamento de escolha.
Se você precisar de recursos simples de processamento de linguagem natural de alto nível, como identificação de entidade e intenção, detecção de tópicos, verificação ortográfica ou análise de sentimento, considere usar as APIs fornecidas pelos serviços de IA. Ou baixe seu modelo de escolha por meio do Spark NLP para usar funções predefinidas para essas tarefas.
Matriz de funcionalidades
As tabelas a seguir resumem as principais diferenças nos recursos dos serviços de processamento de linguagem natural.
Funcionalidades gerais
Capacidade | Serviço Spark (Azure Databricks, Fabric, HDInsight) com Spark NLP | Serviços de inteligência artificial |
---|---|---|
Fornece modelos pré-treinados como serviço | Sim | Sim |
API REST | Sim | Sim |
Programabilidade | Python, Scala | Consulte linguagens de programação com suporte |
Dá suporte ao processamento de grandes conjuntos de dados e documentos grandes | Sim | Não |
Funcionalidades do anotador
Capacidade | Serviço Spark (Azure Databricks, Fabric, HDInsight) com Spark NLP | Serviços de inteligência artificial |
---|---|---|
Detector de sentenças | Sim | Não |
Detector de sentenças profundas | Sim | Sim |
Tokenizador | Sim | Sim |
Gerador de N-grama | Sim | Não |
Segmentação de palavras | Sim | Sim |
Lematizador | Sim | Não |
Lematizador | Sim | Não |
Etiquetagem de Partes 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 |
Normalizador | Sim | Sim |
Correspondente de texto | Sim | Não |
TF/IDF | Sim | Não |
Correspondente de expressão regular | Sim | Inserido no recurso de Compreensão de Linguagem Conversacional (CLU) |
Correspondente de data | Sim | Possível em CLU por meio de reconhecedores de data e hora |
Chunker | Sim | Não |
Observação
O LUIS (Compreensão de Linguagem) será desativado em 1º de outubro de 2025. Você deve migrar aplicativos LUIS existentes para o recurso CLU (reconhecimento vocal de conversa) da Linguagem de IA do Azure, que aprimora os recursos de compreensão da linguagem 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 inteligência artificial |
---|---|---|
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 |
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, 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 que os modelos tradicionais de machine learning do Spark ML ao executar um pipeline de processamento de linguagem natural. Também aplica técnicas especializadas de processamento de linguagem natural.
Um pipeline do Spark NLP inclui os seguintes componentes principais:
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]
e pode 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.Tokenizador é um anotador que divide o texto bruto em tokens discretos, como palavras, números e símbolos, e os gera como um
TokenizedSentence
. O Tokenizer não é ajustado 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.Normalizador é um annotador encarregado de refinar tokens. Normalizador aplica expressões regulares e transformações de dicionário para limpar texto e remover caracteres desnecessários.
WordEmbeddings são anotadores de pesquisa que mapeiam os tokens em vetores e facilitam 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 são definidos como vetores zero.
O Spark NLP usa pipelines do Spark MLlib que têm suporte nativo de MLflow, uma plataforma de software livre que gerencia o ciclo de vida do aprendizado de máquina. O MLflow tem os seguintes componentes principais:
o MLflow Tracking registra execuções experimentais e fornece recursos de consulta robustos para analisar os resultados.
Projetos do MLflow permitem executar código de ciência de dados em diversas plataformas. Essa funcionalidade aprimora a portabilidade e a reprodutibilidade.
Modelos de MLflow oferecem suporte à implantação versátil de modelos em diferentes ambientes por meio de uma estrutura consistente.
o Registro de Modelos fornece 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 em Spark para gerenciar e acompanhar seus experimentos. Essa integração permite que você use o Registro de Modelo do MLflow 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 mais eficiente e a implantação 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 dá suporte a técnicas avançadas, como inserções de palavras e adaptações de modelo de linguagem.
Contribuidores
A Microsoft mantém este artigo. Os colaboradores a seguir escreveram este artigo.
Autores principais:
- Freddy Ayala | Arquiteto de Soluções na Nuvem
- Moritz Steller | Arquiteto Sênior de Soluções de Nuvem
Para ver perfis não públicos no LinkedIn, entre no LinkedIn.
Próximas etapas
Documentação do Spark NLP:
Componentes do Azure:
- Tecido
- HDInsight
- Azure Databricks
- Serviços de IA
Saiba mais sobre os recursos: