baixados - ERI-MS 2015

Propaganda
NÍVE
L
PERIOR
SU
e
M
r
o
lh
b
a
Tr
o
h
al
Sistema baseado em Aprendizado de Máquina para
Reconhecimento de Entidades Nomeadas em Português
Kymberlim Ribeiro1, Marcos Teixeira1, Paulo V. Milreu2, Eraldo R. Fernandes1,3
1
Faculdade de Computação – Universidade Federal do Mato Grosso do Sul (UFMS)
Campo Grande – MS – Brasil
2
TecSinapse Tecnologia da Informação
São Paulo – SP – Brasil
3
Professor Responsável
{kymberlim.ribeiro, marcos.teixeira, paulo.milreu}@tecsinapse.com.br,
[email protected]
1. Introdução
A internet é um imenso repositório de informação, e a maior parte destes dados são
textos. Sistemas computacionais são vastamente utilizados hoje em dia para análise de
dados e são muito eficientes para processar dados estruturados. Entretanto, a linguagem
humana, ou natural, é muito complexa e carente da estrutura necessária para o eficiente
processamento por computadores. A área de Processamento de Linguagem Natural
(PLN) [1] se ocupa do desenvolvimento de algoritmos para identificar as informações
apresentadas em um texto e representá-las em um formato estruturado que seja
adequado para o processamento computacional. Desta forma, outros sistemas já
empregados em análise de dados podem ser aplicados às informações disponíveis em
linguagem natural. Uma tarefa essencial em PLN é o Reconhecimento de Entidades
Nomeadas (REN) [2]. Entidades nomeadas são referências a entidades do mundo real,
como pessoas, lugares ou instituições, através de menções de nomes ou siglas que
identificam estas entidades. Atualmente, a área de Aprendizado de Máquina (AM)
fornece as ferramentas mais eficazes para PLN.
Este projeto consiste no desenvolvimento de um sistema para capturar documentos da
Internet, armazená-los e indexá-los de acordo com as entidades nomeadas reconhecidas
por algoritmos de AM. O sistema também inclui funcionalidades para revisão das
entidades reconhecidas pelos algoritmos de AM com o intuito de avaliar o desempenho
destes algoritmos.
2. Visão Geral do Sistema
O sistema está sendo desenvolvido na linguagem de programação Java e é dividido em
três módulos principais, que internamente se subdividem em outros sub-módulos. A
saber:
1.
Interface. Responsável pela apresentação dos componentes necessários
para o funcionamento do sistema, além da comunicação com o módulo
Backend.
2.
Backend. Responsável por capturar documentos da Internet, armazenálos e indexá-los de acordo com as entidades nomeadas reconhecidas nos
documentos. Este módulo utiliza o módulo REN para realizar o
reconhecimento das entidades nomeadas.
3.
REN. Responsável pelo reconhecimento de entidades nomeadas em um
documento. Este módulo, atualmente, é baseado no sistema OpenNLP.
Futuramente, utilizaremos algoritmos desenvolvidos por nosso grupo.
3. Módulos
3.1. Interface
A interface é feita utilizando várias tecnologias para garantir sua robustez e melhor
estruturação, tais como:
1. Apache Shiro – Estrutura de segurança Java que executa autenticação,
autorização, criptografia e gerenciamento de sessão.
2. JSF – Tecnologia que permite criar aplicações Java para Web utilizando
componentes visuais pré-prontos, de forma que o desenvolvedor não se
preocupe com Javascript e HTML.
3. CDI – Especificação integrada a partir do Java EE 6 responsável por cuidar da
injeção de dependências e é muito recomendado em qualquer projeto que use um
servidor de aplicação, principalmente quando se usa JSF2.
4. JavaEE – Consiste de uma série de especificações bem detalhadas, dando uma
receita de como deve ser implementado um software que faz cada um desses
serviços de infraestrutura.
5. Primefaces – Framework de UI(User Interface) para JSF, para aplicações web.
6. Hibernate – Um framework para o mapeamento objeto-relacional escrito na
linguagem Java.
7. JavaBeans – Componentes reutilizáveis de software que podem ser manipulados
visualmente com a ajuda de uma ferramenta de desenvolvimento.
8. MVC – Padrão de arquitetura de software que separa a informação (e as suas
regras de negócio) da interface com a qual o usuário interage.
Na interface existem dois tipos de usuário: o Administrador e o Anotador. As opções
disponíveis para o Administrador são:
1. Criação de Tarefa de Anotação Manual - onde ele determina alguns atributos,
como os anotadores designados à essa tarefa, tipo de anotações (extração de
texto, segmentação, POS tagging, REN), tarefa de origem, data de início e data
de fim da tarefa.
2. Criação de Tarefa de Anotação Automática – onde ele seleciona o pipeline a ser
feito pelos algoritmos, definindo os parâmetros específicos para cada estágio e
lança a tarefa, que é executada e seu resultado é salvo no ElasticSearch.
3. Criação de Usuários – onde ele cadastra novos anotadores ou administradores.
4. Gerenciamento das Tarefas – onde ele monitora o andamento das tarefas
atribuídas a cada Anotador.
As opções disponíveis para o Anotador são as seguintes:
1. Tela de Gerenciamento das Tarefas – onde são listadas as tarefas atribuídas ao
mesmo. Através dessa tela ele consegue escolher qual tarefa começar a revisar e
a partir do tipo de tarefa ele é redirecionado para uma das telas de revisão
apresentadas abaixo.
2. Revisão de Extração de Conteúdo – onde ele irá revisar o resultado obtido pelo
algoritmo de Extração de Conteúdo (utilizando Boilerpipe).
3. Revisão de Tokenização – onde ele irá revisar o resultado abtido por um
algoritmo de Tokenização, de acordo com um modelo de sentence e um de
token. Nessa tela ele poderá agrupar tokens/frases e separar tokens/frases e
salvar suas modificações.
4. Revisão de Postagging – onde ele irá revisar o resultado obtido pelo modelo de
postag, que é utilizado para encontrar as classes gramaticais de cada token
obtido na Tokenização.
5. Revisão de NER – onde ele irá revisar o resultado obtido por um algoritmo que
encontra as entidades nomeadas em um texto separado por tokens/frases e com
as postags atribuídas para cada token.
3.2. Backend
Para armazenamento dos dados, o sistema ElasticSearch (ES) é utilizado. O ES é um
sistema distribuído para armazenamento e busca de documentos. Este sistema é baseado
no conceito NoSQL, o qual permite o armazenamento de bases de documentos muito
grandes, sem um esquema pré-definido. O ES é baseado no Apache Lucene para realizar
indexação e buscas dos documentos; e utiliza JSON como sintaxe para especificação de
documentos e esquemas.
A base de dados do nosso sistema é dividida em duas partes. A primeira parte é
composta pelos documentos originais baixados da internet através do crawler Apache
Nutch. A segunda parte contém as anotações feitas nestes documentos. Esta segunda
parte armazena diferentes tipos de dados. Mais especificamente, tem-se um tipo para
cada tarefa de PLN (extração de texto, segmentação, POS tagging e REN) e dois tipos
para administração do sistema (anotadores e tarefas de anotação).
Devido à natureza hierárquica das informações do sistema, utiliza-se o mapeamento
Parent-Child do ElasticSearch. Esta funcionalidade permite relacionar documentos
entre si, a fim de aproveitar outras funcionalidades do ES, como filtros e buscas usando
propriedades de tipos distintos. Este tipo de busca não é comum em sistemas de
armazenamento NoSQL.
3.3. REN
O reconhecimento de entidades nomeadas é, atualmente, realizado pela ferramenta
Apache OpenNLP. Juntamente com esta ferramenta, é disponibilizado modelos de REN
em inglês, espanhol e holandês. Porém, a ferramenta provê procedimentos para treinar
novos modelos desde que haja um conjunto de exemplos para treinar o modelo.
Para o treinamento dos nossos modelos de REN para português foi utilizado o conjunto
de treinamento HAREM [2]. Os tipos de entidades que podem ser reconhecidos são:
pessoa, organização, local, valor, tempo, abstração, obra, acontecimento, coisa e
variado. O primeiro passo para o treinamento foi a conversão dos dados para o formato
exigido pelo OpenNLP.
Referências
[1] C. Manning, H. Schütze. Foundations of Statistical Natural Language Processing.
MIT Press. Cambridge, 1999.
[2] P. Rocha, D. Santos. Disponibilizando a Colecção Dourada do HAREM através do
projecto AC/DC. Em: D. Santos, N. Cardoso (eds.), Reconhecimento de entidades
mencionadas em português: Documentação e actas do HAREM, a primeira avaliação
conjunta na área. Linguateca, 2007, pp. 307-326.
Download