O que é reconhecimento de entidades nomeadas?

26 de agosto de 2023

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 (PLN) que identifica categorias predefinidas de objetos em um corpo de texto.

Essas categorias podem incluir, entre outros, nomes de indivíduos, organizações, localizações, expressões de tempo, quantidades, códigos médicos, valores monetários e percentuais. 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 cada categoria.

Quando o termo "NER" foi cunhado na Sexta 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, devendo grande parte de sua evolução aos avanços nas técnicas de aprendizado de máquina e deep learning.

Projeto 3D de bolas rolando em uma pista

As últimas notícias e insights sobre IA 


Descubra insights selecionadas por especialistas sobre IA, nuvem e outros assuntos no boletim informativo semanal Think. 

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 de negócios1.

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, abordagens de aprendizado de máquina e abordagens híbridas.

  • 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 funcionalidades estruturais e gramaticais. No entanto, esses métodos podem ser demorados e podem não servir bem para dados não vistos.
  • 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.
Mistura de Especialistas | Podcast

Decodificando a IA: resumo semanal das notícias

Junte-se a 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 deep learning. As iterações mais recentes incluem:

  • Redes neurais recorrentes (RNNs) e memória de curto longo prazo (LSTM). As RNNs são um tipo de rede neural projetada para problemas de previsão de sequências. 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

A primeira etapa no NER é agregar um conjunto de dados de texto anotados. O conjunto de dados 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 do conjunto de 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 funcionalidades relevantes do texto pré-processado. Essas funcionalidades podem incluir marcação de partes do discurso (marcação POS), incorporação de palavras e informações contextuais, entre outros. A escolha das funcionalidades dependerá do modelo de NER que a organização utilizar.

Etapa 4. Treinamento de modelo

A próxima etapa é treinar um modelo de aprendizado de máquina ou deep learning usando o conjunto de dados anotado e as funcionalidades 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 pontuação F1, que indicam o quanto 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

Nesse estágio, você pode começar a usar o modelo para inferir novos textos não vistos. O modelo receberá o texto de input, aplicará as etapas de pré-processamento, extrairá as funcionalidades 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 do NER personalizados.

Aplicações de NER

À medida que as tecnologias continuam a evoluir, os sistemas 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 mecanismos 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 sentimentos, 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 impulsionadas por 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, URLs, nomes de usuários e nomes de arquivos suspeitos 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 a lacuna de idiomas do NER.

À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 do 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 do 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 do 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 o 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 NLP. 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
Notas de rodapé

1 Analytics and AI-driven enterprises thrive in the Age of With, Deloitte Insights, 25 de julho de 2019

2 3 open source NLP tools for data extraction, InfoWorld, 10 de julho de 2023