DETECÇÃO AUTOMÁTICA DE SENTENÇAS COM O USO DE
EXPRESSÕES REGULARES
Carlos N. Silla Jr.1 Jaime Dalla Valle Jr.2
[email protected] [email protected]
Celso A. A. Kaestner
1 Bolsista PIBIC - CNPq 2 Bolsista ITI - Finep
Pontifícia Universidade Católica do Paraná Rua Imaculada Conceição 1155 Curitiba - PR, 80215-901 - Brasil
RESUMO
Este artigo descreve uma ferramenta para o pré-processamento de textos que tem como objetivo identificar as sentenças de um documento. A detecção é feita por meio do uso de expressões regulares, e consiste na inclusão dos rótulos de marcação <S> e </S> em pontos adequados do documento. São também apresentados os resultados da aplicação do sistema em bases padrão de documentos, e é efetuada a comparação dos resultados obtidos com alguns enfoques simples e com o sistema MxTerminator, disponível na literatura. Os resultados obtidos comprovam a adequabilidade da proposta.
Palavras-chave: Inteligência Artificial, Segmentação Textual Automática, Pré-Processamento de Textos.
ABSTRACT
This article describes a tool for text preprocessing, aiming the identification of the sentences of a document. The detection is performed by using regular expressions, and is done by inserting the <S> and </S> markup tags in suitable places of the document. The results of the execution of the system upon standard document bases are also presented, and a comparison between the obtained results and the ones achieved with a few simple focuses and the MxTerminator system, available at the bibliography, is performed. The results of this comparison indicate the suitability of the proposal.
1 Introdução
Quando se trabalha com alguma tarefa relacionada ao tratamento automático de documentos, como tradução, sumarização, etc. um dos problemas que surge freqüentemente é a separação do documento original em sentenças, ou segmentação textual. Esta tarefa é em geral incluída na etapa de pré-processamento do texto original, e é por vezes é efetuada segundo um critério bastante simples ou exige uma tediosa tarefa manual.
A tarefa de identificar as sentenças que compõem um documento pode, a princípio, parecer simples. Porém, na pouca literatura existente, a tarefa de identificação de sentenças está geralmente relacionada à tarefa de rotulação de função sintática do texto (part-of-speech tagging) e é usualmente ignorada na literatura relacionada a outras tarefas que envolvem a mesma questão. Em muitos casos a separação em sentenças é simplesmente assumida sem nenhum indicativo de como a tarefa foi realizada (BRILL, 1994).
Usualmente os sistemas que necessitam a separação em sentenças, como por exemplo, os sistemas de sumarização, utilizam textos já previamente rotulados (LAROCCA NETO, 2000b), ou então utilizam algum procedimento estático simples, como a detecção de um ponto seguido de um espaço em branco ou de um caractere de uma nova linha (LAROCCA NETO, 2000a) como elemento de separação. Contudo em um estudo detalhado da abordagem estática (SILLA JR., 2002) foi possível perceber que a etapa de identificação de sentenças é vital para o uso de métodos extrativos em sumarização, visto que um documento mal segmentado vai certamente gerar resultados ruins na sua tarefa objetivo.
Este trabalho propõe e analisa dois métodos automáticos para a realizar a tarefa de separação de sentenças: o primeiro - referido ao longo deste trabalho como sistema 1 - utiliza uma base de expressões regulares que indicam quando o ponto final não é o indicador de final de sentença, analisando as seqüências anteriores ao ponto; o segundo - referido como sistema 2 - surgiu da análise dos resultados obtidos nos testes de aplicação do sistema 1, e inclui a análise das seqüências de caracteres posteriores ao ponto, numa análise bidirecional. Esta abordagem melhorou sensivelmente os resultados obtidos, conforme será detalhado adiante.
das definições relacionadas ao uso de expressões regulares, e descreve em detalhes os métodos propostos neste trabalho; os resultados computacionais obtidos com a aplicação dos sistemas propostos são descritos na seção 4; e finalmente a seção 5 apresenta as conclusões e perspectivas deste trabalho.
2 A Tarefa da Identificação de Sentenças
Inicialmente é possível se pensar que para identificar as sentenças que compõem um documento basta se localizar um ponto: o que vier antes dele desde o último ponto detectado constitui uma sentença. Porém numa análise um pouco mais detalhada é fácil perceber situações onde esta regra “ingênua” é violada: por exemplo, um endereço eletrônico como “www.sbc.org.br” seria separado erroneamente em quatro sentenças.
Por esse motivo, mesmo nos sistemas onde este problema é tratado de forma secundária, critérios um pouco mais elaborados são necessários. Um procedimento freqüentemente encontrado na literatura é a identificação do final de sentença à localização do ponto seguido de um (ou mais) espaço em branco ou de um caractere de uma nova linha (CR). Porém sentenças como “At that night, Mr. Bush ...” ainda seriam separadas incorretamente; por essa razão métodos mais dinâmicos e mais elaborados são necessários.
Dos trabalhos existentes na área, a maioria está relacionada à etapa de identificação de sentenças de um documento como parte do processo de rotulação de função sintática ou part-of-speech tagging (BRILL, 1992). Em um trabalho recente realizado por Walker et al. (WALKER, 2001) expressões regulares são utilizadas para realizar a tarefa de segmentação textual em sentenças. As expressões regulares são utilizadas para representar as propriedades das sentenças. Porém mesmo nesse trabalho o problema causado pela presença de abreviações não é tratado.
maiúsculas (capitalization), classe da palavra, etc. Estas características são então empregadas como atributos previsores para as classes “ser ou não ser” um ponto adequado à separação de sentenças. Contudo, estes sistemas apresentam um inconveniente: como utilizam técnicas de aprendizado de máquina, exigem a realização da etapa de treinamento para obtenção do algoritmo classificatório, que deve ser alimentada com o conjunto de treinamento correspondente. Maiores detalhes sobre essas abordagens podem ser encontrados em (PARDO, 2003).
2.1 O Sistema MxTerminator
O sistema MxTerminator foi desenvolvido por Jeffrey Reynar e Adwait Ratnaparkhi (REYNAR, 1997) da University of Pennsylvania e utiliza uma abordagem independente de idioma ou gênero de texto, utilizando um algoritmo de aprendizado de máquina denominado Modelo de Entropia Máxima.
A heurística usada pelo sistema armazena além da informação de onde ocorre um símbolo de possível final de sentença (ponto, exclamação, interrogação), algumas informações sobre o contexto em que o mesmo ocorre. Essas informações são: o prefixo, o sufixo, se o prefixo ou o sufixo estão na lista de abreviações, as palavras a esquerda e a direita de onde ocorre o possível símbolo de final de sentença e se elas ocorrem na lista de abreviações. O sistema foi originalmente testado utilizando o Brown Corpus e teve um acerto de 97,5% na base.
A idéia principal do Modelo de Entropia Máxima é que a probabilidade de uma certa classe, no caso, os limites da sentença em um certo contexto, podem ser estimadas pela distribuição de probabilidade com entropia máxima sujeita a certas restrições. São consideradas apenas evidências específicas dos limites das sentenças, na forma de conhecimento lingüístico a priori sobre as características contextuais que indicam estes limites, e são determinadas experimentalmente.
O modelo avalia o contexto de cada possível sentença através de varias funções lineares que indicam quando o contexto tem uma característica particular. O modelo é restrito de uma forma tal que a expectância de cada característica em qualquer contexto seja a mesma que a expectância observada daquela característica durante o treinamento.
3 Os Métodos Propostos
Os sistemas propostos são fundamentados em “expressões regulares”, largamente utilizado nos estudos sobre linguagens formais em Computação (LEWIS, 2000).
Uma expressão regular é um formalismo para a representação finita de linguagens. Neste formalismo uma linguagem L é descrita por uma combinação dos símbolos que constituem seu alfabeto subjacente Σ, mais os símbolos ∅ (vazio), ∪ (união), . (concatenação) e ∗ (estrela de Kleene).
Cada expressão regular R denota uma linguagem L(R). As denotações podem ser obtidas de forma recursiva; os casos base são: L(a) = {a} para todo a ∈ Σ e L(∅) = {}. Já as fórmulas de recursão são L(X ∪ Y) = L(X) ∪ L(Y), L(X . Y) = L(X) . L(Y) e L(X*) = L(X)*. Por exemplo, se L é uma linguagem composta de um a podendo ou não ser seguida por vários b's, então L pode ser denotada pela expressão regular: a.b*
De acordo com o trabalho realizado por Palmer (PALMER, 1994) um sistema de identificação de sentenças deve ter quatro características principais:
•
• A abordagem deve ser robusta e não possuir regras que dependam do tamanho das palavras, nem de múltiplos espaços entre as sentenças, etc., permitindo que o mesmo possa ser facilmente adaptado para novos domínios.
•
• A abordagem deve poder ser inferida (ou treinada) a partir de poucos documentos e não deve precisar grandes recursos de armazenamento (massive storage overhead).
•
•
• A abordagem deve poder emitir uma opinião “nula” em casos que seja muito difícil tentar identificar sentença, ao invés de dar uma resposta incoerente.
Neste trabalho é apresentada uma solução ao problema que atende a três destes requisitos, visto que ela é robusta, prove resultados apurados, é independente da tarefa de rotulação de função sintática (part-of-speech tagging) do texto inicial, além de não precisar de conjunto de treinamento.
3.1 O Método utilizado pelo Sistema 1
O Sistema 1 utiliza uma base de expressões regulares que denotam cadeias que contém o ponto mais não indicam final de sentença, como abreviações e outras seqüências. Por exemplo o endereço eletrônico http://www.sbc.org.br pode ser considerado como um elemento da linguagem denotada pela expressão regular: http://www.[A-Za-z]+[.]+. A base de expressões é indicada por meio de um arquivo texto, permitindo assim que sejam feitas inclusões e/ou alterações nas expressões regulares consideradas de uma forma extremamente simples. Parte do conjunto de expressões regulares utilizadas é indicado na Tabela 1. O algoritmo utilizado pelo sistema 1 é apresentado na Figura 1.
Para realizar a tarefa de identificação de sentenças o sistema realiza uma varredura do texto desde o seu início até localizar o primeiro ponto (.); em seguida são obtidas cadeias de caracteres antecedentes ao ponto que podem ser denotadas pelas expressões da base: se a palavra que antecede o ponto for denotada por uma expressão da base, então o sistema sabe que aquele ponto não indica “final de uma sentença” e avança até o próximo ponto. Se a palavra que anteceder o ponto não estiver na base de expressões regulares, o sistema sabe que encontrou o final de uma sentença, marcando-a adequadamente pelos rótulos padrões <S> e </S>. O procedimento é repetido a partir deste ponto até que todo o documento tenha sido analisado.
Expressão Regular Objetivo
[a-zA-Z]+.[@].([a-zA-Z]+.[.])+ Reconhecer E-mails [http://]*.[www].[.].([a-zA-Z]+.[.])+ Reconhecer Páginas Internet
[Mr.] Reconhecer uma abreviação
/* Identifica as sentenças: */
ENQUANTO i < numeroTotalDeCaracteresDoDocumento FAÇA SE texto[i] = '.'
ENTÃO
/* Obtém a palavra que antecede o ponto: */ palavra ← obterPalavraAnteriorAoPonto(i);
/* Verifica se a palavra está na base de expressões:*/ SE palavra ∈ BaseDeExpressoesRegulares
ENTÃO
/* Não é uma sentença */
sentenca ← sentenca + texto[i]; SENÃO
/* É uma sentença */
textoRotulado[k++] ← sentenca; sentenca ← null;
FIMSE SENÃO
sentenca ← sentenca + texto[i]; FIMSE
FIMENQUANTO
Figura 1: Pseudo-Código Utilizado Pelo Sistema 1
3.2 O Método Utilizado Pelo Sistema 2
Após realizar uma análise dos resultados obtidos pelo Sistema 1, foi possível perceber que a análise de apenas o que antecede o ponto não é suficiente para se identificar às sentenças. Desta forma buscou-se um tratamento bidirecional - sistema 2, que amplia o uso do procedimento utilizado pela verificação das ocorrências de expressões que ocorrem após o ponto.
O algoritmo utilizado pelo sistema 2 é apresentado na Figura 2.
Destacam-se, a seguir, alguns casos especiais tratados pelo sistema 2:
•
/* Identifica as sentenças: */
ENQUANTO i < numeroTotalDeCaracteresDoDocumento FAÇA SE texto[i] = '.' ENTÃO
/* Obtém a palavra anterior ao ponto: */
palavraAnterior ← obterPalavraAnteriorAoPonto(i);
/* Obtém a palavra posterior ao ponto: */
palavraPosterior ← obterPalavraPosteriorAoPonto(i);
/* Verifica o caso especial dos números: */
SE eUmNumero(palavraAnterior) = Verdadeiro ENTÃO SE eUmNumero(palavraPosterior) = Verdadeiro ENTÃO /* Não é uma sentença */
sentenca ← sentença + texto[i]; SENÃO
/* É uma sentença */
textoRotulado[k++] ← sentenca; sentenca ← null;
FIMSE; SENÃO
/* Verifica o caso especial do idioma inglês: */ SE (texto[i+1] == ')' ||(texto[i+1] == '"') ENTÃO
/* É uma sentença especial: */ sentenca ← sentenca + texto[i++]; sentenca ← sentença + texto[i]; textoRotulado[k++] ← sentenca; sentenca ← null;
SENÃO
/* Verifica os demais casos: */
SE palavraAnterior ∈ BaseDeExpressoesRegulares OU palavraPosterior ∈ BaseDeExpressoesRegulares ENTÃO
/* Não é uma sentença: */
sentenca ← sentenca + texto[i]; SENÃO
/*É uma sentença: */
textoRotulado[k++] ← sentenca; sentenca ← null;
FIMSE FIMSE
FIMSE FIMENQUANTO
•
• Parênteses no final de sentenças: como uma característica do idioma inglês, são corretas sentenças como: “(... that night.)” ao invés de: “(... that night).”, onde o ponto final antecede o fechamento de parênteses. Por esse motivo, com o auxilio de uma verificação adiante (lookahead) após encontrar um ponto, sistema pode verificar a ocorrência de parênteses ou aspas, identificando nestes casos corretamente a sentença, e a rotulando por: <S>(... that night.)</S>.
•
• Reticências: O último caso especial tratado pelo sistema 2 está relacionado à ocorrência de reticências; neste caso se verificam as ocorrências sucessivas de pontos, até a localização do último deles, indicativo do final de sentença.
4 Resultados Computacionais
Para realizar uma comparação de performance entre os sistemas propostos e os critérios padrões utilizados na literatura foi utilizada uma base que contêm notícias do Wall Street Journal de 1991, que faz parte da TIPSTER (MANI, 1998) (Número de Referencia da Base Utilizada: WSJ-910130).
A base contém 156 documentos com tamanhos variados, mas que totalizam 3.554 sentenças, e para realizar este experimento cada um dos documentos teve suas sentenças separadas e rotuladas manualmente.
Para poder comparar os resultados obtidos com os métodos tradicionais da literatura, foram também implementados outros dois critérios simples encontrados freqüentemente na literatura. O primeiro deles utiliza como indicativo de final de sentença o ponto seguido de espaço ou de um caractere de uma nova linha. O segundo utiliza o ponto seguido de espaço seguido de uma letra maiúscula. Além destes sistemas foi também utilizado o sistema MxTerminator (REYNAR, 1997).
Os resultados obtidos por cada sistema podem ser observados na tabela 2, onde:
•
• Precisão (Precision) indica a porcentagem de finais de sentenças que foram corretamente identificados em relação aos que foram identificados pelo sistema (Número de finais de sentenças corretamente identificadas / Número de finais de sentenças identificadas);
•
• Cobertura (Recall) indica a procentagem de finais de sentença que foram corretamente identificados em relação aos finais de sentença reais presentes na base (Número de finais de sentenças corretamente identificadas / Número de finais de sentenças reais na base);
•
• F-measure é uma medida de eficiência do sistema, combinando precisão e cobertura em uma medida única.
não é suficientemente discriminante para os objetivos de separação de sentenças. Como o uso da abordagem bidirecional - sistema 2 - os resultados obtidos foram bastante significativos, indicando que o uso de verificação adiante (lookahead) é um instrumento importante na consecussão desta tarefa.
Método Utilizado Precisão Cobertura F-measure
Ponto Espaço 48,90% 58,02% 53,46%
Ponto Espaço Letra Maiúscula 66,38% 65,39% 65,89%
Sistema 1 62,69% 69,29% 65,99%
MxTerminator 91,19% 91,25% 91,22%
Sistema 2 92,39% 91,18% 91,79%
Tabela 2: Resultados Computacionais dos Sistemas de Separação de Sentenças
Os métodos utilizados tanto pelo sistema 2 quanto pelo MxTerminator levam em consideração o contexto aonde ocorre o caractere que indica uma possível sentença. Ambos demonstram ser métodos muito mais eficientes do que os critérios padrões simples utilizados na literatura, e no caso desta base, o método utilizado pelo sistema 2 demonstra ser ligeiramente superior ao método utilizado pelo MxTerminator na base considerada.
Contudo, apesar dos resultados obtidos pelo Sistema 2 e pelo sistema MxTerminator serem próximos, o fato do sistema 2 ter obtido um melhor resultado, deve-se ao fato que o domínio dos documentos utilizados é específico, neste caso uma base de notícias, e bem conhecido.
Estes resultados mostram como uma abordagem simples, considerando o contexto de onde ocorre o possível ponto de final de sentença pode ser utilizada para realizar a tarefa de segmentação automática de documentos em sentenças, se os documentos em questão pertencerem a um domínio específico. Em suma, o método utilizado tende a ser uma boa opção para realizar a tarefa de segmentação automática em sentenças quando se trabalha com domínios específicos, visto que este é configurável de uma forma simples e provê resultados satisfatórios.
identificando em um caso como: “And then he left to Australia...”, como sendo três sentenças distintas.
De uma forma geral, pode-se dizer que quando o domínio dos documentos é conhecido e a estrutura dos mesmos é pequena e bem conhecida, o método proposto poderia ser utilizado, visto sua velocidade de desenvolvimento e simplicidade. Porém ao trabalhar com bases muito grandes, que possuam muitas minúcias, o método proposto poderia acabar se transformando em uma tediosa tarefa manual para a customização de todas as regras; por essa razão a abordagem utilizando aprendizagem de máquina poderia ser mais indicada.
Outro fator importante a ser analisado é a questão de adaptação dos métodos a diferentes gêneros e idiomas de documentos. Para adaptar o método proposto para um mesmo domínio mas em outro idioma, teriam que ser substituídas apenas as informações referentes ao idioma, como por exemplo as abreviações; informações específicas do domínio não têm a necessidade de serem modificadas. Já na abordagem utilizando aprendizado de máquina, haveria necessidade de treinar novamente o sistema com um novo conjunto de exemplos no novo idioma a ser trabalhado. Deve-se ressaltar que novamente a escolha da abordagem a ser utilizada, depende do domínio a ser trabalhado e do conhecimento do usuário.
5 Conclusões Finais
Este trabalho propõe a utilização de mecanismos baseados em expressões regulares e análise bidirecional de expressões regulares após a localização do ponto como elementos para a separação automática de um texto em sentenças.
Os resultados obtidos com a aplicação dos diferentes métodos mostram que o uso de métodos simples é insuficiente para a identificação das sentenças de um documento. Da mesma forma a análise unidirecional, apesar de proporcionar resultados um pouco melhores, ainda é insatisfatória.
qualquer idioma ou gênero de texto, sendo eventualmente necessárias apenas algumas modificações na base de expressões regulares do sistema.
Os resultados obtidos sugerem ainda que a arquitetura do sistema proposto, com o uso de expressões regulares indicadas em uma base de fácil modificação e inclusão de rótulos (tagging), pode ser adequada à detecção de outros elementos interessantes em um texto livre, servindo portanto em um contexto geral à tarefa de “Extração de Informações” (APPELT, 1999). Estas aplicações deverão ser objeto dos próximos estudos a serem realizados com o sistema.
No futuro será realizado um experimento comparando a performance das diferentes técnicas de detecção automática de sentenças para textos em português além de realizar experimentos utilizando outros sistemas, como o sistema Satz, na base avaliada neste experimento.
6 Referências Bibliográficas
APPELT, D. E; ISRAEL, D. Introduction to Information Extraction Technology. In: IJCAI-99 Tutorial, Stockholm, Sweden, 1IJCAI-999.
BRILL, E. A simple rule-based part of speech tagger. In: Proceedings of the Third Conference on Applied Natural Language Processing, ACL, 1992.
BRILL, E. Some advances in transformation-based part-of-speech tagging. In: Proceedings of the Twelfth National Conferente on Artificial Intelligence, 1994, p. 722 – 727.
LAROCCA NETO, J. et al.Document clustering and text summarization. In:Proceedings of the 4th Int. Conf. Practical Applications of Knowledge Discovery and Data Mining (PADD-2000), London, 2000, p. 41 - 55.
LAROCCA NETO, J. et al.Generating Text Summaries through the Relative Importance of Topics. In: Proc. Int. Joint Conf. IBERAMIA-2000 (7th Ibero-American Conf. on Artif. Intel.) & SBIA-2000 (15th Brazilian Symp. on Artif. Intel.), São Paulo, SP, Brasil, 2000, p. 301 - 309.
LEWIS, HARRY R.; PAPADIMITRIOU, CHRISTOS H. Elementos de Teoria da Computação. Editora Bookman, 2000. p. 339.
PALMER, DAVID D. {SATZ} - An Adaptive Sentence Segmentation System. University of California at Berkeley, Master's Thesis, available as {UCB} Technical Report {CSD}-94-846, 1994.
PALMER, DAVID D.; HEARST, MARTI A. Adaptive Multilingual Sentence Boundary Disambiguation. Computational Linguistics, Volume 23, Number 2, 1997, p. 241 - 267.
PARDOS, T. A. S.; Nunes, M. G .V. Segmentação Textual Automática: Uma Revisão Bibliográfica. Série de Relatórios Técnicos do Instituto de Ciências Matemáticas e de Computação - ICMC, Universidade de São Paulo, no. 185. 2003.
REYNAR, J.; RATNAPARKHI, A. A Maximum Entropy Approach to Identifying Sentence Boundaries. In: Proceedings of the Fifth Conference on Applied Natural Language Processing, p. 16 - 19, 1997.
RILEY, M. D. Some Applications of Tree-Based Modelling to Speech and Language. In: Proceedings of the Speech and Natural Language Workshop, Cape Cod, p. 339 - 352, 1989.
SILLA JR., C. N.; KAESTNER, C. A. A. Estudo de Métodos Automáticos para Sumarização de Textos. In: Simpósio de Tecnologias de Documentos, São Paulo, p. 45 - 49, 2002.
WALKER, D. J. et al.Sentence Boundary Detection: A Comparison of Paradigms for Improving MT Quality. In: Proceedings of the 8th Machine Translation Summit. 2001.
Agradecimentos