O que é reconhecimento de entidades nomeadas?

O que é reconhecimento de entidades nomeadas?

O Named Entity Recognition (NER) — também chamado de fragmentação de entidades ou extração de entidades — é um componente do processamento de linguagem natural (NLP) que identifica categorias predefinidas de objetos em um corpo de texto.

Essas categorias podem incluir, mas não estão limitadas a, nomes de indivíduos, organizações, localizações, expressões de tempo, quantidades, códigos médicos, valores monetários e percentuais, entre outros. Essencialmente, o NER é o processo de analisar uma sequência de texto (como uma frase, parágrafo ou documento) e identificar e classificar as entidades que se referem a essas categorias.

Quando o termo "NER" foi cunhado na Sixth Message Understanding Conference (MUC-6), o objetivo era simplificar as tarefas de extração de informações, que envolviam o processamento de grandes quantidades de texto não estruturado e a identificação de informações importantes. Desde então, o NER se expandiu e evoluiu, em grande parte devido aos avanços em técnicas de aprendizado de máquina e deep learning.

As mais recentes tendências em IA, trazidas a você por especialistas

Receba insights selecionados sobre as notícias mais importantes (e intrigantes) sobre IA. Inscreva-se no nosso boletim informativo semanal Think. Consulte a Declaração de privacidade da IBM.

Agradecemos a você! Você se inscreveu.

Sua assinatura será entregue em inglês. Você encontrará um link para cancelar a assinatura em cada boletim informativo. Você pode gerenciar suas assinaturas ou cancelar a assinatura aqui. Consulte nossa Declaração de privacidade da IBM para obter mais informações.

Técnicas de NER

De acordo com uma pesquisa de 2019, cerca de 64% das empresas dependem de dados estruturados provenientes de recursos internos, mas menos de 18% utilizam dados não estruturados e comentários de redes sociais para tomar decisões empresariais1.

As organizações que utilizam o NER para a extração de dados não estruturados baseiam-se em uma variedade de abordagens, que geralmente se enquadram em três categorias amplas:

  • Abordagens baseadas em regras envolvem a criação de um conjunto de regras para a gramática de uma língua. Essas regras são usadas para identificar entidades no texto com base em suas características estruturais e gramaticais. No entanto, esses métodos podem ser demorados e podem não servir bem para dados novos.
  • As abordagens de aprendizado de máquina envolvem o treinamento de um modelo de aprendizado de máquina orientado por IA em um conjunto de dados rotulado usando algoritmos como campos aleatórios condicionais e entropia máxima (dois tipos de modelos de linguagem estatística complexos). As técnicas podem variar desde métodos tradicionais de aprendizado de máquina (por exemplo, decision trees e máquinas de vetores de suporte) até abordagens mais complexas de deep learning, como redes neurais recorrentes (RNNs) e transformadores. Esses métodos generalizam melhor para dados não vistos, mas exigem uma grande quantidade de dados de treinamento rotulados e podem ser computacionalmente caros.
  • Abordagens híbridas combinam métodos baseados em regras e aprendizado de máquina, aproveitando os pontos fortes de ambos. Um sistema baseado em regras pode ser utilizado para identificar entidades mais simples, enquanto o aprendizado de máquina pode identificar entidades mais complexas.
Mixture of Experts | 12 de dezembro, episódio 85

Decodificando a IA: resumo semanal das notícias

Participe do nosso renomado painel de engenheiros, pesquisadores, líderes de produtos e outros enquanto filtram as informações sobre IA para trazerem a você as mais recentes notícias e insights sobre IA.

Metodologias NER

Desde a criação do NER, houve avanços metodológicos significativos, especialmente com técnicas baseadas em aprendizado profundo. As iterações mais recentes incluem:

  • Redes neurais recorrentes (RNNs) e memória de longo prazo (LSTMs). RNNs são um tipo de rede neural projetada para problemas de predição de sequência. As LSTMs, um tipo especial de RNN, conseguem aprender a reconhecer padrões ao longo do tempo e manter informações na "memória" durante longas sequências, o que as torna particularmente úteis para entender o contexto e identificar entidades.
  • Campos aleatórios condicionais (CRFs). Os CRFs são frequentemente usados em combinação com LSTMs para tarefas de NER. Eles podem modelar a probabilidade condicional de uma sequência inteira de rótulos, em vez de apenas rótulos individuais, tornando-os úteis para tarefas em que o rótulo de uma palavra depende dos rótulos das palavras ao redor.
  • Transformadores e BERT. Redes de transformadores, especialmente o modelo BERT (Bidirectional Encoder Representations from Transformers), tiveram um impacto significativo no NER. Usando um mecanismo de autoatenção que pesa a importância de diferentes palavras, o BERT considera o contexto completo de uma palavra ao observar as palavras antes e depois dela.

O processo da NER

Etapa 1. Coleta de dados

O primeiro passo no NER é agregar um conjunto de dados de textos anotados. Esse conjunto deve conter exemplos de textos onde as entidades nomeadas estão rotuladas ou marcadas, indicando seus tipos. As anotações podem ser feitas manualmente ou utilizando métodos automatizados.

Etapa 2. Pré-processamento de dados

Após a coleta dos dados, o texto deve ser limpo e formatado. Pode ser necessário remover caracteres desnecessários, normalizar o texto e/ou dividir o texto em sentenças ou tokens.

Etapa 3. Extração de recursos

Nessa etapa, também são extraídas características relevantes do texto pré-processado. Esses recursos podem incluir marcação de partes do discurso (marcação POS), incorporação de palavras e informações contextuais, entre outros. A escolha das características dependerá do modelo de NER que a organização utilizar.

Etapa 4. Treinamento de modelo

O próximo passo é treinar um modelo de aprendizado de máquina ou deep learning usando o conjunto de dados anotados e as características extraídas. O modelo aprende a identificar padrões e relacionamentos entre palavras no texto, bem como seus rótulos de entidades nomeadas correspondentes.

Etapa 5. Avaliação de modelos

Após o treinamento do modelo de NER, ele deve ser avaliado para verificar seu desempenho. É possível medir métricas como precisão, recall e F1 score, que indicam o quão bem o modelo identifica e classifica corretamente as entidades nomeadas.

Etapa 6. Ajuste fino do modelo

Com base nos resultados da avaliação, você deve refinar o modelo para melhorar seu desempenho. Isso pode incluir ajustes nos hiperparâmetros, modificação dos dados de treinamento e/ou uso de técnicas mais avançadas (por exemplo, combinação de modelos ou adaptação de domínios).

Etapa 7. Inferência

Nessa etapa, você pode começar a usar o modelo para inferir novos textos, nunca antes vistos. O modelo receberá o texto de input, aplicará as etapas de pré-processamento, extrairá os recursos relevantes e, por fim, preverá os rótulos de entidades nomeadas para cada token ou trecho do texto.

Etapa 8.Pós-processamento

A produção do modelo de NER pode precisar passar por etapas de pós-processamento para refinar os resultados e/ou adicionar informações contextuais. Talvez você precise concluir tarefas como a vinculação de entidades, em que as entidades nomeadas são vinculadas a bases de conhecimento ou bancos de dados para enriquecimento adicional.

Implementação do processo de NER

A maneira mais fácil de implementar um sistema de Named Entity Recognition é usar uma interface de programação de aplicativos (API). APIs do NER são interfaces baseadas na web ou locais que fornecem acesso às funcionalidades do NER. Alguns exemplos populares de APIs do NER incluem:

Toolkit para processamento de linguagem natural (NLTK)

O NLTK é uma plataforma líder de código aberto para a criação de programas Python para trabalhar com dados de linguagem humana. Ele fornece interfaces fáceis de usar para mais de 100 modelos de extração treinados2. Também inclui bibliotecas de processamento de texto para classificação, tokenização, stemming, marcação, análise e raciocínio semântico. O NLKT tem seu próprio classificador para reconhecer entidades nomeadas, chamado ne_chunk, mas também fornece um wrapper para usar o marcador Stanford NER em Python.

Stanford Named Entity Recognizer

Desenvolvido pela Stanford University, o Stanford NER é uma implementação em Java amplamente considerada como a principal biblioteca de extração de entidades. Ele se baseia em CRF e oferece modelos pré-treinados para extrair entidades nomeadas.

SpaCy

Escrito em Python e conhecido por sua velocidade e facilidade de uso, o SpaCy é uma biblioteca de software de código aberto para NLP avançado. É construído com base nas pesquisas mais recentes e foi projetado para uso em produtos reais. Também possui um sistema estatístico avançado que permite aos usuários construir extratores de NER personalizados.

Aplicações de NER

À medida que as tecnologias continuam a evoluir, os sistemas de NER se tornarão cada vez mais onipresentes, ajudando as organizações a interpretar os dados que encontram diariamente. Até agora, tem se mostrado essencial em vários setores, como saúde, finanças, atendimento ao cliente e cibersegurança.

Alguns dos casos de uso mais impactantes são:

Extração de informações

O NER é um primeiro passo crucial para extrair informações úteis e estruturadas de grandes bancos de dados não estruturados. Os motores de busca utilizam o NER para melhorar a relevância e precisão dos resultados de pesquisa.

Agregação automatizada de notícias

Os agregadores de notícias utilizam o NER para categorizar artigos e histórias com base nas entidades nomeadas que eles contêm, permitindo uma maneira mais organizada e eficiente de apresentar notícias ao público. Por exemplo, o NER para aplicativos de notícias automatiza o processo de classificação, agrupando histórias semelhantes e fornecendo uma visão mais abrangente de determinados eventos.

Monitoramento de redes sociais

Com a proliferação de plataformas de redes sociais, a quantidade de dados textuais disponíveis para análise é esmagadora. O NER desempenha um papel significativo na análise de redes sociais, identificando entidades fundamentais em postagens e comentários para entender tendências e opiniões públicas sobre diferentes tópicos (especialmente opiniões sobre marcas e produtos). Essas informações podem ajudar empresas a realizar análises de sentimento, desenvolver estratégias de marketing, criar respostas de atendimento ao cliente e acelerar os esforços de desenvolvimento de produtos.

Chatbots e assistentes virtuais

Assistentes virtuais e chatbots de inteligência artificial generativa utilizam o NER para entender com precisão as solicitações dos usuários e consultas de suporte ao cliente. Ao identificar entidades críticas nas consultas dos usuários, essas ferramentas baseadas em IA podem fornecer respostas precisas e específicas ao contexto. Por exemplo, na consulta "Encontre restaurantes de Soul Food perto de Piedmont Park", o NER ajuda o assistente a entender "Soul Food" como a culinária, "restaurantes" como o tipo de estabelecimento e "Piedmont Park" como o local.

Cibersegurança

Na cibersegurança, o NER ajuda empresas a identificar possíveis ameaças e anomalias em logs de rede e outros dados relacionados à segurança. Por exemplo, ele pode identificar endereços IP suspeitos, URLs, nomes de usuários e nomes de arquivos em logs de segurança de rede. Assim, o NER pode facilitar investigações mais detalhadas de incidentes de segurança e melhorar a segurança geral da rede.

Desafios do uso do NER

O NER percorreu um longo caminho desde sua criação, integrando tecnologias inovadoras e expandindo significativamente sua utilidade ao longo do tempo. No entanto, há alguns desafios notáveis a considerar ao avaliar as tecnologias NER.

Embora o NER tenha feito muitos progressos para idiomas como o inglês, ele não tem o mesmo nível de precisão para muitos outros. Isso se deve frequentemente à falta de dados rotulados nesses idiomas. O NER multilíngue, que envolve transferir conhecimento de um idioma para outro, é uma área ativa de pesquisa que pode ajudar a preencher essa lacuna.

Às vezes, entidades podem estar aninhadas dentro de outras entidades, e reconhecer essas entidades aninhadas pode ser um desafio. Por exemplo, na frase "A Pennsylvania State University, University Park, foi estabelecida em 1855", tanto "Pennsylvania State University" quanto "A Pennsylvania State University, University Park" são entidades válidas.

Além disso, embora os modelos gerais de NER possam identificar entidades comuns como nomes e localizações, eles podem ter dificuldades com entidades específicas de certos domínios. Por exemplo, no campo médico, identificar termos complexos como nomes de doenças ou de medicamentos pode ser desafiador. Modelos de NER específicos de domínios podem ser treinados em dados especializados, mas obter essas informações pode ser um desafio em si.

Os modelos de NER também podem enfrentar problemas mais amplos com ambiguidade (por exemplo, "Apple" pode se referir a uma fruta ou à empresa de tecnologia); variação no nome das entidades (por exemplo, "EUA", "E.U.A.", "Estados Unidos" e "Estados Unidos da América" referem-se ao mesmo país); e informações contextuais limitadas (em que textos e/ou frases não contêm contexto suficiente para identificar e categorizar entidades com precisão).

Embora o NER tenha seus desafios, os avanços contínuos estão constantemente melhorando sua precisão e aplicabilidade, ajudando assim a minimizar o impacto das lacunas tecnológicas existentes.

O futuro do NER

Embora o NER seja um campo bem estabelecido, ainda há muito trabalho a ser feito.

Olhando para o futuro, uma área promissora é o uso de técnicas de aprendizado não supervisionado para NER. Embora técnicas de aprendizado supervisionado tenham obtido bons resultados, elas exigem muitos dados rotulados, o que pode ser um desafio de se obter. Técnicas de aprendizado não supervisionado não exigem dados rotulados e ajudam as organizações a superar desafios relacionados à disponibilidade de dados.

Outra direção interessante é a integração do NER com outras tarefas de PLN. Por exemplo, modelos conjuntos para NER e vinculação de entidades (que envolve vincular entidades às suas entradas correspondentes em uma base de conhecimento) ou NER e resolução de correferência (que envolve determinar quando duas ou mais expressões em um texto se referem à mesma entidade) poderiam permitir sistemas que entendem e processam melhor os textos.

O aprendizado few-shot e o NER multimodal também expandem os recursos das tecnologias NER. Com o aprendizado few-shot, os modelos são treinados para realizar tarefas com apenas alguns exemplos, o que pode ser particularmente útil quando os dados rotulados são escassos. Já o NER multimodal envolve a integração de texto com outros tipos de entidades. Uma imagem ou um áudio, por exemplo, pode fornecer contexto adicional que ajuda a reconhecer entidades.

Soluções relacionadas
IBM watsonx Orchestrate

Projete assistentes e agentes de IA escaláveis com facilidade, automatize tarefas repetitivas e simplifique processos complexos com o IBM® watsonx Orchestrate.

Conheça o watsonx Orchestrate
Ferramentas e APIs de processamento de linguagem natural

Acelere o valor comercial da inteligência artificial com um portfólio poderoso e flexível de bibliotecas, serviços e aplicativos.

Explore as soluções de PNL
Consultoria e serviços em IA

Reinvente os fluxos de trabalho e operações críticos adicionando IA para maximizar experiências, tomadas de decisão em tempo real e valor de negócios.

Explore os serviços de IA
Dê o próximo passo

Projete assistentes e agentes de IA escaláveis com facilidade, automatize tarefas repetitivas e simplifique processos complexos com o IBM® watsonx Orchestrate.

Conheça o watsonx Orchestrate Explore as soluções de PLN