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.