Aula 07 - Named Entity Recognition
1- O que é Named Entity Recognition?
Reconhecimento de entidade nomeada (NER) (também conhecida como identificação de entidade, segmentação de entidade e extração de entidade) é uma subtarefa 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.
E produzindo 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%.
2- NER no python NLTK
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()
Árvore sintática gerada pelo NER |
Post a Comment