%% ================================================================================
%% This LaTeX file was created by AbiWord.                                         
%% AbiWord is a free, Open Source word processor.                                  
%% More information about AbiWord is available at http://www.abisource.com/        
%% ================================================================================

\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{calc}
\usepackage{setspace}
\usepackage{graphicx}
\usepackage{multicol}
\usepackage[normalem]{ulem}
%% Please set your language here
\usepackage[english]{babel}
\usepackage{color}
\usepackage{hyperref}
 
\setlength{\oddsidemargin}{1.378in-1in}
\setlength{\textwidth}{\paperwidth - 1.378in-1.378in}


\begin{document}

\begin{center}

\end{center}


\begin{center}

\end{center}


\begin{center}

\end{center}


\begin{center}

\end{center}


\begin{center}
RENA
\end{center}


\begin{center}

\end{center}


\begin{center}
Reconhecimento de Entidades Mencionadas
\end{center}
































Edgar Pereira Alves - 2004


\newpage






Introdução





	O RENA é um sistema de reconhecimento de entidades mencionadas orientado a textos escritos na língua portuguesa.


	O sistema reconhece nomes de pessoas, localidades e organizações, usando informação contextual e recursos externos (\textit{gazetteers}) para classificar as entidades reconhecidas.





Descrição





	A arquitectura do sistema RENA consiste numa análise inicial ao texto pelo componente de \textit{token}ização, seguida da passagem dos \textit{tokens} identificados (possíveis entidades mencionadas e texto livre) através de uma sequência de filtros.


  	Para além da lista de \textit{tokens} que pode ou não ser modificada (e cada \textit{token} individualmente modificado) por cada filtro, o sistema mantém ainda estado global acessível (inclusive para modificação) a todos os filtros da \textit{pipeline}.





tokenizer





	O \textit{tokenizer} funciona como bootstrap ao processo de aplicação dos filtros.


	É o objectivo desta fase tornar o mais simples e exacto possível o trabalho dos filtros que vão ser aplicados à sequência de \textit{tokens} gerada por este componente.


	A separação do texto nos dois tipos de \textit{tokens }(possíveis entidades e texto livre) utiliza uma expressão regular para detectar texto com elevada probabilidade de ser ou fazer parte de uma referência a uma entidade.


	Para os \textit{tokens }do tipo entidade, o \textit{tokenizer }usa uma propriedade booleana (``beginning''), que é verdadedeira se essa (possível) entidade tiver ocorrido no ínicio de uma frase, ou falsa, caso contrário.








Filtros








oneletter





	Este filtro limita-se a alterar o tipo dos \textit{tokens} de entidades cujo texto seja apenas uma letra para texto livre. Este filtro poderia ser eliminado à custa de uma regra ligeiramente mais complexa para o \textit{tokenizer}.





remove\_quoted





	Devido a limitações actuais do sistema, foi construído este filtro para alterar o tipo de todos os \textit{tokens }que correspondam a referências a entidades que tenham ocorrido entre aspas. Consequentemente, quaisquer referências a entidades ocorridas entre aspas não serão apresentadas no final da análise.


\begin{flushleft}

\end{flushleft}


hiphen\_connections


\begin{flushleft}

\end{flushleft}


	Este filtro separa o texto de entidades cujo texto consiste no texto de duas entidades separadas por um hífen, quando o texto dessas duas entidades ocorre mais vezes no texto.


	Este filtro foi criado para lidar com menções a desafios desportivos (ex: ``FC Porto-Benfica''). Note-se, contudo, que pode ser desejável preservar a informação subjacente a esta situação (se pretendermos considerar um encontro de futebol uma entidade em si).


	Como o sistema não permite que o mesmo texto possa ser usado, total ou parcialmente, por mais do que uma referência a uma entidade, optou-se pela construção deste filtro. Caso contrário, seriam detectadas, no texto dado como exemplo, três entidades: ``FC Porto-Benfica'', ``FC Porto'' e ``Benfica'' (e possivelmente ``Porto'').


	Para este filtro poder ser aplicado, as entidades não podem ter no seu próprio texto um hífen.


\begin{flushleft}

\end{flushleft}


\begin{flushleft}

\end{flushleft}


begin


\begin{flushleft}

\end{flushleft}


	Para todos os \textit{tokens }do tipo entidade que tenham sido marcados como tendo ocorrido no ínicio de uma frase (propriedade ``beginning''), este filtro elimina texto dos \textit{tokens }que não faça parte do texto da referência à entidade.


	Para o efeito, este filtro usa o \textit{jspell }para obter a classificação gramatical das palavras que constituem o texto do \textit{token}. A partir da primeira palavra e enquanto houver classificação para a palavra a ser testada e essa classificação seja nome ou adjectivo, as palavras vão saindo do texto do \textit{token }(e sendo acrescentadas a um novo \textit{token }de texto que será acrescentado à sequência de tokens antes do token actual).


\begin{flushleft}

\end{flushleft}


al


\begin{flushleft}

\end{flushleft}


	Para os nomes árabes que incluem ``al'' ou ``el'' entre partes de nomes ou no seu início, é necessária a aplicação deste filtro para que o nome seja correctamente identificado na sua totalidade.


\begin{flushleft}

\end{flushleft}


context


\begin{flushleft}

\end{flushleft}


	Este filtro procura acrescentar possíveis classificações a tokens de entidades.


	Para tal, recorre a uma tabela fornecida pelo utilizador que descreve relações entre contextos esquerdos (parte do texto que precede o \textit{token }de entidade ou as primeiras palavras do texto do próprio \textit{token}) e possíveis classificações.


\begin{flushleft}

\end{flushleft}


names\_gazetteer


\begin{flushleft}

\end{flushleft}


	Este filtro verifica que entidades podem ser nomes de pessoas, com base num \textit{gazetteer} fornecido pelo utilizador.


\begin{flushleft}

\end{flushleft}


\begin{flushleft}

\end{flushleft}


oneword


\begin{flushleft}

\end{flushleft}


	Este filtro elimina entidades cujo texto é uma única palavra, desde que não tenham sido previamente classificadas por um outro filtro que precede este na sequência de filtros usada, que não seja a primeira nem última palavra do texto de outra qualquer referência a entidade (cujo texto tenha mais do que uma palavra, obviamente) nem que, se for uma palavra conhecida pelo \textit{jspell}, esteja classificada como nome próprio.


\begin{flushleft}

\end{flushleft}


ignore\_words


\begin{flushleft}

\end{flushleft}


	Este filtro permite que entidades cujo texto é uma única palavra (que não tenham sido já eliminadas pelo filtro ``oneword'') sejam eliminadas se constarem duma lista de palavras fornecidas pelo utilizador.


\begin{flushleft}

\end{flushleft}


acronyms


\begin{flushleft}

\end{flushleft}


	Este filtro procura situações em que o texto de uma entidade é seguida de uma sigla entre parenteses. A ocorrência dessas situações é registada no estado global do sistema, sendo essa informação utilizada por filtros que se seguem a este.


\begin{flushleft}

\end{flushleft}


acronyms2


\begin{flushleft}

\end{flushleft}


	Este filtro procura situações em que uma sigla é seguida por um hífen e por uma entidade. A ocorrência dessas situações é registada no estado global do sistema, sendo essa informação utilizada por filtros que se seguem a este.


\begin{flushleft}

\end{flushleft}


unification


\begin{flushleft}

\end{flushleft}


	Este filtro efectua o agrupamento de todas as referências a entidades - procura agrupar referências cujo texto pode ou não diferir mas que apontam para a mesma entidade.


	A versão actual reconhece a utilização de nomes abreviados (só última ou primeira parte de um nome que ocorra na totalidade noutra parte do texto) e de siglas (a associação entre siglas e referências é efectuado pelos filtros ``acronyms'' e ``acronyms2'' e tido em conta neste filtro).


\begin{flushleft}

\end{flushleft}


begin\_unified


\begin{flushleft}

\end{flushleft}


	Este filtro remove entidades cujas ocorrências tenham sido todas em ínicio de frase, que consistam apenas numa palavra e que sejam classificadas pelos \textit{jspell }com outra classificação que não seja nome próprio.


\begin{flushleft}

\end{flushleft}


gazetteer


\begin{flushleft}

\end{flushleft}


	Utilizando um \textit{gazetteer }fornecido pelo utilizador, este filtro procura classificar \textit{tokens }de entidades de acordo a classificação atribuída nesse mesmo gazetteer.


\begin{flushleft}

\end{flushleft}


unification\_links


\begin{flushleft}

\end{flushleft}


	Este filtro estabelece, usando o estado global, uma ligação entre as entidades unificadas e respectivas instâncias.


\begin{flushleft}

\end{flushleft}


unified\_yaml


\begin{flushleft}

\end{flushleft}


	Este filtro escreve uma representação, no formato \textit{YAML}, de todas as entidades com alguma referência no texto, bem como todas as classificações atribuídas.


\begin{flushleft}

\end{flushleft}


toxml


\begin{flushleft}

\end{flushleft}


	Este filtro escreve, usando o formato \textit{XML}, uma versão do texto original onde são anotadas todas as referências a entidades encontradas.


\begin{flushleft}

\end{flushleft}


\begin{flushleft}

\end{flushleft}


\begin{flushleft}

\end{flushleft}


\begin{flushleft}

\end{flushleft}


\begin{flushleft}

\end{flushleft}


\begin{flushleft}

\end{flushleft}


Conclusão


\begin{flushleft}

\end{flushleft}


	O sistema desenvolvido tem uma elevada taxa de acerto com textos jornalísticos, onde as convenções textuais são geralmente seguidas.


	Contudo, a sua dependência da utilização dessas convenções (nomeadamente, pontuação e capitalização) no texto que se pretende analisar faz com que o seu comportamento se degrade em textos mais informais.


	Passe essa dependência, o sistema pode contudo ser enriquecido, sem alterar a implementação Perl do mesmo, através dos ficheiros de dados utilizados pelos filtros (como \textit{gazetteers }geral e de nomes, tabela de contextos esquerdos e palavras a ignorar).


	Se isso não for suficiente, o sistema foi concebido para ser facilmente extensível com novos filtros.


\begin{flushleft}

\end{flushleft}


\end{document}
