Nesse artigo vamos entender um pouco melhor como é possível reconhecer entidades nomeadas usando algoritmos computacionais. Esse tipo de tarefa é muito importante no contexto de PLN visto que ela permite a extração de informações e também outras aplicações.
Esse artigo mostrará uma definição para esse tipo de tarefa e também um exemplo bastante claro de como você pode usar o python para reconhecer entidades nomeadas.
Gosta de aprender sobre processamento de linguagem natural? Veja nosso curso gratuito.
Reconhecimento de entidade nomeada (NER – em inglês – Named Entity Recognition) (também conhecida como identificação de entidade, segmentação de entidade e extração de entidade) é uma sub-tarefa de extração de informações que procura localizar e classificar menções de entidade nomeada em texto não estruturado em categorias predefinidas, como nomes de pessoas e organizações, locais, códigos médicos, expressões de tempo, quantidades, valores monetários, percentagens, etc.
A maioria das pesquisas sobre sistemas NER foi estruturada como um bloco de texto não anotado, como este: Jim comprou 300 ações da Acme Corp em 2006. Ao produzir um bloco de texto anotado que destaca os nomes das entidades:
[Jim] Pessoa comprou 300 ações da [Acme Corp.] Organização em [2006] Tempo.
Neste exemplo, um nome de pessoa, um nome de empresa e uma expressão temporal foram detectados e classificados. Os sistemas de NER de última geração para o inglês produzem um desempenho quase humano. Por exemplo, o melhor sistema que entra no MUC-7 obteve 93,39% da medida F, enquanto os anotadores humanos pontuaram 97,60% e 96,95%.
Esse trecho foi adaptado da wikipedia
Primeiramente crie algum texto para ser analizado:
import nltk
paragraph = "The Taj Mahal was built by Emperor Shah Jahan"
Faça a separação de palavras:
# separa cada palavra
words = nltk.word_tokenize(paragraph)
# faz o POS-Tagging
tagged_words = nltk.pos_tag(words)
Realize o NER e desenhe:
# aqui você poderá encontrar entidades como:
# orgnizações, pessoas, localizações, data, tempo, porcentagem, lugares, posição global
named_entity = nltk.ne_chunk(tagged_words)
named_entity.draw()
Quer acessar um exemplo implementado em Python sobre como reconhecer entidades nomeadas? Acesse nosso repositório no Github:
Esse post foi modificado em 29 de dezembro de 2021 13:19
This website uses cookies.