MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO DEPARTAMENTO DE CIÊNCIA E TECNOLOGIA INSTITUTO MILITAR DE ENGENHARIA CURSO DE GRADUAÇÃO EM ENGENHARIA DE COMPUTAÇÃO 1 o Ten AMON RHANIERY BRITO MACHADO 1 o Ten LUCAS CAWAI JULIÃO PEREIRA NATÁLIA FERREIRA GODOT SOUZA ADAPTAÇÃO DE FERRAMENTA DE RECONHECIMENTO E EXTRAÇÃO DE ENTIDADES EM TEXTOS PARA A WEB SEMÂNTICA BRASILEIRA Rio de Janeiro 2019
60
Embed
MINISTÉRIODADEFESA EXÉRCITOBRASILEIRO ... · e visa permitir maior interoperabilidade entre máquinas e humanos (SOUZA; ALVA- RENGA, 2004). Em 2001, seu idealizador Tim Berners-Lee,
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
MINISTÉRIO DA DEFESAEXÉRCITO BRASILEIRO
DEPARTAMENTO DE CIÊNCIA E TECNOLOGIAINSTITUTO MILITAR DE ENGENHARIA
CURSO DE GRADUAÇÃO EM ENGENHARIA DE COMPUTAÇÃO
1o Ten AMON RHANIERY BRITO MACHADO1o Ten LUCAS CAWAI JULIÃO PEREIRANATÁLIA FERREIRA GODOT SOUZA
ADAPTAÇÃO DE FERRAMENTA DE RECONHECIMENTO EEXTRAÇÃO DE ENTIDADES EM TEXTOS PARA A WEB SEMÂNTICA
BRASILEIRA
Rio de Janeiro2019
INSTITUTO MILITAR DE ENGENHARIA
1o Ten AMON RHANIERY BRITO MACHADO1o Ten LUCAS CAWAI JULIÃO PEREIRANATÁLIA FERREIRA GODOT SOUZA
ADAPTAÇÃO DE FERRAMENTA DE RECONHECIMENTOE EXTRAÇÃO DE ENTIDADES EM TEXTOS PARA A WEB
SEMÂNTICA BRASILEIRA
Projeto de Fim de Curso apresentado ao Curso de Graduação emEngenharia de Computação do Instituto Militar de Engenharia,como requisito parcial para a obtenção do título de Engenheiro deComputação.
Orientadora: Profa. Maria Claudia Reis Cavalcanti - D.Sc.Co-Orientador: Diego Campos Moussallem - D.Sc.Co-Orientadora: CF Kelli de Faria Cordeiro - D.Sc.
Rio de Janeiro2019
c2019
INSTITUTO MILITAR DE ENGENHARIAPraça General Tibúrcio, 80 - Praia VermelhaRio de Janeiro - RJ CEP 22290-270
Este exemplar é de propriedade do Instituto Militar de Engenharia, que poderá incluí-loem base de dados, armazenar em computador, microfilmar ou adotar qualquer forma dearquivamento.
É permitida a menção, reprodução parcial ou integral e a transmissão entre bibliotecasdeste trabalho, sem modificação de seu texto, em qualquer meio que esteja ou venha aser fixado, para pesquisa acadêmica, comentários e citações, desde que sem finalidadecomercial e que seja feita a referência bibliográfica completa.
Os conceitos expressos neste trabalho são de responsabilidade do(s) autor(es) e do(s)orientador(es).
Machado, Amon Rhaniery BritoAdaptação de Ferramenta de Reconhecimento e Ex-
tração de Entidades em Textos para a Web Semân-tica Brasileira / Amon Rhaniery Brito Machado, Lu-cas Cawai Julião Pereira, Natália Ferreira Godot Souza,orientado por Maria Claudia Reis Cavalcanti , DiegoCampos Moussallem e Kelli de Faria Cordeiro - Rio deJaneiro: Instituto Militar de Engenharia, 2019.
58p.: il.
Projeto de Fim de Curso (graduação) - InstitutoMilitar de Engenharia, Rio de Janeiro, 2019.
1. Curso de Graduação em Engenharia de Compu-tação - projeto de fim de curso. 1. Processamento deLinguagem Natural. 2. Reconhecimento de EntidadeNomeada. 3. Extração de Informação. 4. Web Semân-tica. I. Cavalcanti, Maria Claudia Reis . II. Mous-sallem, Diego Campos. III. Cordeiro, Kelli de Faria .IV. Título. V. Instituto Militar de Engenharia.
1
2
A todos que nos ajudaram nessa trajetória e permitiram que cons-truíssemos nosso futuro.
3
AGRADECIMENTOS
Agradeço a todas as pessoas que nos incentivaram, apoiaram e possibilitaram esta
oportunidade de ampliar nossos horizontes.
Nossos familiares e mestres, especialmente aos nossos orientadores pelo tempo e de-
dicação empregados em auxiliar na confecção desse trabalho.
Em especial, gostaria de reconhecer todo o esforço e dedicação do grande amigo Amon.
É de notável importância o companheirismo e motivação que ele foi capaz de nos dar du-
rante todo o processo de construção desse trabalho. Foi um enorme prazer ter estado esse
trabalho todo com você. E além, do meu grupo de amigos imaculados, Samuel, Gabi e
Octavio, por todo o apoio psicológico e moral até o presente momento. Teria sido muito
mais difícil sem vocês.
4
“Quanto mais aumenta nosso conhecimento, mais evidente fica nossa
TAB.5.2 Métricas do treinamento da rede com o Corpus Primeiro HAREM. . . . . 44
9
LISTA DE SIGLAS
API Application Programming Interface
BENGAL Automatic Generation of Benchmarks for Entity Recognition and Lin-
kingDTD Document Type Definition
EI Extração da Informação
EL Entity Linking
ETL Extração, Transformação e Carregamento
FN Falso Negativo
FOX Federated Knowledge Extraction Framework
FP Falso Positivo
GERBIL General Entity Annotation Benchmark Framework
LOD Linked Open Data
MVC Model-view-controller
NED Named Entity Desambiguation
NER Named-entity recognition
NIF NLP Interchange Format
NLP Natural Language Processing
PDF Portable Document Format
RDF Resource Description Framework
RE Relation Extraction
URI Uniform Resource Identifers
VP Verdadeiro Positivo
VN Verdadeiro Negativo
XML eXtensible Markup Language
10
RESUMO
Com o surgimento dos computadores veio a necessidade de se implementar tarefas
que envolvam a linguagem humana, principalmente através do processamento de textos.
Esse tratamento é útil ao realizar traduções de diversas fontes de conhecimento na Web
para outros idiomas e question-answering (em que há a busca por frases completas, di-
ferentemente das buscas por palavras chave). Para processar as informações é necessário
fazer o uso de tarefas como Extração de Informação (EI) e Desambiguação.
O Portal Brasileiro de Dados Abertos, atualmente, possui cerca de 803 conjuntos de
dados dispostos no formato PDF com textos corridos e informações não estruturadas.
Nesse contexto, é fundamental, dentre as atividades da EI, realizar o Reconhecimento de
Entidades Nomeadas (NER) com o fim de permitir a estruturação de textos.
Atualmente, a ferramenta FOX (Federated Knowledge Extraction Framework) tem
conseguido bons resultados ao combinar, através de técnicas de aprendizado de máquina,
outras quatro ferramentas NER para a língua inglesa. Embora já existam trabalhos para
sua adaptação para outros idiomas, ainda não foi feito um esforço no sentido de adaptá-la
para o português.
O objetivo do presente trabalho é implementar a FOX na língua portuguesa. Utilizou-
se nela ferramentas já existentes nesse idioma, assim como um leitor responsável por rece-
ber os conjuntos de dados para treino. Além disso, visando a tarefas futuras converteu-se
os dados que serão usados na avaliação para o formato adequado. Por fim, realizou-se
testes através da ferramenta de benchmarking GERBIL e com o intuito de facilitar a com-
preensão dos resultados obtidos, foram empregadas formas de visualização feitas com as
ferramentas Jupyter e Tableau.
11
ABSTRACT
With the emergence of computers came the need to implement tasks that involve hu-
man language, especially through word processing. This treatment is useful when trans-
lating from various sources of knowledge on the Web into other languages and question-
answering (where full sentences are searched, unlike keyword searches). To process the
information it is necessary to make use of tasks such as Information Extraction (IE) and
Disambiguation.
The Brazilian Open Data Portal currently has about 803 datasets arranged in PDF
format with flowing text and unstructured information. In this context, it is essential,
among the activities of IE, to perform the Recognition of Named Entities (NER) to allow
the structuring of texts.
Currently, the FOX (Federated Knowledge Extraction Framework) tool has achieved
good results by combining, through machine learning techniques, four other NER tools
for the English language. Although there are already works for its adaptation to other
languages, no effort has yet been made to adapt it to Portuguese.
This paper aims to implement FOX in Portuguese. It used tools that already exist
in that language, as well as a reader responsible for receiving the data sets for training.
Also, for future tasks, the data that will be used in the evaluation has been converted
to the appropriate format. Finally, tests were performed through the benchmarking tool
GERBIL. And to facilitate the understanding of the results obtained, visualization forms
made with the tools Jupyter and Tableau were used.
12
1 INTRODUÇÃO
No início dos anos 90, surgiu a World Wide Web no intuito de permitir a troca de infor-
mações entre computadores através de uma interface intuitiva (SOUZA; ALVARENGA,
2004). Contudo, com o acúmulo de dados disponíveis nas páginas da web e sua gama
de aplicações viu-se a necessidade de que programas também pudessem interagir com
as páginas da web (SOUZA; ALVARENGA, 2004), desenvolvendo-se a World Wide Web
para o que passou a ser a Web Semântica. A fim de promover essa interoperabilidade, os
pesquisadores se esforçam em estruturar informações seguindo padrões, tais como o uso
do formato RDF (Resource Description Framework).
Recentemente, o Brasil tem se juntado a outras iniciativas mundiais no sentido de
estabelecer políticas de dados abertos, apoiando trabalhos que facilitem o compartilha-
mento de informação (POSSAMAI, 2016). Nesse intuito, a Secretaria de Logística e
Tecnologia da Informação desenvolveu o Portal Brasileiro de Dados Abertos1 baseado em
um conjunto de padrões e tecnologias existentes.
O campo do Processamento da Linguagem Natural (NLP) se insere nesse contexto
ajudando a estruturar as informações embutidas em textos e dispô-las nos formatos es-
perados. Em um dos seus processos, a Extração da Informação, faz-se uso do Reconhe-
cimento de Entidades Nomeadas (NER) para encontrar objetos do mundo real em textos
não estruturados, tais como pessoas, localizações e organizações (JURAFSKY; MARTIN,
2014).
1.1 MOTIVAÇÃO
Atualmente, o Portal Brasileiro de Dados Abertos encontra-se com aproximadamente
5273 conjuntos de dados, sendo que apenas 24 conjuntos encontram-se estruturados nos
formatos adequados para a Web Semântica (SECRETARIA DE TECNOLOGIA DA IN-
FORMAÇÃO, 2017). A fim de facilitar a estruturação desses conjuntos de dados deve-se
desenvolver ferramentas que ofereçam suporte automatizado a esse processo e possam ser
utilizadas no português, uma vez que a maior parte das ferramentas existentes não estão
adaptadas para a esta língua.
Além disso, para o desenvolvimento dessas ferramentas é necessário haver um processo1http://dados.gov.br
13
de avaliação dos resultados por elas produzidos a fim de que se possa entender melhorias
a serem realizadas para aumentar a qualidade dos resultados. A complexidade desse
processo está na grande quantidade de dados produzidos pela avaliação do desempenho
da ferramenta. Baseado nisso, se torna necessário à realização dessas avaliações de acordo
com diferentes ênfases, permitindo, assim, um avanço mais detalhado e profundo dessas
análises (WAITELONIS et al., 2016).
1.2 OBJETIVO
Uma ferramenta com bons resultados nesse processo de Reconhecimento de Entidades
Nomeadas é a FOX2 (Federated Knowledge Extraction Framework). Ela combina, em sua
última versão, outras quatro ferramentas de NER através de abordagens de aprendizado
de máquina, com o uso de comitês3. A FOX, no entanto, não está disponível para a
língua portuguesa, embora existam esforços no sentido de adaptá-la para outros idiomas.
Esse trabalho objetivou, portanto, implementar na FOX ferramentas com o suporte ao
português, especificamente as das organizações OpenNLP (BALDRIDGE, 2017), Stanford
(MANNING et al., 2014) e Spotlight (MENDES et al., 2011).
Tendo em vista a grande quantidade de informações normalmente obtidas ao avaliar
ferramentas de Extração de Informações, o trabalho também deve realizar o tratamento
de dados advindo dos experimentos de avaliação da FOX utilizando as técnicas de ETL
(Extração, Transformação e Carregamento) implementadas na ferramenta Jupyter 4. A
versão português foi avaliada através da ferramenta GERBIL (General Entity Annotator
Benchmark). Foram então ser estudadas as melhores formas de visualização para analisar
os resultados utilizando a ferramenta Tableau5. Por fim, realizou-se a comparação entre
as versões inglês/português.
1.3 PROPOSTA DE SOLUÇÃO
Tendo em vista o objetivo de fornecer o tratamento do idioma Português na ferramenta
FOX, apresenta-se a proposta de solução do trabalho na figura 1.1, a qual está estruturada
de acordo com as etapas. Foram adicionadas na FOX6 três ferramentas que já possuem2https://github.com/dice-group/FOX3Os algoritmos de comitês possuem o objetivo de conseguir uma performance de predição melhor que
seus membros (SPECK; NGOMO, 2014)4https://jupyter.org/5https://www.tableau.com/pt-br6https://github.com/AmonRhaniery/FOX/tree/FOXPT
14
o suporte ao português. A fim de efetivar isso, teve que ser selecionado um conjunto
de dados nesse idioma para treinamento e, ainda, outro conjunto para avaliação. Tais
conjuntos foram preparados a partir de Corpora já conhecidos, como o HAREM7 e o
SUMM-IT8.
Parte desse conjunto teve de ser convertido para o formato NIF, utilizado pela ferra-
menta de benchmarking GERBIL (General Entity Annotator Benchmark) na qual realizou-
se os experimentos de avaliação tendo como parâmetro os conjuntos de avaliação elabora-
dos manualmente (HAREM) assim como aqueles adquiridos automaticamente (advindos
da ferramenta BENGAL9). Além disso desenvolveu-se uma ferramenta para possibilitar
uma melhor visualização dos dados obtidos nos experimentos a fim de facilitar sua análise
e discussão.
FIG. 1.1: Solução proposta.
1.4 METODOLOGIA
De início, estudou-se as ferramentas de NER implementadas na FOX original que possuem
suporte à língua portuguesa (OpenNLP, Stanford, Spotlight), assim como a ferramenta
de avaliação GERBIL e suas métricas. No que tange ao tratamento e análise de dados,
instalou-se e comparou-se as ferramentas Pentaho Data Integration e Jupyter 10.
Feitos os estudos iniciais, buscou-se implementar as ferramentas que dão suporte ao
português e trabalhar nos dados responsáveis por gerar um modelo em português da rede
neural utilizada pela FOX. A fim de treinar a ferramenta foi necessário implementar um7https://www.linguateca.pt/HAREM/8https://www.inf.pucrs.br/linatural/wordpress/recursos-e-ferramentas/summ-it/9https://github.com/dice-group/BENGAL
10https://jupyter.org/
15
leitor capaz de receber as informações dos conjuntos de dados de referência (Corpora já
anotados).
Além disso, buscou-se converter o Corpus do conjunto de dados de referência para o
formato NIF (NLP Interchange Format) a fim de alimentar a GERBIL com ele. Foram
apresentados o protótipo e seus resultados parciais. Resultados anteriores de experimen-
tos na GERBIL também tiveram seus dados estudados nas ferramentas de visualização
propostas a fim de que os resultados finais pudessem ser melhor vistos.
Nos passos finais, foi executada a ferramenta de avaliação GERBIL a fim de comparar
a FOX com outros anotadores como Babelfy11 e Spotlight12, um de seus anotadores base.
Além disso, fez-se testes de Reconhecimento de Entidades Nomeadas entre os conjuntos
de dados gerados pela ferramenta BENGAL (NGOMO et al., 2018) (anotados automati-
camente) e o Segundo HAREM (anotados manualmente por profissionais da área através
da Linguateca13). Foi feito o tratamento e visualização desses dados recebidos pela GER-
BIL para que se pudesse analisar os resultados e entender os pontos fortes e fracos da
ferramenta FOX.
FIG. 1.2: Pipeline de execução da solução proposta.
1.5 ESTRUTURA
Essa dissertação se organiza da seguinte forma: O capítulo 2 contém conceitos teóricos
importantes de Web Semântica e Processamento de Linguagem Natural que devem ser
compreendidos para o melhor entendimento do trabalho realizado.
O capítulo 3 apresenta as ferramentas de reconhecimento de entidades nomeadas com
suporte ao português que estarão presentes na FOX, assim como a ferramenta de ben-11http://babelfy.org/12https://www.dbpedia-spotlight.org/13https://www.linguateca.pt/
16
chmarking responsável por medir a qualidade do produto final. Apresenta também as
ferramentas de tratamento e visualização de dados usadas sobre os resultados das avalia-
ções.
O capítulo 4 discorre sobre os conjuntos de dados utilizados como referência tanto
no treinamento quanto na avaliação das ferramentas. São utilizados conjuntos de dados
anotados manualmente e automaticamente (BENGAL e HAREM, respectivamente).
O capítulo 5 expõe o desenvolvimento do trabalho através da codificação de um lei-
tor de arquivos na ferramenta, da elaboração dos conjuntos de referência assim como do
treinamento da ferramenta FOX.
O capítulo 6 traz os resultados obtidos através dos testes da ferramenta FOX versão
português e a discussão acerca deles.
O capítulo 7 expõe a conclusão do trabalho realizado.
17
2 CONTEXTUALIZAÇÃO
2.1 WEB SEMÂNTICA
A iniciativa World Wide Web nos anos 90 foi responsável por regular a publicação de do-
cumentos na Internet com a proposta de fornecer acesso global à informação (BERNERS-
LEE et al., 1992). Contudo, com o passar dos anos, cresceu o número de dados expostos,
assim como diversificou-se a forma de os manusear, originando uma nova forma de se
empregar a Web. Essa extensão da antiga Web tem sido chamada de Web Semântica
e visa permitir maior interoperabilidade entre máquinas e humanos (SOUZA; ALVA-
RENGA, 2004). Em 2001, seu idealizador Tim Berners-Lee, publicou uma visão que
o acompanhava desde 1994 com a primeira World Wide Web Conference. Na Scientific
American, escreveu um artigo demonstrando a evolução dos documentos para se ter infor-
mação derivada dos dados através de uma teoria semântica de interpretação dos símbolos
(BERNERS-LEE et al., 2001).
O cerne da Web Semântica é composto de padrões a fim de permitir a organização
e recuperação de informações. Trata-se principalmente de formar ligações com os dados
descritos semanticamente a fim de que tanto pessoas quanto máquinas possam comparti-
lhar conhecimento de forma não ambígua. Dessa forma, tem-se a escolha do XML como
recomendação (SOUZA; ALVARENGA, 2004). Esta linguagem permite que o DTD (Do-
cument Type Definition) seja definido pelo usuário, no qual ele expõe o padrão utilizado,
permitindo maior flexibilidade na construção da semântica dos dados e compartilhamento
mais relevante entre os sistemas de informação.
No âmbito da Web Semântica, a W3C recomenda o uso do formato RDF para a
publicação dos dados. Nele, utiliza-se a infra-estrutura XML com um padrão de triplas
contituídas de sujeito, predicado e objeto para descrever as informações. Por sujeito, se
compreende o recurso - qualquer objeto que possa ser descrito - a receber propriedades,
sendo o predicado responsável por especificar esta propriedade cujo valor vai ser definido
no objeto. Os recursos são explicitados através de URIs, conjunto de caracteres respon-
sáveis por endereçar, de forma única, recursos da web. A interligação destes recursos
forma uma rede de grafos direcionada. Tem-se na figura 2.1 um exemplo de grafo RDF,
18
o qual representa a informação de que o sujeito http://www.ime.eb.br/ime possui a pro-
priedade http://www.w3.org/2000/01/rdf-schema#label cujo valor é Instituto Militar de
Engenharia. A propriedade label indica que seu objeto é um nome do sujeito legível para
humanos.
FIG. 2.1: Exemplo de tripla RDF
Os nós do grafo podem conter URIs - para sistemas de Inteligência Artificial, tudo
que existe e puder ser representado (STAAB, 2010) -, ou valores literais. A importância
na utilização de um identificador de recurso uniforme consiste em seu uso global que pode
ser interpretado de forma consistente em diversos contextos.
A sintaxe padronizada do RDF permite que aplicações possam interagir de maneira
mais inteligente e automatizada, tendo em vista que os dados são manipulados através dos
descritores usando referências já compartilhadas (SOUZA; ALVARENGA, 2004). Além
disso, este formato permite a utilização de diversos padrões de metadados - namespaces.
Usualmente estes domínios são relacionados a prefixos e os vocábulos definidos por eles
atuam como sufixo na forma prefixo:sufixo. No caso da figura 2.1, tem-se a propriedade
label, parte do namespace RDFs, tornando sua identificação rdfs:label.
Neste sentido, há algumas notações de linguagens para expor as triplas RDF. A mais
comum é baseada no XML e denominada RDF/XML. O código 2.1 descreve através desta
notação o grafo exposto na figura 2.1. Como pode-se observar, há pouca legibilidade nesta
escrita, o que pode ter sido um fator inibidor para a rápida adoção da linguagem RDF
(SHADBOLT et al., 2006). Entretanto, outras notações da linguagem permitem maior
clareza na interpretação como a N3 (ou Turtle), exemplificada no código 2.2. Atualmente,
portais como LiveJournal e Opera Community publicam seus dados no formato RDF na
Iniciativas ao redor do mundo se esforçam no processo de recuperação da informação.
Destaca-se a LOD14 (Linked Open Data), cujo cerne está em promover práticas15 para
publicação e interligação de dados de forma a produzir uma rede global de dados acessível a
todos, conforme demonstra a figura 2.2. A vantagem dessa associação está em constituir
um grafo, ferramenta matemática poderosa na resolução de problemas. Os princípios
dessa iniciativa consistem em utilizar URIs na nomeação de recursos, sendo ainda na
forma HTTP a fim de permitir posterior consulta com retorno em um arquivo RDF
válido (AUER et al., 2014).14https://www.w3.org/wiki/SweoIG/TaskForces/CommunityProjects/LinkingOpenData15https://www.w3.org/DesignIssues/LinkedData.html
20
FIG. 2.2: Nuvem da Linked Open Data. Fonte: (MCCRAE, 2019)
2.2 PROCESSAMENTO DE LINGUAGEM NATURAL
No contexto de Web Semântica, é de suma importância o conhecimento de técnicas para
estruturação da informação. Uma área bastante estudada nos últimos anos é a de Pro-
cessamento de Linguagem Natural. Através da qual máquinas são capazes de processar a
língua humana de forma a permitir maior interoperabilidade. Uma de suas importantes
atividades consiste em extrair informações semânticas a partir de textos. Esta tarefa é
chamada de Extração da Informação e inicia-se através do Reconhecimento de Entidades
Nomeadas ou Named Entity Recognition (NER) (AMARAL et al., 2013).
Entidades nomeadas podem ser consideradas de forma grosseira tudo aquilo que é
referenciado por nome próprio (JURAFSKY; MARTIN, 2014). São classificadas em ti-
pos como Organizações, Pessoas, Lugares, Genes, Nomes proteicos (COHEN; DEMNER-
FUSHMAN, 2014), e com algumas extensões nas entidades, tem-se datas e outras ex-
pressões temporais. São muito importantes nas tarefas de Web-based question answering
tendo em vista que para responder questões mais complexas as ferramentas de busca pre-
cisam extrair informações embutidas nos textos ou até mesmo realizar inferências. Além
disso, possuem papel importante em fontes de conhecimento estruturado como Wikipédia
21
(JURAFSKY; MARTIN, 2014).
O processo inicial na Extração da Informação consiste no Reconhecimento de Enti-
dades Nomeadas, ou seja extrair nomes próprios ou entidades nomeadas do texto para
que depois seja feita uma vinculação entre elas de forma a corresponder a entidades do
mundo real. Essa vinculação é resultado dos processos de Entity Linking (EL) e corefe-
rence resolution. Feito isso, é possível ainda realizar o passo de Relation Extraction (RE),
em que são procuradas e classificadas as relações semânticas entre as entidades do texto.
Geralmente estas relações são binárias, como declara a Web Semântica em seu formato
sujeito-predicado-objeto.
2.2.1 RECONHECIMENTO DE ENTIDADES NOMEADAS
Dentre as áreas de estudo da Extração de Informação, uma das mais importantes é a de
Reconhecimento de Entidades Nomeadas. É significativa para o desempenho das demais
atividades do ramo, como para a resolução de correferências (MORAES et al., 2010).
Possui finalidade de identificar entidades nomeadas e classificá-las em categorias antes
estabelecidas.
A tarefa recebe como entrada um texto e retorna um conjunto de palavras anotadas. A
dificuldade está nas ambiguidades, tanto em ser ou não uma entidade como na classificação
dos seus tipos. Um exemplo seria o fato da palavra JFK se referir a pessoa John F.
Kennedy ou ao aeroporto em Nova Iorque, por exemplo. Pode haver casos em que não
há contexto suficiente para auxiliar na desambiguação (FONSECA et al., 2015).
Além disso, identificar os limites iniciais e finais das entidades dentro do texto pode ser
difícil de acordo a rotulação utilizada (JURAFSKY; MARTIN, 2014). Considere o texto
”American Airlines, a unit of AMR Corp., immediately matched the move, spokesman
Tim Wagner said.” que sai do processo de NER classificado com duas formas de rotulação
diferentes, conforme mostra a figura 2.3. IO indica rótulos I e O como inside e outsite,
respectivamente. Ou seja, O quando está em categoria nenhuma e I é usado para quando
a palavra está nas demais categorias predefinidas. Já IOB tem o acréscimo de B como
beginning, usada como rótulo se é a primeira palavra da entidade, indicando seu início. A
desvantagem ao se usar a rotulação IO é caso haja duas entidades de mesma categoria,
tendo em vista que não dá para se diferenciar entre o fim da primeira e início da segunda.
Além disso, pode ser empregada a rotulação BILOU (utilizada pela ferramenta FOX).
Neste caso, acrescenta-se as tags L e U correspondentes a last e unit. Elas indicam
quando o token é o último em uma entidade nomeada de várias palavras e quando ela é
22
composta por apenas uma, respectivamente.
FIG. 2.3: Tabela de rotulação usando codificação IOB e IO. Fonte: (JURAFSKY; MAR-TIN, 2014).
23
3 FERRAMENTAS
3.1 NER
Diversas ferramentas reconhecidas na área de Reconhecimento de Entidades Nomeadas
e que possuem ampla contribuição científica por serem de código aberto são a FOX,
OpenNLP, Stanford CoreNLP e DBPedia Spotlight. Destas, apenas a FOX não possui
suporte para a língua portuguesa.
3.1.1 OPENNLP
A iniciativa OpenNLP (BALDRIDGE, 2017) busca oferecer suporte ao processamento
de linguagem natural através das atividades de tokenização, segmentação de sentenças,
etiquetagem morfossintática (part-of-speech tagging), extração de entidades nomeadas
(NER), extração de sintagmas (chunking), análise sintática (parsing), detecção de idi-
oma e resolução de referências pronominais. É uma ferramenta baseada em aprendizado
de máquina cuja biblioteca está escrita em Java (FONSECA et al., 2015).
O projeto conta com o auxílio da comunidade científica através de sua biblioteca
open source, e busca oferecer um conjunto de ferramentas maduro o suficiente para as
atividades de NLP.
3.1.2 STANFORD CORENLP
O conjunto de ferramentas Stanford CoreNLP é uma estrutura de anotação baseada em
Java e que contém diversos passos de processamento de linguagem natural. É amplamente
utilizada em meios governamentais, comerciais, e principalmente na comunidade científica
por ser um projeto de código aberto (MANNING et al., 2014). O objetivo desse projeto
nos últimos anos tem sido tornar o uso desta estrutura de anotação mais simples. Quanto
mais acessível e menos código de configuração for necessário, mais fácil é de se utiliza-la
como componente de sistemas maiores.
Sua arquitetura pode ser vista na figura 3.1. Através de uma sequência de anotadores,
o texto bruto, sem processamento prévio, é passado por cada objeto resultando em um
arquivo com todas as informações adicionadas por eles. Esta saída pode ser dada em
24
XML ou texto simples. A execução pode ser feita através de uma interface da linha de
comando ou pela API. Além de ser acessível para Java, atualmente outros esforços já
permitem que diversas linguagens façam uso da estrutura de anotadores como Python,
Ruby, Perl, etc (MANNING et al., 2014).
FIG. 3.1: Arquitetura do sistema Stanford CoreNLP. Fonte: (MANNING et al., 2014)
3.1.3 DBPEDIA SPOTLIGHT
A ferramenta16 desenvolvida pela equipe do projeto DBPedia17 também consiste num
sistema de anotadores automáticos para documentos de texto. A diferença para outras
ferramentas consiste principalmente no fato de usar URIs da própria DBPedia para seus
recursos. Foi desenvolvida com a finalidade de vincular os documentos de texto com a
Linked Open Data18. Esta ferramenta contribui para o desenvolvimento da Web de Dados
na medida em que permite usá-la como conhecimento básico em aplicativos orientados a
documentos, como faceted browsing (MENDES et al., 2011).
O mecanismo tem a finalidade maior de identificar as entidades dos textos corridos
através de URIs. Apresenta passos de NER além de possuir recursos para desambiguação.
Além disso, permite que o usuário forneça as configurações necessárias para cada anotador,
tornando-a assim uma ferramenta mais flexível. É possível definir o domínio de interesse,
assim como a tolerância de erro esperada. Por outro lado, ainda contribui com 272 classes
de entidades nomeadas dentro de sua ontologia DBPedia diferente das classes mais comuns
como pessoas, organizações e lugares (MENDES et al., 2011). Pode ser utilizada através16https://www.dbpedia-spotlight.org/17https://wiki.dbpedia.org/18https://lod-cloud.net/
25
de Serviço ou Aplicação Web e está licenciada através da licença Apache V2.
3.1.4 FEDERATED KNOWLEDGE EXTRACTION FRAMEWORK
O projeto FOX19 (Federated Knowledge Extraction Framework) foi criado a fim de moti-
var a transformação de dados não estruturados. Através do comitê, busca aperfeiçoar o
resultado de outras ferramentas de Reconhecimento de Entidades Nomeadas. Ao verificar
quinze algoritmos diferentes de aprendizado de máquina, obteve uma redução de erros em
quarenta por cento em sua melhor tentativa (SPECK; NGOMO, 2014). Em sua última
versão, quatro destes instrumentos estavam integrados a fim de traduzir conteúdos da
linguagem natural em informações estruturadas na língua inglesa.
O uso de comitê consiste em tornar a ferramenta FOX em um anotador com alta
performance preditiva através de outros anotadores base. Existem estratégias simples,
como a de votação, na qual as classificações finais geradas são baseadas na maioria obtida
dos anotadores base. E ainda, realizar uma votação ponderada, cujos anotadores possuem
peso e a classificação final é aquela de maior peso predita. Contudo, essas abordagens não
são confiáveis (DIETTERICH, 2000). Se todos os anotadores retornarem resultados erra-
dos, de modo consequente a classificação final estaria incorreta. Além disso, as diferentes
precisões dos anotadores para cada tipo de entidade não são levadas em consideração
na votação ponderada. A ferramenta FOX implementa portanto, a votação no nível das
categorias. Desta forma, é possível utilizar diferentes pesos para cada par ferramenta-
categoria. Os algoritmos estão implementados através do framework WEKA (Waikato
Environment for Knowledge Analysis) (HALL et al., 2009) com os parâmetros padrões
definidos em Speck e Ngomo (2014). Além disso, pode se utilizar uma abordagem de
votação no nível de categoria e uma votação simples. A primeira consiste em escolher a
ferramenta de NER com maior desempenho de previsão para cada tipo e então utilizá-la
para classificar dada categoria. A segunda combina o resultado dessas ferramentas com a
Regra de Votação por Maioria (KITTLER et al., 1998).
Na figura 3.2 é possível ter uma percepção da arquitetura da ferramenta e de seu
modelo de comitê. Em sua parte inicial ocorre um pré processamento dos arquivos dados
como entrada, a fim de que os textos possam ser extraídos. Estes textos podem ser
utilizados nas ferramentas de NER ou como conjuntos de treino, se já estiverem anotados.
Neste caso extrai-se as entidades classificadas. As saídas das ferramentas de NER são
postas na forma de matrizes. Os elementos da matriz correspondem as predições Pmn,t da
19https://github.com/dice-group/FOX
26
m-ésima ferramenta que o n-ésimo token é do t-ésimo tipo e são passadas como entrada
para o algoritmo de comitê escolhido. Para validação do modelo, elas são aleatoriamente
divididas em k conjuntos distintos a fim de que seja feita uma validação cruzada de k-fold.
Os resultados finais são gerados após os algoritmos de comitê.
A ferramenta ainda conta com suporte para cinco idiomas sendo que possui perfor-
mance melhor em todos esses idiomas do que outros sistemas de NER (SPECK; NGOMO,
2017). Contudo, a ferramenta não possui modelos treinados na língua portuguesa. Além
de integrar recursos de NER, conta também com abordagens de desambiguação de entida-
des (Named Entity Desambiguation - NED). Seus serviços já recebem mais de um milhão
de chamadas por mês por diversas organizações tendo em vista que a ferramenta possui
resultados melhores do que os estados da arte. Na figura 3.3 é possível ver a interface
Web da ferramenta e seu resultado ao analisar a simples frase "Jhon goes to school". É
bastante intuitiva com os campos Lang, Input Format, Extraction Type, Input, Output
Format e Fox Light descritos abaixo.
27
Lang Escolha do idioma do texto a ser anotado.
Input Campo para colocar o texto a ser anotado.
Input Format Formato do texto a ser anotado.
Extraction Type Tipo de experimento a ser executado podendo ser de RE ou NER
Output Format Formato de saída da ferramenta, podendo ser RDF/XML, Turtle, RDF/J-
SON, JSON-LD, TriG ou N-Quads.
Fox Light Campo para escolha das ferramentas implementadas, caso se queira utilizá-las
individualmente.
FIG. 3.3: Interface da ferramenta FOX ao realizar a tarefa de reconhecimento de entidadesnomeadas.
3.2 BENCHMARKING
3.2.1 GERBIL
A ferramenta GERBIL20 é um software para avaliar anotações de entidades semânticas.
Tem por finalidade permitir de maneira fácil e rápida esse tipo de análise, de forma
detalhada em um âmbito grande de conjuntos de dados. Dessa forma, a partir dessas
avaliações, o intuito é obter visualizações significativas com relação à integração e uso de20http://aksw.org/Projects/GERBIL.html
28
aplicativos de anotações. A GERBIL provê resultados que comparam ferramentas a fim de
que os usuários finais descubram onde são os pontos fortes e os fracos das implementações.
Como saída, apresenta as métricas F1, precisão e abrangência tanto micro quanto macro.
A micro é calculada através da soma de todos os verdadeiros positivos e negativos de
todos os documentos, enquanto a métrica macro é a média da métrica dos documentos
individuais.
A figura 3.4 representa a arquitetura da GERBIL, a qual é orientada a serviços e segue
o padrão MVC (model-view-controller). Possui configurações nos tipos de experimentos
com opções de escolha de sistemas de anotação de entidade e conjunto de dados. A saída
dos experimentos, assim como as descrições dos componentes, são todos colocados num
banco de dados sem servidor, para uma rápida implementação. Por fim, o componente
de exibição oferece algumas opções para visualizar as interfaces dos resultados. Pode-se
notar, pela figura, como o software utiliza um banco de dados para usar os conjuntos
de dados para os testes e anotadores, e com chamadas de serviços web. E, dadas as
configurações selecionadas pelos usuários, os experimentos são executados.
FIG. 3.4: Organização da ferramenta GERBIL. Fonte: (USBECK, 2015).
Na figura 3.5, é possível ver a interface da GERBIL. Nota-se que ela possui umausabilidade limpa e intuitiva de ser utilizada dados os conhecimentos básicos necessáriospara o que a ferramenta se propõe a fazer, tais como Experiment type e datasets. Alémdisso, ela conta com uma documentação didática que ajuda bastante o entendimento doseu funcionamento.
29
FIG. 3.5: A interface da ferramenta GERBIL
3.3 ANÁLISE DE DADOS
3.3.1 PENTAHO DATA INTEGRATION - PDI VS PYTHON JUPYTER
O Pentaho Data Integratino (PDI) é uma ferramenta de ETL (Extraction, Transformation,
Loading), conhecida simplesmente como Pentaho, tem como objetivo: ”Permitir que os
usuários inovem, combinem, limpem e preparem diversos dados de qualquer fonte [...]”
Ventara (2019). Assim, o PDI facilita a manipulação de dados através de interfaces
amigáveis e diminui a complexidade tentando eliminar a utilização de códigos fornecendo
o conhecido drag-and-drop software.
Já a Jupyter é um projeto sem fins lucrativos e com código aberto, bem moderno,
nascido em 2014, para dar apoio à ciência de dados interativa e toda a computação cien-
tífica no âmbito de todas as linguagens de programação. A comunidade desenvolvedora
da Jupyter tem o consenso de deixar o software sob os termos liberais da licença BSD
30
modificada.
Foi realizado um estudo em cima das duas ferramentas para decidir qual seria a mais
adequada para realizar a captação dos dados e preparação para a então sua utilização
na etapa de visualização dos resultados dos experimentos. Após a comparação, levando
em consideração a facilidade de se utilizar, a conduta de código aberto, a facilidade de
compartilhar o trabalho foi então escolhido a Jupyter. Ele oferece desenvolvimento na
linguagem Python que é muito conhecida e fácil de manipular, além de possuir ambientes
computacionais para ajudar a ver o desenvolvimento do tratamento de dados, antes da
fase de visualização.
3.3.2 TABLEAU
A Tableau21 está focada em ajudar a ver e entender os dados. A ideia é que em 2020 o
mundo irá gerar quantidades absurdas de dados, e assim o avanço para as oportunidades
do homem, através do poder dos dados, são enormes. A Tableau é um software capaz
de entregar esse poder com maior facilidade para as pessoas. Ele permite usar os dados
para resolver problemas com maior dinamismo, tornando a análise de dados rápida, fácil
e útil. É um software bem amigável em questões de usabilidade e diversidade.
É um software pago, que permite a conexão com diversas fontes de dados tanto
estáticas como arquivos texto (.txt, .csv, .tsv) quanto planilhas do excel (.xlsx, .xls), entre
outras. Além da diversidade em conexões locais, é possível também conexão a banco de
dados dos mais diversos como Oracle, MongoDB, MySQL e SparkSQL. Além disso, há
facilidade em manipular as diversas tabelas dentro da sua interface a fim de realizar joins
(left, right, inner e outer), ordenar, renomear e outras operações.
Também é possível manipular a visualização da conexão de outras diversas maneiras
na aba de planilhas, na qual é possível escolher as colunas ou linhas que se quer visualizar.
As formas de visualização são das mais variadas possíveis: pizza, barras, mapa e bolas.
É permitido o acréscimo de comentários e agrupamentos e filtros nas rows selecionadas.
Além disso, pode-se agregar diversas planilhas criadas anteriormente num dashboard para
melhor análise. Permite-se ainda publicar os resultados possibilitando um tratamento das
análises em grupo.
21https://www.tableau.com/
31
A figura 3.6 mostra a interface da ferramenta. Ela demonstra a aba de planilha onde
é possível montar a visualização através dos dados de alguma fonte realizando alguns
filtros, colorindo colunas e linhas e fazendo agregações.
FIG. 3.6: Interface da Tableau em planilha, com conjunto de métricas
FIG. 3.7: Interface da Tableau em planilha, com datasets selecionados
32
4 CONJUNTOS DE REFERÊNCIA
4.1 BENGAL
Devido aos altos custos de tempo e trabalho envolvidos na obtenção de um conjunto de
dados anotados para avaliação de ferramentas de reconhecimento de entidades nomea-
das, é difícil encontrar conjuntos amplos de benchmarking para este tipo de ferramenta
(NGOMO et al., 2018). Nesse contexto aparece um esforço para desenvolver-se uma forma
automática de geração de benchmarking para soluções de NER e EL: o BENGAL.
Conjuntos de benchmarking para NER e EL gerados manualmente apresentam algu-
mas desvantagens como a possível existência de erros humanos por falta de atenção ou
conhecimento, sua pequena extensão devido a dificuldade de serem gerados, o que torna-se
um problema quando se deseja avaliar a escalabilidade de uma ferramenta, por exemplo, e
a tendência que pode surgir em torno de recursos mais populares. A geração automática
de benchmarking para NER e EL, ou seja, o BENGAL, visa a contornar estes proble-
mas dos conjuntos de testes gerados manualmente. Ele se baseia na ampla quantidade
de dados em formato RDF que podem ser encontrados na web e então convertidos de
forma automática para textos anotados, seguindo o sentido inverso do fluxo que converte
texto não estruturado em triplas RDF que podem ser lidas por máquinas (NGOMO et al.,
2018).
A ferramenta BENGAL, como apresentada na figura 4.1, tem como entrada grafos
formados por triplas RDF e inicia sua abordagem com a escolha de quais triplas do
grafo são relevantes para a informação que se deseja obter por meio de uma consulta
SPARQL SELECT. Gera-se então um subgrafo RDF com os dados obtidos pela consulta,
selecionando-se a topografia do subgrafo a ser formado a partir de qual tipo de informação
se deseja extrair. O subgrafo de estrela, por exemplo, é utilizado quando se deseja o
máximo de dados possíveis a respeito de uma determinada entidade. Utiliza-se então um
processo de verbalização derivado do SPARQL2NL (NGONGA NGOMO et al., 2013) que
transforma cada tripla em uma sentença. Por fim há uma etapa de paráfrase visando a
gerar um texto de benchmarking mais diverso. Isso é feito através de duas técnicas: a
troca de termos repetidos por sinônimos e a alteração de estruturas de sentenças que se
repitam com frequência.
33
A diferença entre os dados da BENGAL consiste justamente na maneira em que foram
gerados automaticamente, correspondentes aos tipos de subgrafos star e path, sendo que
a combinação destes ocorre através do hybrid. Os dados sym representam grafos estrela
simétricos (NGOMO et al., 2018).
FIG. 4.1: Visão geral da abordagem do BENGAL. Fonte: (NGOMO et al., 2018)
4.2 HAREM
Para avaliação e desenvolvimento de ferramentas de Entidades Nomeadas é necessário
fazer uso de Corporas capazes de nos auxiliar como referência. O Corpus do HAREM é
um projeto público da Linguateca22 cujos esforços estão no processamento computacional
para a língua portuguesa. Já foram publicados dois conjuntos desde 2006 com anotações
gold, ou seja, anotações manuais revisadas por profissionais da área. (FONSECA et al.,
2015)
A avaliação conjunta disposta como segundo HAREM tem a vantagem de possuir
meios para detectar o sucesso na identificação, classificação tanto de entidades nomeadas
como das relações entre elas. Além disso, permite o reconhecimento e normalização de
entidades temporais (FREITAS et al., 2010). Já lançadas em duas versões, o segundo HA-
REM, de menor tamanho, possui 129 textos sendo 89.241 palavras anotadas e distribuídas
em categorias de entidades nomeadas conforme a figura 4.2 mostra.22https://www.linguateca.pt/
34
FIG. 4.2: Quantidade de entidades nomeadas por categorias do Primeiro e Segundo HA-REM. Fonte: (DO AMARAL et al., 2014)
4.3 SUMM-IT
Além dos corpus HAREM e BENGAL, o corpus SUMM-IT quando foi elaborado tinha a
intenção de embasar pesquisas de discurso envolvendo relações anafóricas e retóricas, e a
sumarização automática (COLLOVINI et al., 2007).
A sua construção foi anotada com o intuito de fornecer contribuições para melhorar
a Sumarização Automática, isso tudo com informações discursivas. A fim de aprimorar a
coerência e o grau de informatividade dos sumários automáticos.
Os processos de correferência e de relações retóricas são divididos em alguns passos.
O primeiro dos processos tem como objetivo reconhecer entidades do discurso menciona-
das sejam elas retomadas em um texto ou não. O próximo processo concede a formulação
de um texto por meio de suas unidades discursivas através das relações RST (Rheori-
cal Structure Theory), gerando uma estrutura em formato de árvore, chamada árvore
RST (COLLOVINI et al., 2007). Então, o corpus SUMM-IT constitui-se de 50 textos
jornalísticos do caderno de Ciências da Folha de São Paulo retirados do corpus PLN-BR.
35
5 DESENVOLVIMENTO
5.1 PRÉ TREINO
Para que fosse possível o treinamento da rede neural a ser utilizada na FOX, foi necessário
adaptar a ferramenta com um código leitor23, responsável por receber o arquivo de entrada,
identificar os anotadores utilizados e passar essas informações para a rede a ser treinada.
Os leitores utilizados em outras linguagens da ferramenta não puderam ser utilizados uma
vez que os conjuntos de dados em português possuíam uma estrutura diferente daquela
esperada por esses leitores.
O código do leitor foi escrito como uma classe em Java. A função initF iles era
responsável por receber como entrada todos os arquivos da pasta cujo nome era atribuído
à variável folder. Esses arquivos foram aqueles usados para realizar o treinamento da