Você está na página 1de 8

Universidade de So Paulo Mestrado em Cincia da Computao

Instituto de Matemtica e Estatstica Disciplina MAC5725 Lingstica Computacional

Anlise Sinttica de Frases utilizando Gramticas Livres de Contexto Probabilsticas


Christian Danniel Paz Trillo
cpaz@ime.usp.br

17 de Outubro de 2004

Resumo 1 Introduo
Lingstica Computacional o estudo cientco da linguagem desde uma perspectiva computacional. A anlise de frases vlidas numa linguagem natural uma sub-rea de interesse importante porque seu desenvolvimento ajuda o desenvolvimento de outras sub-reas como a sumarizao automtica de textos, recuperao de informao, reconhecimento de dilogo, e outras. Os problemas presentes na anlise sinttica de frases so: Dada uma sentena em linguagem natural e uma gramtica descrevendo a estrutura da linguagem, reconhecer se ela gramatical ou no. Dadas as mesmas entradas, alm de reconhecer se a sentena gramatical, devolver a(s) estrutura(s) que faz(em) ela ser gramatical, i.e. sua rvore sinttica. possvel atribuir a essas rvores uma probabilidade extrada tambm da gramtica indicando quo provvel essa soluo. Um dos problemas principais a criao da gramtica para uma linguagem natural, pois essas gramticas so muito amplas. Existem dois enfoques para a criao dessas gramticas: o primeiro consiste em manualmente identicar e expressar as regras baseadas no conhecimento humano; e o segundo automtico, 1

e consiste em extrair regras de textos existentes, chamados de corpus. O enfoque utilizado aqui consiste em extrair as regras de um corpus existente em que as estruturas das frases foram manualmente identicadas e anotadas. O corpus utilizado foi gerado pelo trabalho do projeto Tycho Brahe de Portugus Histrico1 , e o corpus foi simplicado para reduzir o nmero de regras da gramtica. O presente trabalho descreve uma implementao do algoritmo de Earley para gramticas livres de contexto probabilsticas, utilizando o 75% do corpus para extrao das regras e o 25% restante para teste das mesmas, calculando a preciso e cobertura dos resultados para avaliar quo prximas so as respostas obtidas pelo algoritmo das que foram manualmente anotadas no corpus. A Seo 2 descreve o corpus utilizado e as consideraes tomadas para o processamento do mesmo. A Seo 3 detalha a implementao feita em termos do algoritmo e as estruturas de dados utilizadas. A Seo 4 apresenta os resultados obtidos pelo algoritmo considerando a preciso das respostas, assim como uma discusso sobre a ecincia do algoritmo em termos de tempo e espao consumido. Finalmente, a Seo ?? apresenta algumas concluses abordadas durante a implementao do algoritmo.

Corpus

Um dos mtodos de extrao automtica de regras para uma gramtica de linguagem natural utiliza um corpus manualmente anotado. As anotaes feitas no corpus indicam a estrutura das sentenas que conformam o texto. Um exemplo de frase sem anotaes presente no corpus : No foi preciso que os sucessos vericassem aquele vaticnio, Dita frase est presente no corpus com as correspondentes anotaes como segue: (IP (NEG No) (SR foi) (ADJP (ADJ preciso)) (CP (C que) (IP (NP (D os) (N sucessos)) (VB verificassem) (NP (D aquele) (N vaticnio)))) (, ,))

Em que aparece a estrutura da frase em forma de regras. As regras que podem ser extradas da frase anotada so:
1

http://www.ime.usp.br/tycho

NEG No SR foi ADJ preciso ADJP ADJ C que D os N sucessos NP D N VB vericassem D aquele N vaticnio IP NP VB NP CP C IP ,, IP NEG SR ADJP CP , O corpus original do projeto Tycho Brahe contm informao mais detalhada sobre as estruturas das frases, por exemplo a regra (D os), est presente no corpus original como (D-P os) indicando que os um determinante (D) em plural(P). Esse detalhe foi tirado do corpus para reduzir o nmero de regras geradas o que reduz o tempo de resposta do algoritmo de reconhecimento. Este processo de ltragem foi automtico, mas gerou algumas regras que produziam laos innitos no reconhecimento das frases, por exemplo: IP IP ou o conjunto de regras {PP IP, IP PP}. Esses problemas foram identicados manualmente e as regras removidas automaticamente. Um 75% das frases do corpus, selecionadas aleatoriamente, utilizado para extrair as regras da gramtica e para trein-la e o 25% restante utilizado para testar, e delas s as rvores sintticas so extradas.

Descrio da Implementao

A implementao foi feita em C++ usando a libreria STL, e o compilador g++ para linux. Na Seo 3.1 as estruturas de dados utilizadas na implementao do algoritmo so detalhadas, e na Seo ?? apresentamos o algoritmo de Earley utilizado na implementao. 3

3.1 Estruturas de Dados


Na gura 1 se mostra o diagrama de classes na linguagem UML para as propriedades e operaes principais usadas na implementao. As classes foram:

Figura 1: Diagrama de Clases para a implementao.

Item Gramatical(GrammarItem), Terminal e No Terminal(NonTerminal): um item gramatical um no terminal ou no terminal da gramtica, o no terminal tem a informao para saber se ele deriva a terminais( lado esquerdo de regras lxicas); Regra(Rule): uma regra representada pelo no terminal do seu lado esquerdo e os itens gramaticais do seu lado esquerdo(sejam terminais ou no terminais). Uma regra armazena a sua probabilidade, que a contagem de aparies dela no corpus, dividido pela contagem de aparies de regras que tem o mesmo no terminal no lado esquerdo; Regra Instanciada(InstancedRule): uma regra instanciada uma regra sendo processada pelo algoritmo, e que contm informao do estado de processamento dela, o nmero de no terminais do lado direito que foram analisados(arcPos) e as posies em que cada um dos seus itens foi instanciado; Item de Processamento(ProcessingEntry): sempre que uma regra nalizada, o no terminal do lado esquerdo dela deve ser analisado para ativar outras re4

gras nas que ele aparece do lado direito, esta estrutura armazena a informao necessria para vericar isso; Analisador Sinttico(EarleyParser): a implementao do algoritmo de Earley que ser explicada na seguinte Seo. Para executar o algoritmo, ele conta com seis estruturas: arcos: os arcos so as regras para as quais pelo menos um dos elementos do seu lado direito foi processado com as entradas que foram avaliadas, so indexados pela posio do primeiro elemento ainda no instanciado e pelo elemento, arcos no instanciados: so uma cpia das regras originais da gramtica(sem considerar as regras lxicas), arcos lxicos: so arcos no instanciados associados s regras lxicas, regras nalizadas: os arcos que so processados at o ltimo smbolo do seu lado direito so ditos de nalizados e so armazenados nesta estrutura, so indexadas pela posio em que comeam e pelo no terminal do seu lado esquerdo. O algoritmo utiliza uma pilha de itens de processamento durante a sua execuo. Alm disso, para cada no terminal que foi instanciado dominando duas posies especcas se ele est na pilha atualmente esperando para ser processada, assim como a regra de maior probabilidade que instanciou aquele no terminal nessas posies. rvore Sinttica e N da rvore(STTree e STNode): A rvore sinttica de uma frase a estrutura dela. Existem dois modos de construir a rvore, quando ela extrada do conjunto de frases de teste, ela gerada diretamente em base representao anotada da frase; quando o algoritmo de Earley reconhece uma frase ele gera uma rvore sinttica segundo as regras que ele encontrou que estavam presentes na frase. A rvore anotada e a rvore gerada so comparadas para obter a similaridade entre elas, i. e., o nmero de ns em que elas coincidem. O nmero de coincidncias dividido pelo nmero de ns da arvore gerada a preciso do algoritmo para essa frase. O nmero de coincidncias dividido pelo nmero de ns da rvore extrada do corpus anotado a cobertur do algoritmo. Essas duas medidas permitem avaliar o desempenho do algoritmo. Um programa foi escrito para gerao aleatria de instncias de 3-SAT, e rodado com: ./gen N L e gera um arquivo gen_N_L onde N o nmero de variveis, e L o nmero de clusulas. O programa de resoluo chamado: 5

DPL(nvel) 1. Se nvel = 0 Ento 1.1. Aplicar Reduo Unipolar; 2. aplicou <- verdadeiro; 3. Enquanto a frmula seja indefinida e aplicou 3.1. aplicou <- BCP(nvel); 4. Se a frmula falsa Ento 4.1. Desfazer os BCPs feitos no nvel; 4.2. Retorna falso; 5. Se a frmula verdadeira Ento 5.1. Retorna verdadeiro; 6. lit <- Seleo de Literal; 7. var <- lit.variable; 8. Se lit.sinal verdadeiro Ento 8.1. var.valor <- verdadeiro; 9. Seno 9.1. var.valor <- falso; 10. Se DPL(nvel + 1) verdadeiro Ento 10.1. Retorna verdadeiro; 11. var.valor <- negao(var.valor); 12. Se DPL(nvel + 1) verdadeiro Ento 12.1. Retorna verdadeiro; 13. var.valor <- indefinido; 14. Desfazer os BCPs feitos no nvel; 15. Retorna falso; Figura 2: O algoritmo DPL implementado.

./solver arquivo_problema arquivo_sada Onde o arquivo de problema est no formato proposto no SATLIB[?] e o arquivo de sada contm os resultados da execuo do programa, i.e. se o problema satisfazvel e a valorao encontrada que faz o problema satisfazvel se houver.

4 Resultados
Testes foram feitos para encontrar de manera experimental o ponto de mudana de fase para 3-SAT. O ponto de mudana de fase ubicado no valor L/N no qual a porcentagem de problemas satisfazveis de um conjunto de instncias geradas aleatriamente prximo a 50%. O valor de N foi xado para os testes a 50 e 100, tomando 100 arquivos aleatrios em cada ponto de L/N evaluado. Os resultados obtidos podem ser 6

vistos na gura ??. O grco mostra a relao entre a variao de valores L/N e a porcentagem de problemas satisfazveis dos 100 arquivos aleatrios. O ponto de mudana de fase foi encontrado em 4.3 em N=50 e em 4.25 para N=100. Outra caracterstica notada que os problemas que tomaram mais tempo (em mdia e mximo para os 100 arquivos aleatrios) para ser resolvidos esto na proximidade do ponto de mudana de fase, naqueles pontos em que a porcentagem de problemas satisfazveis diferente de 0% e de 100%, como pode ser visto nas guras ?? e ??. Os grcos mostram a relao entre L/N e o tempo em segundos tomado pelo algoritmo para resolver os problemas aleatrios em mdia e no mximo. Os valores obtidos nos testes foram registrados e so mostrados nas tabelas 1 e ??.

5 Concluses
A implementao de redues como BCP e literais unipolares assim como o uso da heurstica MOM para a escolha do literal sob estruturas de dados adequadas, permite reduzir dramticamente o tempo que o algoritmo toma para resolver o problema. A mudana de fase um fenmeno singular neste problema e se apresenta num pequeno intervalo de valores L/N , para valores entre 3.5 e 6, j para os outros pontos, a porcentagem de problemas satisfazveis ou 0% ou 100%. Nestes pontos prximos a mudana de fase foi percebido que o tempo de resoluo em geral tomado pelo algoritmo foi maior que nos outros valores de L/N .

L/N 0.5 1 2 3 3.5 3.76 4 4.1 4.2 4.3 4.32 4.34 4.36 4.38 4.4 4.44 4.5 4.6 4.7 4.8 4.9 5 6 7 8 9 10 20

L 25 50 100 150 175 188 200 205 212 215 216 217 218 219 220 222 225 230 235 240 245 250 300 350 400 450 500 1000

% Satisfazveis 100 100 100 100 100 95 91 78 66 60 59 52 47 47 47 38 42 25 18 16 13 6 0 0 0 0 0 0

Tempo mdio(s) 0.04 0.04 0.06 0.04 0.03 0.03 0.05 0.07 0.1 0.12 0.09 0.07 0.12 0.07 0.11 0.08 0.11 0.11 0.13 0.12 0.15 0.13 0.13 0.14 0.15 0.14 0.2 0.32

Tempo mximo(s) 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Tabela 1: Resultados obtidos para N=50.

Você também pode gostar