Home

RuDriCo2 - Um Conversor Baseado em Regras de - INESC-ID

image

Contents

1. Altera o da sintaxe Mb Propriedades autom ticas Mb part08 1 xml lt 1 00 lt 1 00 part08 10 xml 1 00 1 00 part08 100 xml 5 70 5 70 100 part08 500 xml 9 00 8 60 95 56 part08 1000 xml 13 10 12 50 95 42 part08 5000 xml 47 30 44 70 94 50 part08 10000 xml 89 20 84 60 94 84 part08 50000 xml 431 10 410 40 95 20 part08 100000 xml 904 60 850 40 94 01 Tabela 5 15 Mem ria utilizada no processamento dos ficheiros de avaliac o Como as regras ficaram mais compactas espera se que esta altera o tenha impacto no pr pro cessamento das regras Na tabela 5 16 apresentam se os valores da nova medi o do tempo de pr processamento Verifica se que esta altera o reduziu o tempo para aproximadamente 91 do tempo medido na sec o anterior Altera o da sintaxe Propriedades autom ticas Tempo s 0 55 0 50 Tabela 5 16 Tempo de gera o do ficheiro optimizado 5 1 6 RuDriCo2 Ap s a altera o das propriedades autom ticas foram realizadas outras altera es ao sistema como a introdu o de operadores na sintaxe e as optimiza es ao algoritmo de aplica o de regras Nesta sec o realiza se a avalia o do RuDriCo ap s todas as altera es ou seja avalia se o RuDriCo2 Na tabela 5 17 apresentada a avalia o do tempo de processamento dos ficheiros de avalia o no RuDriCo2 e compara se com o estado do sistema avaliado na sec o anteri
2. Nesta sintaxe a propriedade surface s pode ocorrer uma vez em cada item e a propriedade lemma s pode ocorrer uma vez em cada bloco Esta sintaxe permite escrever a regra anterior da seguinte forma surface2 S1 CAT pre lemma poder CAT nou lemma poder CAT ver MOD inf surface2 S3 CAT ver MOD inf S1 lemma poder CAT nou S3 Neste caso a sintaxe permite usar menos tr s vari veis e a descri o dos n s uniforme Os contextos s o uma das vantagens identificadas no XIP pois permitem escrever as regras mais simples e compactas usando menos vari veis Pelos motivos referidos os contextos s o introduzidos no antecedente das regras no RuDriCo2 e t m a seguinte sintaxe contexto esquerda Item1 Item2 ItemN contexto direita Os contextos s o compostos por itens e poss vel usar todo o tipo de operadores permitidos nos itens do antecedente Na sec o 2 4 foi apresentada a seguinte regra XIP com contexto noun verb det noun verb Para escrever esta regra no RuDriCo necess rio usar vari veis para emparelhar com os itens que simulam os contextos e escrev los no consequente Com a sintaxe do RuDriCo2 esta regra escreve se da seguinte maneira CAT det CAT noun CAT ver CAT verb RON CAT noun Acerca do uso de contextos importa referir que n amp o necess rio reescrever no consequente os segm
3. Altera o do processamento de entrada e sa da s Camadas s part08 1 xml 0 16 0 12 75 00 part08 10 xml 1 82 0 74 40 77 part08 100 xml 7 74 3 36 43 41 part08 500 xml 35 99 15 37 42 70 part08 1000 xml 74 00 30 79 41 61 part08 5000 xml 368 36 152 19 41 32 part08 10000 xml 728 75 301 50 41 37 part08 50000 xml 3667 73 1546 70 42 17 part08 100000 xml 1188 05 2951 20 41 06 Tabela 5 9 Tempo de processamento dos ficheiros de avalia o Analisando a tabela verifica se que todos os tempos baixaram uniformemente com a introdu o de camadas excepto o tempo de processamento do ficheiro com uma s frase No caso do primeiro ficheiro o aumento de desempenho menor do que nos restantes porque o sistema processa apenas uma frase Os restantes tempos baixaram em m dia para cerca de 41 80 do tempo original Observe se na tabela 5 10 que a mem ria ocupada diminuiu com o conceito de camadas por exemplo para o ficheiro de 1000 frases a mem ria foi reduzida para 70 41 da mem ria original Verifica se tamb m que quanto maior o ficheiro a processar menos se nota a redu o de mem ria 5 1 4 Introdu o de contextos e altera o da representa o dos itens No RuDriCo original n o existe o conceito de contexto mas este simulado usando vari veis o que implica que as regras sejam mais trabalhosas e extensas No RuDriCo original al m de n o existirem contextos obrigat rio designar o lema e a forma superficia
4. de de CAT prep o o CAT art gt do do CAT pre O processamento da frase A Coreia de o Sul apresentado nas figuras 3 7 3 8 e 3 9 Relativamente a p g este exemplo note se que e para todas as frases o sistema coloca o segmento Head no in cio da frase e o segmento Tail no fim e uma Arule tem um ponto depois de um item do antecedente que indica os itens que est o satisfeitos esquerda do ponto e os itens que falta satisfazer direita do ponto e quando um arco acaba com uma cruz a Arule eliminada da AruleList e quando um arco acaba com um OK a Arule aplicada Tendo como ponto de partida a figura 3 7 observa se que os dois primeiros segmentos da frase n o adicionam nenhuma Arule AruleList uma vez que nao ha regras que emparelhem com estes Ja para o terceiro segmento a Agenda encontra a regra que junta Coreia do Sul e coloca a na AruleList com o primeiro item satisfeito Em seguida e uma vez que a regra que junta Coreia do Sul n o pode ser aumentada esta exclu da da lista Contudo neste passo ou seja quando o segmento adicionado Ter Agenda o que acontece que a regra que junta os segmentos de e o colocada na AruleList Quando o Analisador adiciona o segmento o nenhuma regra encontrada mas a Arule presente na AruleList aumentada e fica no estado em que pode ser aplicada Assim como a primeira re
5. Este operador permite que sejam atribu das propriedades no consequente que n o estejam representadas no n antecedente Por exemplo 12 Operador Descrigao variavel prop1 valor prop2 valor Testa um conjunto de propriedades numa vari vel vari vel1 vari vel2 Verifica se duas vari veis representam o mesmo n Os 2 n s t m de ter todas as propriedades com o mesmo valor vari vel1 vari vel2 Compara as propriedades de um n com outro e v se todas as proprieda des de um dos n s est o presentes no outro vari vell vari vel2 Verifica se duas vari veis s o n s dife rentes vari vell lt vari vel Verifica se a vari vell est antes da vari vel2 na estrutura hier rquica vari vell gt vari vel Verifica se a vari vell est depois da vari vel2 na estrutura hier rquica E usado em conjunto com outros ope radores representando a nega o varidvel1 propriedade no1 n02 Transfere propriedades de um no para outros testel amp teste2 Verifica se dois testes sao verdade testel teste2 Verifica se um de dois testes verdade Tabela 2 3 Operadores do sistema XIP para as vari veis Operador Descri o propriedade valor Se a propriedade n o tiver o respectivo valor o teste falha propriedade valor A propriedade fica com este valor a n o ser que j tenha outro e neste caso o test
6. Representa a sequ ncia de segmentos que emparelham com a vari vel S1 no antecedente com um novo bloco S1 L1 Representa o segmento que emparelhe com a vari vel 1 no ante cedente excluindo a anotac o presente no bloco S1 L1 2 Representa o segmento que emparelhe com a vari vel S1 no ante cedente mantendo a anotac o presente no bloco e excluindo as restantes Tabela 2 2 Operadores do sistema RuDriCo para os itens do consequente S1 L1 CAT pre TAIL este antecedente emparelha com os ltimos segmentos de cada frase se estes tiverem uma anotac o de preposi o Note se que o segmento Head usado como primeiro item de uma regra e o segmento TAIL usado como ltimo item Para exemplificar as regras de desambigua o considere se a forma superficial poder Esta forma superficial pode ser um nome ou um verbo mas se o contexto em que est inserida for analisado consegue se desambiguar e atribuir a categoria correcta A regra para desambiguar esta forma superficial no caso de ser um verbo S1 L1 CAT pre S2 poder CAT nou poder CAT ver MOD inf 3 L3 CAT ver MOD inf gt S1 S2 poder CAT nou S3 O antecedente da regra significa que para esta regra emparelhar necess rio existir um seg mento com a categoria preposi o seguido de um segmento com duas anota es com o lema po der onde na primeira a categ
7. Coreia do Sul Coreia do Sul Figura 3 8 Segundo passo do processamento da frase A Coreia do Sul 24 S1 S2 poder CAT ver de de CAT prep o o CAT art do do CAT pre A primeira regra um exemplo de uma regra que emparelha o seu primeiro item com qualquer seg mento sendo esta a que tem mais prioridade pois a primeira do ficheiro de regras Com estas regras a frase processada em dois passos que se encontram representados nas figuras 3 10 e 3 11 No primeiro passo figura 3 10 observa se que quando o segmento o adicionado Agenda a AruleList fica com duas regras a regra que emparelha com todos os segmentos e a regra que junta o segmento de ao segmento o De acordo com o algoritmo de aplica o de regras feita uma ordena o AruleList indicando que a primeira regra do ficheiro tem mais prioridade do que a segunda logo a regra que junta os segmentos de com o n o pode ser aplicada neste passo uma vez que n o a primeira da lista Esta regra guardada na lista at poder ser aplicada ou at que haja uma regra mais priorit ria que possa ser aplicada No caso deste exemplo a regra s pode ser aplicada quando o segmento Tail adicionado Agenda No segundo passo figura 3 11 deste modo n o h nenhuma regra que seja aplicada O sistema garante que as regras s o aplicadas pela ordem em que aparece
8. aproximadamente 116 vezes menos do que a mem ria usada no sistema original Como um dos objectivos deste trabalho aumentar o desempenho do RuDriCo na tabela 5 4 apresentam se os resultados do tempo de leitura e escrita de ficheiros Note se que esta altera o no m todo de leitura e escrita aumentou tamb m o desempenho do RuDriCo Observando os tempos de processamento verifica se que quanto maior o ficheiro maior o aumento desse desempenho Por compara o ao maior ficheiro que o RuDriCo original processa o ficheiro part08 10000 xml o sistema Corpus de Extractos de Textos Electr nicos MCT P blico 50 Original Mb Altera o do processamento de entrada e sa da Mb part08 1 xml 1 00 1 00 part08 10 xml 1 00 1 00 part08 100 xml 14 00 1 00 part08 500 xml 132 00 1 00 part08 1000 xml 292 00 1 80 0 62 part08 5000 xml 1433 00 12 20 0 85 part08 10000 xml 2252 8 30 00 1 33 part08 50000 xml n o processa 159 50 part08 100000 xml n o processa 332 60 Tabela 5 3 Mem ria utilizada para a leitura e escrita Original s Alterac o do processamento de entrada e sa da s part08 1 xml 0 01 0 01 100 00 part08 10 xml 0 09 0 04 44 44 part08 100 xml 0 54 0 20 37 04 part08 500 xml 2 44 0 93 38 11 part08 1000 xml 4 81 1 81 37 63 part08 5000 xml 23 56 8 96 38 03 part08 10000 xml 51 83 17 90 34 54 part08 50000 x
9. subjectiva na medida em que algumas das suas propriedades n o s o contabiliz veis O crit rio avaliado a determina o do qu o compactas se tornaram as regras porque na sec o 2 4 j se havia verificado que a sintaxe do sistema XIP muito mais compacta e que s o usadas menos vari veis A avalia o deste crit rio realizada comparando o tamanho dos ficheiros de regras do RuDriCo original com os ficheiros de regras do RuDriCo2 Note se que na convers o das regras do RuDriCo para o RuDriCo2 os operadores disjun o nega o e item opcional n o s o usados uma vez que esta convers o foi realizada por um programa que n o tem a capacidade de introduzir estes operadores Como j foi referido anteriormente as regras est o divididas em 35 ficheiros mas neste caso concreto as regras s o agrupadas em tr s ficheiros um ficheiro por tipo de regra Al m disso os coment rios o caractere espa o e o caractere quebra de linha foram removidos dos ficheiros antes da medi o de tamanhos Na tabela 5 23 apresentado o tamanho de cada ficheiro Tipo de Regras RuDriCo RuDriCo2 96 Descontrac o 105 70kb 92 90kb 88 Desambigua o 83 60kb 20 00kb 24 Contrac o 4 20mb 3 30mb 79 Tabela 5 23 Tamanho dos ficheiros de regras Observando a tabela verifica se que as regras de desambigua o reduzem o tamanho do ficheiro para 24 do tamanho original sendo este o tipo d
10. Add A Coreia do Sul Agenda Segment A Segment Coreia Segment do Segment Sul ApplyFirsReduced AruleList AruleList AruleList AruleList AruleList lem lem lem lem lem lem lem lem Us 9X I l I l lem lem lem lem ooo I l lem lem im qnn i I Figura 4 12 Segundo passo do processamento da frase A Coreia de o Sul na nova Agenda 43 4 8 Valida o de regras No RuDriCo qualquer regra que seja bem constitu da sintacticamente aceite no sistema Contudo ao longo da utiliza o do sistema foram detectados alguns casos em que o sistema devia alertar o utilizador da exist ncia de um erro por exemplo quando h um engano no nome de uma vari vel Para combater esse problema no RuDriCo2 foram introduzidas as seguintes verifica es verifica o do nome das propriedades e dos valores como se observa na sec o 4 8 1 e verifica o da consist ncia das vari veis como se verifica em 4 8 2 Foi tamb m introduzido um alerta para quando h regras de contrac o que se sobrep em como descrito em 4 8 3 4 8 1 Ficheiro de verifica o de propriedades e valores O conjunto de propriedades presente nos segmentos de entrada conhecido antes da execu o do sistema e os seus valores tamb m com excep o do lema e da forma superficial O valor do lema e da forma su
11. ndice um ndice que tem em considera o a forma superficial do primeiro item e do segundo item das regras Como se pode ve rificar abaixo as seguintes regras s o associadas no ndice das formas superficiais forma superficial a join surface a surface baixa surface altitude gt surface lemma a baixa altitude CAT adv DEG pst surface a surface bom surface passo a surface lemma a bom passo CAT adv DEG pst Com a introdu o do novo indice estas regras passam a estar associadas ao novo ndice A pri Gu meira regra associada concatena o das formas superficiais a e baixa e a segunda associada concatena o das formas superficiais a e bom Com este novo ndice poss vel reduzir o n mero de regras que t m a mesma forma superficial indexada o que reduz o n mero de regras candidatas a gerir pelo algoritmo de aplica o de regras 48 Capitulo 5 Avalia o Para medir o desempenho de um sistema necess rio definir qual o conjunto de crit rios a medir e posteriormente fazer uma an lise dos resultados Neste caso em que o sistema a avaliar uma evolu o do sistema RuDriCo avalia se o desempenho do sistema final com base no desempenho do sistema original como se pode observar na sec o 5 1 Uma vez que este sistema baseado em regras e a sintaxe destas difere de
12. 4 oe spend de RO AA ibe eid dedu cal o cp Alteragoes ao sistema RuDriCo 4 1 Metodologia usada para escrita e leitura de ficheiros llle Aide Camadas xus x Sosa qui oe MUDA CURE ee DD guae eee REALES Be as 4 3 Altera o da representa o dos itens e introdu o de contextos 4 4 Propriedades autom ticas a s ALAN Capitaliza o e d v up axe afin Ree 8 EUR RO mE ok ale weeks oun ed ce tns gt 4 4 2 Propriedades extra vi cs s LA RR Red oe rok Aa O a 4 5 Sintaxes diferentes ss ps E A UR DN SNUEYATYGYORUE END E a GREAT ee Gus 4 6 Introdu o de novos operadores 4 ees 4 6 1 Operador Nega o rosana ee ne ge be EPE A we ea dod ed Lae es 4 6 2 Operador Disjungao ss sa sve eke odo hor le SR RS A I Rs 4 6 3 Operadores QQ e QQ 2 2 0 2 0 0 2 e 4 6 4 Operador item opcional ee 4 7 Meade Tail como pares propriedade valor ee 4 8 Validacao de regras amp e gore Eie LE ee a O oe Sow BE ON A ARO reeds 4 8 1 Ficheiro de verifica o de propriedades e valores e 4 8 2 Verifica o de vari veis es N NDO wv 10 10 11 14 18 18 20 20 20 21 4 83 Regras de contrac o mo eee ee oy AU QUO ee ee ey 45 4 9 Optimizacoes goo debe E Pu eese ie GS bw teak Wed e d A E ere eek we 45 4 9 1 Optimizagoes ao algoritmo de aplica o de regras les 45 4 9 2 Optimiza o dos indices de regra
13. LOW W1 HIG I1 surface os lemma 0 CAT art SCT def NUM p GEN m LOW W1 HIG I1 J A estrat gia utilizada a seguinte e a propriedade LOW dos segmentos resultantes fica com o valor da propriedade LOW do segmento que foi descontraido e a propriedade HIG dos segmentos resultantes fica com o valor da propriedade HIG do segmento que foi descontra do Note se que o c lculo do valor das propriedades no consequente depende do tipo de regra que realizada No RuDriCo2 estas propriedades s o calculadas automaticamente e assim deixam de existir estas duas propriedades nas regras Se for desejado outro comportamento no c lculo das propriedades poss vel usar vari veis para calcular os valores das propriedades como no RuDriCo original No RuDriCo original todas as regras de descontrac o t m duas propriedades ainda n o referidas que marcam o primeiro e o ltimo segmento de uma descontrac o a propriedade TOKENS token start e TOKENE token end respectivamente Estas propriedades servem para identificar nos dados de sa da do sistema que conjuntos de segmentos fazem parte de uma descontrac o Por exemplo a seguinte regra surface quele CAT pre surface a lemma a CAT pre FOR sim TOKENS true surface aquele lemma aquele CAT pro SCT dem NUM s GEN m TOKENE true marca os segmentos resultantes da descontrac o com as propriedades TOKENS e TO
14. next segment of PreProcessedSentence 18 ENDWHILE 19 ENDFOR 20 Write PosProcessedSentence Figura 4 3 Algoritmo de processamento de frases com camadas 4 3 Altera o da representa o dos itens e introdu o de con textos Na sintaxe do RuDriCo sempre que se escreve um item obrigat rio colocar a forma superficial e o lema Quando n o se quer testar o lema ou a forma superficial usam se vari veis para o item poder emparelhar com qualquer lema ou forma superficial Por exemplo S1 L1 CAT pre S2 poder CAT nou poder CAT ver MOD inf 3 L3 CAT ver MOD inf gt S1 S2 poder CAT nou S3 31 nesta regra usam se as vari veis L1 e L3 no antecedente mas nao no consequente O uso de vari veis para esta situa o pode ser evitado se o lema e a forma superficial forem como no XIP pares propriedade valor pois deixa de ser obrigat rio test los em todos os itens No RuDriCo2 passa a existir a propriedade lemma e a propriedade surface A sintaxe antecedente gt consequente onde o antecedente e o consequente s o constitu dos por itens com a seguinte sintaxe prop 1 valor 1 prop 2 valor 2 Os itens s o separados por uma v rgula e constitu dos por um ou mais blocos um bloco o que est entre par nteses rectos prop 1 valor 1 prop 2 valor 2 prop 1 valor 1 prop 2 valor 2
15. os segmentos que recebe no entanto as regras passaram a estar organizadas em camadas pelo que a Agenda precisa de saber que camada de regras vai usar em cada momento Para resolver este problema foi adicionado um par metro Agenda a camada Assim a Agenda s usa regras da camada indicada A classe Analisador fica respons vel por gerir a camada que a Agenda vai usar Houve altera es no algoritmo apresentado na figura 4 1 para este suportar as camadas e gerir a camada que a Agenda vai utilizar O novo algoritmo apresentado na figura 4 3 Note se que se o sistema for iniciado apenas com uma camada o algoritmo id ntico ao algoritmo sem camadas Um dos objectivos ao adicionar este conceito resolver o problema da recurs o entre regras colocando as regras que provocam recurs o em camadas diferentes Method Analise Sentence S LayerList layersList 1 FOR EACH layer L in layersList DO 2 Agenda layer L tells agenda to use rules from layer L 3 IF L 0 THEN 4 PreProcessedSentence 8 5 ELSE 6 PreProcessedSentence PosProcessedSentence 7 PosProcessedSentence 8 I first segment of PreProcessedSentence 9 WHILE I is a segment 10 applied agenda I 11 IF applied THEN 12 ConstructNewSentence PosProcessedSentence PreProcessedSentence ChangedSegments 13 PreProcessedSentence PosProcessedSentence 14 I first segment of PreProcessedSentence 15 ELSE 16 Add PosProcessedSentence I 17 I
16. s aplica as regras de uma camada de notar que o RuDriCo testa todas as regras em cada passo do algoritmo enquanto o XIP testa apenas um subconjunto que corresponde s regras de uma camada O conceito de contexto esquerda e direita existe no XIP mas n o no RuDriCo Contudo poss vel simular os contextos com a ajuda de operadores e vari veis Tome se como exemplo a seguinte regra no sistema XIP noun verb det noun verb Agora observe se a mesma regra no RuDriCo SO LO CAT det S1 L11 CAT noun L22 CAT verb S2 L2 CAT verb SS gt So 1 L11 CAT noun S2 Como se pode observar no RuDriCo necess rio usar vari veis e a regra mais extensa Quanto s vari veis estas t m diferen as entre os dois sistemas sendo aplicadas a conceitos diferentes devido representa o dos dados em cada um desses sistemas No RuDriCo uma vari vel pode ser associada ao lema forma superficial ou a uma propriedade No XIP uma vari vel associada a um n que cont m uma propriedade que representa o lema uma propriedade que representa a forma superficial e as restantes propriedades No XIP se o operador for usado no lugar de um n o operador representa uma vari vel an nima conceito este que nao existe no RuDriCo No XIP podem se comparar duas vari veis para saber se estas s o o mesmo n enquanto no RuDriCo nao existe o conceito de compara o entre vari veis que rep
17. Erase AruleList 8 Return true 9 ENDFOR 10 Return ApplyFirstReduced AruleList Figura 4 10 Algoritmo de aplica o de regras da nova Agenda O algoritmo de aplica o de regras passou a ter um ciclo para processar os segmentos de cada frase e quando processa toda a frase sem aplicar nenhuma regra aplica o m todo ApplyFirstReduced O m todo ApplyFirstReduced verifica se existe alguma regra que possa ser aplicada na AruleList Se existir mais do que uma regra que possa ser aplicada na AruleList o m todo escolhe a primeira regra que encontra dado que a lista est ordenada por ordem de aplica o das regras e assim aplicada a regra que tem mais prioridade O m todo remove todas as Arules da AruleList e se tiver aplicado uma regra retorna true sen o retorna false Com a Agenda alterada o processamento do algoritmo demonstrado na figura 4 10 realizado como mostra a figura 4 11 e a figura 4 12 42 Add A Coreia de o Sul Agenda Segment A Segment Coreia Segment de Segment o Segment Sul ApplyFirsReduced AruleList AruleList AruleList AruleList AruleList AruleList I 1l I Ill Ifill IPI II lem lem lem R lem lem lem lem I2 UI lem lem lem lem 3 4 surf surf gt surf Figura 4 11 Primeiro passo do processamento da frase A Coreia de o Sul na nova Agenda Analisador
18. a mem ria Como o RuDriCo processa os dados frase a frase n o h necessidade de ter todos os dados de entrada carregados em mem ria A solu o para este problema foi utilizar um aml sax parser dado que este usa um handler que passa o controlo ao RuDriCo sempre que existir uma frase ainda n o processada O RuDriCo usa o zml dom parser para escrever a sa da do sistema seja a sa da direccionada para um ficheiro ou n o Esta tecnologia foi alterada porque o parser constr i uma rvore com todos os dados de sa da o que faz tamb m com que a sa da n o possa exceder a mem ria Assim a solu o encontrada consiste em escrever os dados de sa da frase a frase Na arquitectura original do RuDriCo a classe Analisador controla o fluxo dos dados de entrada A classe Rudrico ap s realizar as suas tarefas invoca a classe Analisador e esta controla o fluxo de todo o lhttp www w3 org SAX 28 algoritmo Para introduzir o zml sax parser nesta arquitectura o controlo do fluxo de informa o foi transferido para o handler do novo parser Este handler l uma frase de cada vez e invoca o Analisador para processar cada uma das frases O Analisador ao realizar a tarefa de processamento de dados de entrada tem tamb m a tarefa de ler os dados mas com esta altera o a tarefa passou a ser apenas processar frases A nica mudan a no algoritmo de processamento de frases do Analisador n o ter o ciclo sobre as frases dado que o fl
19. desempenho do sistema RuDriCo aoaaa a Mem ria utilizada para a leitura e escrita 2 e Tempo de leitura e escrita em segundos ooo e Tempo de processamento dos ficheiros de avalia o o oo a e Mem ria utilizada no processamento dos ficheiros de avalia o ls Estudo do n mero de regras ptimo por camada Tempo de gera o do ficheiro optimizado a Tempo de processamento dos ficheiros de avalia o a Mem ria utilizada no processamento dos ficheiros de avalia o aa Tempo de processamento dos ficheiros de avalia o len Mem ria utilizada no processamento dos ficheiros de avalia o ls Tempo de gera o do ficheiro optimizado 2 2 0 0 ee ee Tempo de processamento dos ficheiros de avalia o les Mem ria utilizada no processamento dos ficheiros de avalia o ls Tempo de gera o do ficheiro optimizado 2n Tempo de processamento dos ficheiros de avalia o len Tempo de processamento dos ficheiros de avalia o 2 2 ee ee Mem ria utilizada no processamento dos ficheiros de avalia o es Mem ria utilizada no processamento dos ficheiros de avalia o ls Tempo de gera o do ficheiro optimizado 2e Tempo de gera o do ficheiro optimizado 2s Tamanho dos ficheiros de regras LL oen 13 13 14 30
20. desta regra desambiguar um segmento que tenha tr s anota es correspondentes a tr s ca tegorias diferentes n mero adjectivo e nome Neste exemplo o antecedente especifica que um segmento tem de ter as tr s anota es referidas para emparelhar com esta regra O contexto esquerda indica que tem de ocorrer antes do segmento em quest o um segmento anotado de n mero num seguido de um anotado de adjectivo adj ou de nome noun sendo que opcionalmente poder haver um segmento que tenha o lema e depois destes e finalmente poder ter um anotado de artigo Se o contexto e o antecedente existirem nos dados o segmento desambiguado ficando anotado com a categoria n mero A seguinte frase um exemplo que emparelha com esta regra duas canecas e um quarto onde a pala vra quarto que o analisador morfol gico classifica com tr s categorias desambiguada para a categoria n mero 2 4 Principais diferen as entre os 2 sistemas A tabela 2 5 apresenta um resumo das funcionalidades de cada sistema sendo poss vel assim com par los Como se pode observar as tr s funcionalidades n o contempladas no RuDriCo s o espec ficas Funcionalidade Sistema RuDriCo Sistema XIP Regras de desambigua o x x Regras de contrac o x Regras de descontrac o x Regras de chunking x Regras para modificar a rvore de chunks x Regras de depend ncia x Tabela 2 5 Funcionali
21. est efectivamente a emparelhar com um ou mais segmentos ou seja a classe Arule representa regras activas A classe Aruleltem representa itens das Arules Na figura 3 3 e na figura 3 4 apresentam se os diagramas de classes destes objectos Arle TmpSegments segments size t point Figura 3 3 Diagrama UML simplificado da classe Arule No que diz respeito Arule existem dois conceitos importantes aumentar e aplicar Aumentar uma Arule significa adicionar lhe um segmento desde que o segmento emparelhe no ponto onde o antecedente est a ser satisfeito Aplicar uma Arule consiste em aplicar o consequente aos segmentos que emparelharam com o antecedente da regra Uma Arule pode ser aplicada quando todos os itens do antecedente s o satisfeitos A classe Arule cont m um objecto RRule associado sendo que este que corresponde regra que est activa A Arule cont m adicionalmente dois campos o campo segments e o campo point O campo segments guarda os segmentos que emparelham com a RRule correspondente e estes s o ordenados pela ordem de emparelhamento O campo point identifica os itens da RRule que j foram satisfeitos As Arules t m um m todo importante para o algoritmo principal do RuDriCo o m todo Add que o m todo que permite aumentar as Arules Para verificar se um segmento emparelha com um item o item 19 Aruleltem 1 RRuleltem dd Figura 3 4 Diagrama UML simplificado da classe Aruleltem trans
22. estrutura das regras foi alterada ao serem adicionados os contextos Na tabela 5 13 apresentam se os resultados e verifica se que esta altera o aumentou o tempo de pr processamento para aproximadamente 102 do tempo usado antes desta altera o Com camadas Altera o da sintaxe Tempo s 0 53 0 54 Tabela 5 13 Tempo de gera o do ficheiro optimizado 5 1 5 Propriedades autom ticas e capitaliza o No RuDriCo a capitaliza o das formas superficiais e dos lemas realizada com base na propriedade UPC Esta propriedade est presente em todos os segmentos que o sistema recebe e consequentemente est presente em todas as regras que geram novos segmentos Na sec o 4 4 1 descrita a solu o usada para a propriedade UPC n o ser usada em todos os segmentos nem em todas as regras que geram segmentos As propriedades HIGH e LOW tamb m est o em todos os segmentos do RuDriCo original e estas s o calculadas com base em vari veis As tr s propriedades referidas passaram a ser calculadas internamente o que reduziu o n mero de vari veis usadas nas regras Adicionalmente apenas as regras de descontrac o usam duas propriedades TOKENS e TOKENE que passaram tamb m a ser calculadas internamente Estas propriedades foram retiradas das regras e para as regras que geram segmentos h pelo menos tr s propriedades que deixaram de ser usadas Ainda assim estas propriedades s o calculadas interna mente p
23. forma superficial a ca pitaliza o desta ignorada no emparelhamento com os segmentos Para obrigar um item a emparelhar com segmentos que tenham a forma superficial capitalizada usa se a propriedade UPC com o valor true Por exemplo surface taco a taco CAT nou UPC true surface taco a taco lemma taco a taco CAT adv Esta regra s emparelha quando a forma superficial do item do antecedente estiver grafada com mai scula Nos itens do consequente a capitaliza o das formas superficiais calculada automaticamente com base na capitaliza o dos segmentos que emparelham no antecedente e este c lculo depende do tipo de regra Assim para as regras de descontrac o a determina o da capitaliza o realizada da seguinte forma e se a forma superficial do segmento que emparelha com o antecedente tem todos os caracteres capi talizados as formas superficiais dos segmentos resultantes v o ter todos os caracteres capitalizados e se a forma superficial do segmento que emparelha com o antecedente capitalizada o primeiro seg mento resultante do consequente fica com a forma superficial capitalizada e os restantes segmentos n o ficam com a forma capitalizada e se a forma superficial do segmento que emparelha com o antecedente nao for capitalizada todas as formas superficiais dos segmentos resultantes n o s o capitalizadas Para as regras de contrac o a capitaliza
24. maioria das regras existe um padr o a forma superficial do segmento resultante composta pela concatena o com ou sem espa os das formas superficiais dos segmentos que s o contra dos Por exemplo na regra Join surface S1 lemma sexta NUM N1 surface S2 lemma feira gt surface S1 S2 lemma sexta feira CAT nou SCT com GEN f NUM N1 a forma superficial do segmento resultante composta pela concatena o com espa os das formas superfi ciais dos segmentos originais No RuDriCo2 foram introduzidos dois operadores que s podem ser usados nas regras de contrac o o e o O operador significa concatena o de todas as formas superficiais que emparelham no antecedente e o operador significa concatena o com espa os de 39 todas as formas superficiais que emparelham no antecedente Estes operadores s o usados como valores das propriedades Deste modo a regra anterior pode ser escrita assim join lemma sexta NUM N1 lemma feira gt surface lemma sexta feira CAT nou SCT com GEN f NUM N Note se que n o foi necess rio usar vari veis para guardar as formas superficiais do antecedente o que reduz ainda mais o tamanho dos ficheiros de regras e o n mero de vari veis usadas 4 6 4 Operador item opcional No RuDriCo existem alguns casos em que h necessidade de representar um item que emparelhe com qualquer segmento por ex
25. notem no desempenho Observando os restantes ficheiros nota se que esta altera o reduziu o tempo do sistema para metade do tempo Camadas s Altera o da sintaxe s part08 1 xml 0 12 0 11 91 67 part08 10 xml 0 74 0 40 53 91 part08 100 xml 3 36 1 69 50 30 part08 500 xml 15 37 7 83 50 95 part08 1000 xml 30 79 15 29 49 66 part08 5000 xml 152 19 76 80 50 46 part08 10000 xml 301 50 154 12 51 12 part08 50000 xml 1546 70 791 00 51 14 part08 100000 xml 2951 2 1611 66 54 61 Tabela 5 11 Tempo de processamento dos ficheiros de avalia o Como esta altera o reduz o tamanho das regras e diminui o n mero de vari veis usadas nestas esperado que a mem ria ocupada ao processar os ficheiros de avalia o diminua Observe se a tabela 5 12 onde se nota que a mem ria ocupada reduziu em m dia para 92 61 Camadas Mb Altera o da sintaxe Mb part08 1 xml 1 00 1 00 part08 10 xml 1 00 1 00 part08 100 xml 6 10 5 70 93 44 part08 500 xml 9 30 9 00 96 77 part08 1000 xml 13 80 13 10 94 93 part08 5000 xml 51 10 47 30 92 56 part08 10000 xml 97 00 89 20 91 96 part08 50000 xml 490 00 431 10 87 98 part08 100000 xml 998 10 904 60 90 63 Tabela 5 12 Mem ria utilizada no processamento dos ficheiros de avalia o 54 Importa referir ainda que necess rio medir o tempo na fase de pr processamento de regras pois a
26. 0 frases a mem ria ocupada passa para 12 38 da mem ria que o sistema original ocupa mas no processamento do ficheiro de 1000 frases a mem ria ocupada foi reduzida para cerca de 7 13 Esta altera o n o teve impacto no pr processamento de regras portanto n o realizada uma compara o com o sistema original 51 Original Mb Altera o do processamento de entrada e sa da Mb part08 1 xml 1 00 1 00 part08 10 xml 10 60 9 80 92 45 part08 100 xml 34 90 12 40 35 53 part08 500 xml 143 00 17 70 12 38 part08 1000 xml 275 00 19 60 7 13 part08 5000 xml 1234 00 56 40 4 57 part08 10000 xml 2560 102 20 3 99 part08 50000 xml nao processa 507 30 part08 100000 xml n o processa 1023 60 Tabela 5 6 Mem ria utilizada no processamento dos ficheiros de avalia o 5 1 3 Introdu o de camadas O conceito de camada permite agrupar as regras do sistema em v rias camadas A introdu o deste conceito descrito na sec o 4 2 As regras utilizadas para avalia o est o distribu das por 35 ficheiros e est o organizadas pela funci onalidade das regras Com a introdu o das camadas as regras s o organizadas em camadas As regras de desambigua o n o podem ser divididas em v rias camadas dado que geram resultados diferentes As restantes regras ficam com a organiza o original em que cada camada de regras tem as regras correspondentes a um ficheiro Ao ob
27. 37 Capitulo 1 Introducao O Processamento de Lingua Natural PLN um dos t picos mais importantes da rea de Inte lig ncia Artificial Muitos dos sistemas desenvolvidos nesta rea como sistemas de di logo ou sistemas de correc o ortogr fica usam um conjunto de m dulos respons veis pelo processamento de texto A cadeia de Processamento de L ngua Natural do L2F Laborat rio de Sistemas de L ngua Falada representada na figura 1 1 composta por 6 m dulos o Segmentador o Palavroso Medeiros 1995 o Sentences o RuDriCo Pardal 2007 o Marv Ribeiro et al 2003 e o XIP Xerox 2003 O Segmentador recebe o texto de entrada e divide o mesmo em segmentos correspondendo a cada segmento por exemplo uma palavra ou um caractere de pontua o O Palavroso um analisador morfol gico que respons vel pela anota o morfossint ctica Este recebe os dados do Segmentador e com o aux lio de um dicion rio atribui todas as poss veis anota es a cada segmento Neste processo h palavras que ficam com mais do que uma anota o uma vez que s o palavras amb guas Depois do texto estar anotado o m dulo Sentences agrupa os segmentos em frases de acordo com a pontua o O m dulo que sucede o analisador morfol gico o desambiguador morfossint ctico RuDriCo Rule Driven Converter cujo objectivo principal resolver as ambiguidades introduzidas pelo Palavroso Este m dulo tamb m usado para alterar a seg
28. 5 Segundo passo do processamento da frase A Coreia de o Sul com as duas optimiza es 47 4 9 2 Optimiza o dos indices de regras Em 3 2 2 foi apresentada a indexa o das regras tendo sido tamb m descritas as propriedades dos v rios ndices de regras presentes no sistema Posteriormente foi realizado um estudo sobre o n mero de regras associado s formas superficiais no ndice de formas superficiais constantes e lemas vari veis Analisando as regras do sistema observa se que existem 1796 formas superficiais no respectivo ndice Na tabela 4 4 apresentam se as 10 formas superficiais com mais regras associadas Palavra N mero de regras a 433 em 370 por 242 de 215 the 101 com 94 sem 41 at 34 sao 32 la 31 Tabela 4 4 N mero de regras associadas a cada forma superficial poss vel observar que o n mero de regras associadas s formas superficiais n o uniforme havendo formas superficiais que t m um elevado n mero de regras associadas quando comparadas com as restan tes Um exemplo disso mesmo a forma superficial a que tem 433 regras associadas O segmento de forma superficial a frequente no texto e sempre que este processado as 433 regras associadas s o candidatas a emparelhar Para diminuir o n mero de regras candidatas as regras com mais de um item que tenham a forma superficial constante e o lema vari vel s o indexadas num novo
29. 5 1 1 Metodologia da avalia o Para medir o desempenho do RuDriCo2 usam se dois crit rios o tempo de CPU medido em segundos e a mem ria ocupada medida em Megabytes Considere se ainda que n o foi poss vel medir os casos em que o sistema usa menos de 1Mb pelo que nas tabelas de resultados estes casos s o apresentados como lt 1 Mb Estes dois crit rios s o analisados em duas fases de execu o quando o sistema pr processa as regras e quando processa o texto de entrada Para gerar os resultados definiu se um ambiente de processamento id ntico ao usado no in cio deste trabalho o que corresponde ao conjunto de 3096 regras usadas no L2F Os ficheiros usados para a avalia o 49 s o excertos do CETEMP blico sendo que cada excerto tem um tamanho diferente Os ficheiros est o q descritos na tabela 5 1 e s o caracterizados pelo tamanho em Kilobytes e pelo n mero de frases Ficheiro N frases Tamanho Kb part08 1 xml 1 17 part08 10 xml 10 241 part08 100 xml 100 1524 part08 500 xml 500 7 203 part08 1000 xml 1000 14 308 part08 5000 xml 5000 70 634 part08 10000 xml 10000 140 905 part08 50000 xml 50000 716 195 part08 100000 xml 100000 1 436 545 Tabela 5 1 Ficheiros para testar o sistema RuDriCo De seguida apresenta se a avaliacao do sistema original para posterior comparacao na tabela 5 2 Ficheiro Tempo s Tama
30. 5 73 part08 1000 xml 275 00 10 00 3 64 part08 5000 xml 1234 00 42 30 3 43 part08 10000 xml 2560 00 78 10 3 05 part08 50000 xml nao processa 386 00 781 20 part08 100000 xml nao processa Tabela 5 20 Mem ria utilizada no processamento dos ficheiros de avalia o Para finalizar a avalia o do desempenho do sistema apresenta se de seguida a avalia o final da fase de pr processamento de regras Houve altera es que tiveram impacto nesta fase de processamento mas que n o foram consideradas fases de avalia o interm dias do sistema como por exemplo as altera es apresentadas na sec o 4 8 A tabela 5 21 apresenta o resultado final do tempo de pr processamento de regras e o tempo anterior enquanto a tabela 5 22 apresenta o tempo do sistema final e original As altera es referidas nesta sec o aumentaram o tempo de pr processamento de regras para 102 57 Propriedades autom ticas RuDriCo2 Tempo s 0 50 0 51 Tabela 5 21 Tempo de gera o do ficheiro optimizado Original RuDriCo2 Tempo s 0 49 0 51 Tabela 5 22 Tempo de gera o do ficheiro optimizado do tempo medido anteriormente Comparando o tempo de pr processamento entre o RuDriCo e o RuDriCo2 verifica se que o RuDriCo2 aumentou o tempo em cerca de 4 o que corresponde a 0 02s Esta baixa de desempenho no pr processamento das regras desprez vel porque as regras
31. 6 part08 100000 xml nao processa 800 86 Tabela 5 18 Tempo de processamento dos ficheiros de avalia o Na tabela 5 19 apresentam se os valores da mem ria utilizada no sistema fina l e no sistema avaliado na sec o anterior Verifica se que o RuDriCo2 reduziu a mem ria ocupada em m dia para 93 70 da Propriedades autom ticas Mb RuDriCo2 Mb part08 1 xml 1 00 1 00 part08 10 xml 1 00 1 00 part08 100 xml 5 70 5 50 96 49 part08 500 xml 8 60 8 20 95 35 part08 1000 xml 12 50 10 00 91 20 part08 5000 xml 44 70 42 30 94 63 part08 10000 xml 84 60 78 10 92 32 part08 50000 xml 410 40 386 00 94 05 part08 100000 xml 850 40 781 20 91 86 Tabela 5 19 Mem ria utilizada no processamento dos ficheiros de avalia o mem ria utilizada no sistema avaliado na sec o anterior Na tabela 5 20 apresentam se os valores da mem ria utilizada no sistema original e no sistema final e pode se concluir que o sistema aumenta o desempenho quando o n mero de frases cresce Para contabilizar a redu o de mem ria observe se o ltimo ficheiro que o sistema original processa A verifica se que o sistema final reduziu a mem ria utilizada para 3 05 da mem ria do sistema original Original Mb RuDriCo2 Mb part08 1 xml 1 00 1 00 part08 10 xml 10 60 1 00 part08 100 xml 34 90 5 50 15 76 part08 500 xml 143 00 8 20
32. Ifi INSTITUTO SUPERIOR T CNICO RuDriCo2 Um Conversor Baseado em Regras de Transforma o Declarativas Cl udio Filipe Paiva Diniz Dissertac o para obtenc o do Grau de Mestre em Engenharia Inform tica e de Computadores J ri Presidente Professor Doutor Ant nio Rito Silva Orientador Professor Doutor Nuno Jo o Neves Mamede Co Orientador Professor Doutor Jo o Dias Pereira Vogal Professor Doutor Ant nio Paulo Teles de Menezes Correia Leit o Outubro 2010 Agradecimentos Gostaria de agradecer a dedica o a disponibilidade e a mestria do meu orientador Professor Nuno Mamede Gostaria de agradecer tamb m ao meu co orientador Professor Joao Dias Pereira pela ajuda preciosa que prestou Lisboa 26 de Novembro de 2010 Claudio Diniz Resumo No processamento de texto existem palavras ambiguas na medida em que uma palavra tanto pode ter a categoria de verbo como de nome por exemplo De forma a resolver estas ambiguidades existe um m dulo na cadeia de Processamento de Lingua Natural PLN do L2F o RuDriCo O RuDriCo assim um desambiguador morfossint ctico baseado em regras que al m de desambiguar tamb m permite alterar a segmenta o do texto Na compara o deste m dulo com os restantes m dulos da cadeia verifica se que este substancial mente mais lento sendo o desempenho do sistema um dos problemas abordados neste trabalho O sistema RuDriCo baseado em regras e s o estas que permitem a reali
33. KENE Verifica se que estas propriedades est o presentes em todas as regras de descontracc o sendo poss vel realiz las automaticamente O RuDriCo2 calcula estas duas propriedades automaticamente Ao realizar a convers amp o das regras para serem retiradas estas propriedades verifica se que o tamanho total dos ficheiros das regras diminuiu pois as regras ficaram mais compactas Ao calcular estas pro priedades automaticamente diminui se tamb m a probabilidade de haver erros nas regras Ainda assim foram encontradas cinco regras com erros no c lculo destas propriedades 4 5 Sintaxes diferentes No RuDriCo existem tr s tipos de regras regras de descontrac o regras de contrac o e regras de desambigua o No RuDriCo2 a sintaxe de ambas as regras come a por se diferenciar no s mbolo que separa o antecedente do consequente tal como indicado na tabela 4 2 Com esta distin o poss vel fazer uma verifica o mais eficaz constru o das regras Cada ficheiro de regras pode ter regras de v rios Tipo de regra S mbolo Desambigua o Descontracgao lt Contrac o lm Tabela 4 2 Correspond ncia entre tipos de regras e s mbolos que separam o antecedente do consequente tipos mas o tipo de regra tem de ser indicado antes das regras com uma das directivas apresentadas na tabela 4 3 Para facilitar e n o ser necess rio escrever o tipo de regra em todas as regras as regras 37
34. a capitaliza o dos lemas nos segmentos resultantes 4 4 2 Propriedades extra No RuDriCo todos os segmentos t m uma propriedade que indica a posi o do primeiro caractere relativamente frase em que est o inseridos e outra que indica a posi o do ltimo caractere respec 35 tivamente designadas como propriedades LOW e HIGH Estas propriedades foram ignoradas at agora porque nao sao relevantes para explicar as funcionalidades do RuDriCo Na figura 4 7 apresenta se um segmento com as respectivas propriedades A propriedade LOW tem o valor 0 e significa que o primeiro lt word name Posteriormente gt lt class root posteriormente gt lt id atrib CAT value adv gt lt id atrib DEG value pst gt lt id atrib LOW value 0 gt lt id atrib HIG value 13 gt lt id atrib UPC value true gt lt class gt lt word gt Figura 4 7 Segmento da forma superficial Posteriormente caractere da palavra est na posi o zero da frase e que esta palavra a primeira da frase a que pertence A propriedade HIG tem o valor 13 porque a forma superficial tem 14 caracteres O pr ximo segmento da frase a que este segmento pertence ir come ar na posi o 14 A cadeia de processamento necessita que os segmentos resultantes mantenham as propriedades e as regras do RuDriCo t m de ter isso em conta As regras que fazem novos segmentos t m de escrever estas propriedades e sendo assim este proc
35. a na tabela 4 1 Representa o interna Camadas nos ficheiros de entrada Camada 0 Camada 1 do ficheiro 1 Camada 1 Camada 2 do ficheiro 1 Camada 2 Camada 1 do ficheiro 2 Camada 3 Camada 5 do ficheiro 2 Camada 4 Camada 3 do ficheiro 3 Camada 5 Camada 4 do ficheiro 3 Tabela 4 1 Correspond ncia entre camadas A entrada do RuDriCo2 um ficheiro constitu do pelas localiza es dos ficheiros de regras A estrutura interna das regras do RuDriCo uma lista de regras representada por um objecto da classe RRuleList Para suportar as camadas o RuDriCo2 guarda internamente um vector de objectos da classe RRuleList em que cada posi o corresponde a uma camada com a respectiva ordem A composi o das RRules n o foi alterada A optimiza o ao RuDriCo feita por Marques 2008 sobre o facto de as regras serem pr processadas teve de ser revista porque agora existe um vector de listas de regras Assim foi adicionado um campo com o n mero de camadas ao ficheiro das regras pr processadas No RuDriCo2 este ficheiro tem a seguinte composi o lt N mero de camadas gt lt N mero de RRules gt lt RRule 1 gt lt RRule N gt lt N mero de RRules gt lt RRule 1 gt lt RRule N gt Para introduzir as camadas na arquitectura original do RuDriCo a classe Agenda foi modificada Esta classe tem acesso a todas as regras que est o no sistema de modo a escolher que regras emparelham com 30
36. actor na prioridade das Arules enquanto no RuDriCo2 o primeiro factor o seguinte se uma regra puder ser aplicada e se o ltimo segmento da mesma aparecer na frase antes do primeiro segmento de todas as outras regras esta regra a primeira da AruleList Quando este factor n o se 45 verificar a ordem das regras igual ordena o original Na figura 4 13 observa se como o primeiro passo do exemplo de execu o do algoritmo de aplica o de regras apresentado na sec o 4 7 realizado com a nova ordena o de regras O segundo passo igual ao exemplo da sec o 4 7 Analisador Add A Coreia de o Sul Agenda Segment o Segment Sul Segment A Segment Coreia Segment de pplyFirsReduced A AruleList AruleList AruleList AruleList AruleList AruleList lem lem lem lem J lem lem lem lem ll lem lem IPI lem lem 3 surf i surf gt Ir l Ir l Ir l ca surf Figura 4 13 Primeiro passo do processamento da frase A Coreia de o Sul com nova ordena o de regras Observando a figura 4 13 verifica se que a regra de contraccao n o aplicada assim que satisfeita dado que nesta fase do processamento ainda existe uma regra na AruleList que tem mais prioridade A regra de contracc o aplicada no segmento Sul porque devido nova ordenagao a Arule corre
37. ais itens e cada um tem a seguinte constitui o forma superficial lema prop 1 valor 1 prop 2 valor 2 A forma superficial uma palavra e o que est entre par nteses rectos um bloco constitu do pelo lema e por uma ou mais propriedades com o respectivo valor Os itens emparelham com segmentos e os blocos emparelham com anota es podendo haver mais do que um bloco em cada item como se verifica no exemplo seguinte escrita escrita CAT nou escrever CAT ver Neste caso emparelha com o item uma forma superficial escrita que tenha as seguintes anota es o lema escrita e a categoria nome o lema escrever e a categoria verbo Note se que o consequente tem a mesma sintaxe do antecedente Para que o sistema possa suportar regras mais complexas e mais expressivas usado um conjunto de operadores havendo uns que se usam s no antecedente e outros que se usam s no consequente das regras Os operadores para usar no antecedente est o descritos na tabela 2 1 e podem ser usados com qualquer item no antecedente Operador Descri o J Deve ocorrer um ou mais segmentos que emparelhem com o item Deve ocorrer zero ou mais segmentos que emparelhem com o item Deve ocorrer zero ou um segmento que emparelhem com o item Jn Deve ocorrer n ou mais segmentos que emparelhem com o item n1 n2 Deve ocorrer e
38. alidade a responsabilidade desta classe passar esta informa o para a classe Analisador de modo a que esta se comporte de acordo com a informa o do comando de entrada Outra responsabilidade da classe consiste em inicializar algumas das restantes classes do sistema por exemplo a classe Analisador 3 2 2 Classe Analisador As principais tarefas da classe Analisador sao i pr processar as regras ii ler as regras pr processadas ou normais e iii aplicar as regras ao texto de entrada As RRules s o carregadas a partir de um ficheiro com regras no formato descrito nas sec es 2 2 2 e 2 2 3 Este formato f cil quanto escrita e interpreta o realizadas por humanos mas no RuDriCo ler as regras e converter para a estrutura interna um processo que pode ser agilizado O pr processamento das regras consiste na sua leitura para a representa o interna RRules sendo as mesmas consequente mente guardadas num ficheiro Este processo uma serializa o manual dos objectos que representam as RRules O ficheiro de regras pr processadas tem a seguinte constitui o 20 lt Numero de RRules gt lt RRule 1 gt lt RRule N gt Esta optimiza o foi introduzida no RuDriCo por Marques 2008 e reduziu o tempo despendido ao carregar as regras para 57 face ao tempo inicial Na leitura das regras estejam estas no formato normal ou pr processado feita a sua indexa o para facilitar o processo de esc
39. ama da entidade Arule propriedade existe porque o RuDriCo nao identifica se uma palavra esta capitalizada verificando o estado da forma superficial Esta propriedade irrelevante para os restantes m dulos do sistema mas tem de estar presente nos segmentos do RuDriCo Considere se o segmento representado na figura 4 6 onde se verifica que a propriedade UPC tem o valor true Aqui tamb m se pode concluir que a palavra est capitalizada observando a forma superficial lt word name Posteriormente gt lt class root posteriormente gt lt id atrib CAT value adv gt lt id atrib DEG value pst gt lt id atrib UPC value true gt lt class gt lt word gt Figura 4 6 Segmento da forma superficial Posteriormente As regras que fazem novos segmentos t m de escrever a propriedade UPC processo este que implica o uso de vari veis para emparelhar com a propriedade de modo a calcular o valor da propriedade para os segmentos criados no consequente das regras Observe se o exemplo surface taco a taco CAT nou UPC U1 gt surface taco a taco lemma taco a taco CAT adv UPC UI Para evitar o uso destas vari veis inclui se no RuDriCo2 um modo de distinguir as palavras capita 34 lizadas por observa o da forma superficial para assim ser poss vel remover a propriedade UPC do ficheiro de entrada Nas regras do RuDriCo2 quando existe um item no antecedente que testa a
40. ara simular a nega o de uma categoria tem como grande desvantagem a necessidade de nomear todas as categorias excepto a que se nega Esta solu o n o escal vel porque quanto mais categorias existem mais regras t m de ser feitas Uma outra desvantagem reside na adi o de propriedades na medida em que se for adicionada uma categoria por exemplo todas as regras que usaram esta solu o para simular a nega o v o ter de ser revistas No XIP testa se se uma propriedade tem algum valor independentemente do valor em quest o usando o operador Tamb m poss vel testar se um n est antes ou depois de outro n utilizando os operadores lt e gt Ainda no XIP para testar se uma propriedade tem um respectivo valor usa se o operador embora este ignore as restantes propriedades que n o sao testadas no n assim como quando se testam propriedades nos itens do antecedente no RuDriCo No entanto com o operador 7 pode se testar se um n s tem um certo conjunto de propriedades e mais nenhuma No RuDriCo tamb m poss vel fazer este tipo de teste usando o operador Um dos operadores que apresentado juntamente com as regras de desambigua o do XIP o operador aum disjunc o conceito esse que nao existe no RuDriCo Como exemplo considere se a seguinte regra no sistema XIP noun verb det prep noun verb Como nao existe disjun o no RuDriCo para es
41. art noun lt gen m gt numa regra do RuDriCo2 disamb 38 CAT verb lemma o CAT art GEN m lemma 0 CAT pro GEN m CAT nou GEN m CAT art 4 6 2 Operador Disjun o No RuDriCo apesar de n o existir o operador disjun o existem algumas regras que necessitam desse conceito para serem escritas sem replica o de regras como por exemplo a seguinte regra do XIP noun verb det prep noun verb Para escrever esta regra no RuDriCo necess rio escrever duas regras como descrito na sec o 2 4 O problema que quanto mais elementos fizerem parte da disjun o mais regras s o escritas no RuDriCo Para resolver esta quest o introduziu se o operador disjun o Este utilizado para fazer disjun o entre itens no antecedente A sintaxe a seguinte prop 1 valor 1 prop 2 valor 2 prop 1 valor 3 prop 2 valor 4 Segue se o exemplo da regra do XIP com o operador disjun o na sintaxe do RuDriCo2 disamb CAT det CAT prep CAT noun CAT verb CAT verb CAT noun Neste exemplo para um segmento emparelhar com o contexto esquerda basta emparelhar com al gum dos itens da disjun o 4 6 3 Operadores QQ e As regra de contrac o realizam a tarefa de agrupar segmentos num nico segmento Ao observar todas as regras de contrac o nota se que na
42. as regras fiquem por ordem de emparelhamento ou seja se a primeira regra da lista puder ser aplicada aplicada independentemente das restantes A ordem da lista de Arules mantida atrav s de algumas propriedades destas sendo a ordem em que as regras est o nos ficheiros o primeiro factor de ordenamento Adicionalmente a este factor quando existe na lista a mesma regra replicada com diferente n mero de segmentos emparelhados a regra que aparece primeiro a que tem mais segmentos Para finalizar quando existe a mesma regra replicada e ambas t m o mesmo n mero de segmentos emparelhados o crit rio de desempate o momento em que foram adicionadas lista pelo que a regra que tiver sido adicionada primeiro a regra que aparece primeiro O m todo Done verifica se uma Arule pode ser aplicada ou seja se a regra representada na Arule tem todos os itens do antecedente satisfeitos O m todo ApplylstRule o m todo respons vel por fazer as transforma es aos segmentos que em 22 parelhem com as Arules A Arule a aplicar a primeira da AruleList pois deste modo garante se que a regra que aplicada a regra com maior prioridade Para exemplificar o comportamento da Agenda considere se a frase A Coreia de o Sul e um ficheiro com as seguintes regras coreia L1 CAT C1 do L2 CAT C2 sul L3 CAT C3 gt Coreia do Sul Coreia do Sul CAT nou GEN P NUM s
43. asse RRuleDesc representa um bloco e constitu da pelo atributo root que representa o lema e por uma lista de inst ncias da classe Tag que representam pares atributo valor A classe Sentence usada para representar internamente as frases de entrada descritas na sec o 2 2 1 A figura 3 2 apresenta um diagrama de classes da classe Sentence Cada Sentence tem um conjunto de objectos da classe Segment sendo esta classe constitu da por um atributo word que representa a forma superficial de um segmento e por uma lista de inst ncias da classe Description A classe Description representa uma anota o e constitu da pelo atributo root que representa o lema e por uma lista de inst ncias da classe Tag Cada objecto da classe Tag representa um par atributo valor http www w3 0rg DOM 2http dinosaur compilertools net 18 RRuleDesc MyWord _ root bool rootlsVar MyWord word bool wordlsVar bool operator bool unique bool multiple d Antecedent EEE String value String attribute Figura 3 1 Diagrama UML simplificado da classe RRule String attribute String value MyWord word Figura 3 2 Diagrama UML simplificado da classe Sentence Para cada Sentence o algoritmo de regras permanece em execu o at n o haver mais regras para aplicar Para determinar as RRules que podem ser aplicadas definiu se a classe Arule e a classe Aruleltem A classe Arule representa uma regra que
44. b NUM value s gt lt class gt lt class root pesquisar gt lt id atrib CAT value ver gt lt id atrib MOD value imp gt lt id atrib PER value 2 gt lt id atrib NUM value s gt lt class gt lt word gt Figura 2 2 Exemplo das v rias anota es que o analisador morfol gico atribui palavra pesquisa A contrac o ocorre quando se juntam dois ou mais segmentos num s Na figura 2 3 apresenta se um exemplo de como a segmenta o da frase A Coreia do Sul na sia transformada na medida em que Coreia do Sul passa a corresponder a um s segmento A descontrac o ocorre quando se Depois da altera o da segmenta o GEE Figura 2 3 Altera o de segmenta o tem um segmento com a respectiva forma superficial e h necessidade de transform lo em dois ou mais segmentos No exemplo da figura 2 3 a descontrac o acontece no segmento de forma superficial na Guo que se transforma em dois segmentos em e a 2 2 2 Regras de desambigua o Neste primeiro momento imp e se descrever a sintaxe das regras no sistema RuDriCo antecedente gt consequente No antecedente definem se as condi es de emparelhamento da regra que por sua vez define um padr o Quando o antecedente emparelhar com uma sequ ncia de segmentos a respectiva sequ ncia substitu da pelo consequente O antecedente constitu do por um conjunto de um ou m
45. biguar realiza ainda algumas tarefas extra como a segmenta o do texto anterior anota o A sequ ncia de tarefas do EngCG a seguinte e segmenta o e an lise morfol gica e desambigua o morfol gica e procura de anota es sint cticas alternativas e desambigua o sint ctica de estado finito O desambiguador morfol gico pode ser visto como um conjunto de regras sendo que cada regra especifica um ou mais contextos onde uma anota o est errada Uma anota o retirada se o padr o se verificar e caso a palavra fique s com uma anota o esta deixa de ser amb gua Este sistema deixa entre 3 e 7 de palavras amb guas mas a sua taxa de acerto de 99 7 Os sistemas XIP e RuDriCo ser o retomados em grande detalhe nas sec es seguintes Por ltimo o sistema Brill Tagger descrito em Brill 1992 um analisador morfol gico que tem em aten o o contexto das palavras quando lhes atribui as anota es Este sistema baseado em regras aprendidas automaticamente ou seja na atribui o da anota o o sistema realiza a desambigua o ba seada em regras Uma das desvantagens dos sistemas baseados em regras a sua escrita mas Brill 1992 mostra que com a aprendizagem autom tica das regras a escrita pode ser evitada Este sistema come a por atribuir a anota o mais prov vel a cada palavra ignorando o contexto e depois realiza a parte de aprendizagem que considera oito tipos de regras pr
46. cas vol II Universidade de Aveiro Aveiro Klein and Simmons 1963 Klein S and Simmons R F 1963 A Computational Approach to Gram matical Coding of English Words In Journal of the Association for Computational MAchinery 10 pp 334 347 Marques 2008 Marques J 2008 Relat rio Da Bolsa Technical report Instituto Superior T cnico Universidade T cnica de Lisboa Portugal Medeiros 1995 Medeiros J C 1995 Processamento Morfol gico e Correc o Ortogr fica do Por tugu s Master s thesis Instituto Superior T cnico Universidade T cnica de Lisboa Portugal M rquez and Padr 1997 M rquez L and Padr L 1997 A Flexible POS Tagger Using an Auto maticalluy Acquired Language Model In Proceedings of the 35th Annual Metting of the Association for Computational Linguistics pp 238 245 Madrid Pardal 2007 Pardal J 2007 Manual do Utilizador do RuDriCo Technical report Instituto Superior T cnico Universidade T cnica de Lisboa Portugal 62 Ratnaparkhi 1996 Ratnaparkhi A 1996 A Maximum Entropy Model for Part of Speech Taging In Proceedings of the Conference on Empirical Methods in Natural Language Processing EMNLP 96 Philadelphia PA Ratnaparkhi 1998 Ratnaparkhi A 1998 Maximum Entropy Models for Natural Language Ambiguity Resolution PhD thesis University of Pennynsilvania Ribeiro et al 2003 Ribeiro R Mamede N J and Trancoso I 2003 Computational Pr
47. com categoria nome Adicionalmente categoria podem se representar outras propriedades Para representar as propriedades dos n s existe o conceito de propriedades locais e de propriedades globais As propriedades globais s o o conjunto das propriedades de todas as anota es de um n As propriedades locais referem as propriedades de cada anota o individualmente Para representar propriedades globais usa se o operador par nteses rectos e para representar propriedades locais usa se o operador menor e maior lt gt Por exemplo o antecedente noun lt sing gt 11 emparelha com um segmento que tenha a categoria nome e a propriedade singular na mesma anota o Neste exemplo testa se uma propriedade local mas se fosse usado o operador o antecedente emparelharia com um segmento que tivesse a categoria nome e a propriedade singular mesmo que estas perten am a anota es diferentes H propriedades que o XIP coloca automaticamente ao receber uma frase como entrada no primeiro n de uma frase adiciona a propriedade first no ltimo n de uma frase adiciona a propriedade last Em todas as formas superficiais que comecem por uma letra capitalizada adiciona a propriedade Uppercase e s formas superficiais que tenham todas as letras capitalizadas adiciona a propriedade AllUppercase O lema e a forma superficial tamb m s o propriedades presentes nos n s O contexto direita e o contexto esquerda s o represe
48. crever uma regra equivalente a esta necess rio recorrer a duas regras uma para cada elemento da disjun o SO LO CAT det 16 S1 LI1 CAT noun L22 CAT verb S2 L2 CAT verb m So S1 L11 CAT noun S2 SO LO CAT prep S1 L11 CAT noun L22 CAT verb S2 L2 CAT verb S0 S1 L11 CAT noun Som Com base neste exemplo poss vel perceber como a inexist ncia do operador disjun o no RuDriCo cons titui uma desvantagem A solu o encontrada para simular a disjun o n o contudo uma boa solu o pois para realizar a disjun o entre cinco elementos necess rio escrever cinco regras Ainda assim analisando a compara o dos sistemas verifica se por um lado que o RuDriCo tem a vantagem de poder alterar a segmenta o e por outro lado que o XIP tem a sintaxe das regras mais expressiva e compacta 17 Capitulo 3 Arquitectura original do RuDriCo Neste capitulo sao descritas as principais classes do sistema RuDriCo e sao descritos alguns dos algoritmos envolvidos no mesmo sistema As principais entidades do RuDriCo s o as frases do texto de entrada e as regras usadas pelo sistema Na sec o 3 1 analisa se a representa o interna dessas entidades a partir da enumera o dos principais constituintes de cada uma Na sec o 3 2 s o apresentadas as principais classes respons veis pelo processamento s o analisadas as responsabi
49. da assim tal como foi referido na sec o 2 4 o RuDriCo n o tem o operador nega o sendo este uma das vantagens do XIP O operador nega o est descrito na sec o 4 6 1 Na sec o 2 4 mostra se que a disjun o pode ser simulada com replica o de regras mas uma vez que esta solu o n o escal vel introduz se o operador disjun o como se observa em 4 6 2 Na sec o 4 6 3 s o introduzidos dois novos operadores espec ficos para as regras de contrac o e na sec o 4 6 4 introduzido o operador item opcional A introdu o dos novos operadores n o implicou nenhuma mudan a substancial no modelo de dados do sistema nem nos algoritmos de processamento 4 6 1 Operador Nega o Na sintaxe do RuDriCo n o existe o operador nega o mas como referido na sec o 2 4 a nega o permite escrever regras mais simples e expressivas o que levou introdu o do operador nega o na sintaxe do RuDriCo2 O operador nega o utilizado para negar o valor de uma propriedade Dentro de cada bloco o operador pode ser utilizado em todos os pares propriedade valor ou apenas em alguns Observe se o exemplo prop 1 valor 1 prop 2 valor 2 Neste caso a propriedade 1 do item nao pode ocorrer com o valor 1 Com este operador resolve se o problema apresentado na sec o 2 4 porque poss vel escrever a seguinte regra do XIP art lt lemma o gen m gt pron lt lemma o gen m gt verb
50. dades dos sistemas RuDriCo e XIP para a estrutura hier rquica de n s do XIP Note se que o XIP n o permite realizar mudangas seg menta o original do texto ou seja n o tem regras de contrac o ou de segmenta o Ao analisar as sintaxes das regras dos sistemas nota se que h diferengas cruciais No RuDriCo a forma superficial e o lema est o sempre presentes quando se representa um item No XIP a forma superficial e o lema s o propriedades e podem ser omitidas H regras que n o necessitam de usar o lema nem a forma superficial No RuDriCo ignora se a forma superficial e o lema usando vari veis o que uma desvantagem em rela o ao XIP porque o uso de vari veis requer mais computa o Ainda no que diz respeito an lise da sintaxe de salientar que no RuDriCo n o existe o conceito de camada Se houver uma regra cujo efeito emparelhe com as condi es de outra regra e se esta segunda repuser as condi es da primeira vai haver recurs o entre as duas O algoritmo que aplica as 14 regras vai aplicar a primeira e de seguida aplica a segunda depois volta a aplicar a primeira e assim sucessivamente Para evitar estes casos de recursao a solu o proposta pelo RuDriCo limitar o n mero de passos no algoritmo No XIP utilizando as camadas consegue se evitar este problema uma vez que basta colocar as regras que provocam recurs o em camadas diferentes porque o algoritmo que aplica as regras em cada passo
51. definidas O sistema instancia as e escolhe as regras que t m uma taxa de erro menor Ap s esta selec o as regras s o aplicadas ao texto O autor refere tamb m que este sistema pode ser expandido para obter melhores resultados se forem adicionadas algumas regras escritas manualmente Os sistemas de desambigua o probabil sticos usam um corpus anotado de onde extraem a probabi lidade de uma palavra ter uma anota o num determinado contexto T m vindo a ser utilizados v rios m todos para a desambigua o probabil stica como por exemplo o m todo baseado em probabilida des condicionadas por Stolz et al 1965 no sistema WISSYN os m todos baseados em bigramas por Garside et al 1997 no CLAWS e por Church 1988 no Parts o m todo com modelos de Markov n o observ veis por Cutting et al 1992 num sistema da XEROX o m todo baseado em n gramas por Schmid 1994b e o m todo baseado em entropia m xima Ratnaparkhi 1996 Ratnaparkhi 1998 O desambiguador probabil stico da cadeia de processamento do L F o Marv Ribeiro et al 2003 que tem como base modelos de Markov Os sistemas de desambigua o probabil sticos sao os mais utilizados mas na cadeia de processamento do L F usa se uma estrat gia h brida o RuDriCo seguido do Marv que tem uma taxa de acerto global de 94 23 Para melhorar esta taxa antes do texto passar no Marv executa se o sistema de desambigua o morfossint ctica RuDriCo Este por sua
52. do mesmo tipo que sejam consecutivas necessitam da directiva apenas na primeira regra Por exemplo se um ficheiro tiver apenas regras de um tipo basta ter a directiva correspondente a esse tipo antes da primeira regra Observa se que cada tipo de regra tem uma rela o entre o n mero de itens do antecedente e o n mero de itens do consequente As regras de contrac o t m obrigatoriamente mais itens no antecedente contra riamente s regras de descontrac o que t m mais itens no consequente As regras de desambigua o t m exactamente o mesmo n mero de itens pois estas n o alteram a segmenta o Como no RuDriCo2 cada regra tem um tipo associado poss vel verificar se as regras de um respectivo tipo est o bem classificadas e alertar o utilizador em caso de erro por exemplo se uma regra for de descontrac o e se o n mero de itens no consequente n o for superior ao n mero de itens no antecedente a regra ou est errada ou mal classificada Esta verifica o feita para os tr s tipos de regras tamb m verificado se o s mbolo que separa o antecedente do consequente est correcto em rela o ao tipo da regra Tipo de regra Directiva Desambigua o disamb Descontrac o expand Contrac ao join Tabela 4 3 Correspond ncia entre tipos de regras e directivas 4 6 Introdu o de novos operadores A introdu o de novos operadores sintaxe permite que esta fique mais expressiva Ain
53. e Independent System for Parsing Unrestricted Text chapter Morphological Disambiguation Mouton de Gruyter Xerox 2003 Xerox 2003 Xerox Incremental Parser Reference Guide 63
54. e falha propriedade Se a propriedade n o tiver um valor o teste falha propriedade Se a propriedade n o tiver um valor o teste falha propriedade Se a propriedade tiver um valor o teste falha propriedade valor Se a propriedade tiver o valor referido o teste falha propriedade No caso da propriedade ter um ou mais valores fica sem nenhum Tabela 2 4 Operadores do sistema XIP para as propriedades 13 pron lt lemma nada gt verb adv prep Neste caso para esta regra emparelhar o antecedente significa que necess rio que exista um segmento com uma anota o de categoria pronome pron e lema nada Se o antecedente emparelhar verificam se os contextos Neste caso o contexto esquerda indica que tem de existir um segmento com uma anota o de categoria verbo antes do segmento em quest o e o contexto direita indica que a seguir ao segmento tem de existir um segmento com a categoria preposi o Se o antecedente e os contextos se verificarem o segmento passa a ter apenas uma anota o de categoria adv rbio Note se que a categoria adv rbio n o est presente no antecedente Considerando a frase N o vou fazer nada ao shopping a regra vai emparelhar com a parte da frase fazer nada ao Para concluir esta sec o apresenta se mais um exemplo de uma regra de desambigua o num adj noun num adj noun lemma e art num O objectivo
55. e regras que apresenta um maior ganho pois a maioria destas regras usam contextos 59 Capitulo 6 Conclusoes e Trabalho Futuro Um dos principais contributos do presente trabalho foi a resolu o do baixo desempenho do sistema RuDriCo sendo que o aumento de desempenho foi obtido atrav s de algumas altera es realizadas ao sistema original tal como descrito no cap tulo 4 As altera es que mais contribu ram para o aumento de desempenho foram e a introdu o de camadas e a introdu o de contextos juntamente com a altera o da representa o dos itens e as optimiza es realizadas ao algoritmo de aplica o de regras e ndice de regras com formas superficiais dos dois primeiros itens No que diz respeito introdu o de camadas esta opera o permite que o algoritmo de aplica o de regras fique com melhor desempenho porque deste modo o sistema aplica as regras por camada em vez de estar constantemente a tentar aplicar todas as regras Paralelamente e como as camadas adicionam uma complexidade adicional ao sistema foi realizado um estudo que mostra que a partir das 17 regras por camada o sistema fica mais r pido tendo o seu pico de desempenho nas 167 regras por camada Acerca da introdu o de contextos verificou se que esta juntamente com a altera o da representa o dos itens permitiu que fossem usadas menos vari veis nas regras facto que tornou as regras menos trabalhosas para o sistema J
56. ects this paper addresses the morphological disambiguation conducting a study among the major systems of the area The syntax of the rules is analyzed and compared with another syntax Consequently several modifications are described in RuDriCo to implement RuDriCo2 including changes in rule syntax and optimizations in the system s main algorithm 8 y y 8 Palavras Chave Keywords Palavras Chave Processamento de Lingua Natural Desambigua o Morfossintactica Regras Sintaxe Desempenho Keywords Natural Language Processing Morphological Disambiguation Rules Syntax Performance Conte do Introdu o L1 Objectivos do Trabalho sa a ocos ss ee alas ode RSRS RSS ow a O ae Trabalho Relacionado 2 1 Desambigua o Morfossint ctica rs 2 2 RuDriGQs ee Ye READS ERAS wende edd gue dob eau d de dresden 2 2 1 Descri o do sistema RuDriCo a 2 2 2 Regras de desambigua o eee ers 2 2 3 Regras de Recomposi o 1 1 a aa 2 3 RI is C TUTTI 2 31 SKIP honc Gr ee ed RSV ues ies ES eal GD Be S 2 3 2 Regras de desambigua o ee 2 4 Principais diferen as entre os 2 sistemas 2s Arquitectura original do RuDriCo 3 1 Representa o interna das principais entidades 3 2 Classes de processamento ll ee 3 21 Classe Rudrico rd it koh Eig SA da ee ke pen Soe le Xx XE Re os 3 2 2 Classe Analisador oaa ee 3 23 Classe Agenda
57. emplo o item 1 L1 CAT C1 emparelha com qualquer segmento porque tem a forma superficial vari vel o lema vari vel e a cate goria vari vel No RuDriCo2 introduziu se um operador que tem estas caracter sticas o operador 7 Este operador usado como item e s pode ser utilizado no antecedente ou nos contextos Todos os operadores que podem ser usados com itens podem ser usados com este operador 4 7 Head e Tail como pares propriedade valor O RuDriCo tem dois segmentos especiais que s o adicionados a cada frase que processa o segmento Head adicionado no inicio de cada frase e o segmento Tail adicionado no fim de cada frase No RuDriCo2 estes segmentos foram removidos e s o substitu dos por duas propriedades FST first e LST last A propriedade FST colocada com o valor true em todos os primeiros segmentos de cada frase e a propriedade LST colocada com o valor true em todos os segmentos finais de cada frase Estas propriedades s o removidas antes do RuDriCo2 escrever as frases na sa da No RuDriCo para testar se um segmento o primeiro de uma frase usa se o item Head antes do segmento que se quer testar Head S1 L1 CAT pre No RuDriCo2 usa se a propriedade FST CAT pre FST true Estes exemplos s emparelham com segmentos que apare am no inicio de uma frase e que tenham a categoria preposi o Tamb m poss vel testar se um item o ltimo de uma frase usando a p
58. endo que o primeiro tem regras de descontrac o o segundo tem regras de contrac o e o terceiro tem regras de desambigua o O conte do destes ficheiros colocado no ficheiro final pela ordem em que foram referidos anteriormente Deste modo sabe se que as regras de descontrac o t m mais prioridade do que qualquer outro tipo de regras porque s o colocadas no in cio do ficheiro de entrada O problema reside na adapta o do conceito de camada a m ltiplos ficheiros uma vez que cada um assume prioridade sobre os outros quando se juntam as regras no ficheiro de entrada A solu o para este problema consiste em mudar o ficheiro de entrada para um ficheiro que indique os ficheiros que devem ser considerados Nesta solu o as camadas s o relativas ao ficheiro a que perten cem Todas as camadas do primeiro ficheiro t m prioridade perante as camadas dos ficheiros seguintes independentemente dos seus n meros O n mero que representa a camada s utilizado para ordenar ca madas do mesmo ficheiro Como exemplo considerem se tr s ficheiros ilustrados na figura 4 2 cuja ordem 29 de apresenta o corresponde ordem pela qual s o colocados no ficheiro de entrada A correspond ncia Ficheiro 1 Ficheiro 2 Ficheiro 3 Camada 1 gt Camada 1 gt Camada 4 gt Camada 2 gt Camada 3 gt Figura 4 2 Exemplo de camadas em ficheiros de entrada entre as camadas na representa o interna e as camadas nos ficheiros est descrit
59. enta o dos itens de modo a que a forma superficial e o lema possam n o ser especificados como se verifica em 4 3 Depois na sec o 4 4 descrito um conjunto de propriedades e o modo de as calcular internamente Ao longo das altera es realizadas verificou se que cada tipo de regra tem um conjunto de carac ter sticas que n o s o comuns aos restantes tipos Uma consequ ncia desta situa o a necessidade de se alterar a sintaxe de cada tipo de regra para que cada uma possa ter uma sintaxe diferente tal como descrito na sec o 4 5 Na sec o 4 6 s o introduzidos novos operadores na sintaxe Os segmentos que representam o in cio e fim de frase s o exclu dos do processamento como se explica na sec o 4 7 Em 4 8 s o apresentados novos m todos de valida o de regras por exemplo para evitar que existam regras que t m vari veis inconsistentes Para finalizar na sec o 4 9 s o apresentadas as optimiza es realizadas ao sistema 4 1 Metodologia usada para escrita e leitura de ficheiros O formato de dados de entrada e sa da do RuDriCo XML e e esses dados s o processados com um ami dom parser O parser constr i uma rvore em mem ria com todos os elementos do ficheiro de entrada e o algoritmo de aplica o de regras acede a esta rvore frase a frase O problema desta solu o ou seja de colocar toda a entrada em mem ria que n o poss vel executar o RuDriCo com ficheiros de entrada que excedam
60. entos relativos ao contexto Com a adi o dos contextos e das altera es anteriores poss vel tornar as regras mais simples compactas e expressivas 32 Tendo sido realizado um programa para converter as regras usadas pelo RuDriCo para a sintaxe do RuDriCo2 as regras passaram a usar contextos e a beneficiar da possibilidade de ocultar o lema e a forma superficial Por exemplo a seguinte regra surface S1 lemma L1 CAT art surface S2 lemma L2 CAT num surface S3 lemma L3 CAT adj NUM s surface S4 lemma L4 CAT nou lemma L42 CAT ver PER 1 gt S1 S2 S3 surface S4 lemma L42 CAT ver convertida para CAT art CAT num CAT adj NUM s I surface S4 lemma L4 CAT nou lemma L42 CAT ver PER 1 gt surface S4 lemma L42 CAT ver Note se que a propriedade surface do item do antecedente nao necess ria no entanto nao foi poss vel tratar este caso automaticamente Com as novas funcionalidades as regras s o mais compactas e t m menos vari veis Para adicionar os contextos na arquitectura do RuDriCo alterou se a estrutura interna das regras RRules e a estrutura das Arules Foram adicionados dois campos s RRules um para guardar o contexto esquerda e um para guardar o contexto direita O diagrama com estas altera es apresenta se na figura 4 4 Nas Arules foram adicionados quatro campos um campo pa
61. erficial com mais de uma anota o ha ambiguidade Antes de se observar um caso de ambiguidade importa ter em conta que nas anota es que o analisador morfol gico atribui s palavras o nome e o valor das propriedades s o abreviaturas pelo que a propriedade CAT com o valor nou significa que a propriedade categoria tem o valor nome Assim como se pode observar na figura 2 2 a forma superficial pesquisa tem tr s anota es No primeiro caso o lema coincide com a forma superficial pesquisa e a categoria atribu da nome singular do g nero feminino No segundo caso em que o lema pesquisar a categoria atribu da verbo e as propriedades correspondem ao tempo verbal modo n mero e pessoa No terceiro caso o lema tamb m pesquisar mas as propriedades do verbo s o outras O RuDriCo permite resolver ambiguidades deixadas pelo analisador morfol gico com o aux lio de regras de desambigua o e tamb m permite alterar a segmenta o do texto fazendo contrac o e des contrac o de segmentos com as regras de recomposi o 6 lt word name pesquisa gt lt class root pesquisa gt lt id atrib CAT value nou gt lt id atrib NUM value s gt lt id atrib GEN value f gt lt class gt lt class root pesquisar gt lt id atrib CAT value ver gt lt id atrib MOD value ind gt lt id atrib TEN value prs gt lt id atrib PER value 3 gt lt id atri
62. esso implica o uso de vari veis para emparelhar com as proprieda des de modo a passar o valor destas para os segmentos no consequente das regras Observe se o exemplo surface taco a taco CAT nou LOW W1 HIG I2 gt surface taco a taco lemma taco a taco CAT adv LOW W1 HIG I2 As propriedades LOW e HIG s o vari veis no antecedente pelo que s o escritas com o mesmo valor no consequente Neste exemplo onde o segmento do antecedente d origem a um segmento do conse quente os valores das propriedades mant m se mas o mesmo j n o acontece nos casos de contrac o e descontrac o de segmentos Come ando por definir uma estrat gia base para as regras de contrac o observe se esta regra surface S1 lemma sexta NUM N1 LOW W1 surface S2 lemma feira HIG I2 SS surface S1 S2 lemma sexta feira CAT nou SCT com GEN f NUM N1 LOW W1 HIG I2 Os valores que estas propriedades vao ter no consequente sao calculados tendo como base as seguin tes regras e a propriedade LOW fica com o valor da propriedade LOW do primeiro segmento a emparelhar com a contrac o e a propriedade HIG fica com o valor da propriedade HIG do ltimo segmento a emparelhar com a contrac o Para as regras de descontrac o a estrat gia diferente Observe se a seguinte regra surface nos CAT pre LOW W1 HIG I1 36 gt surface em lemma em CAT pre
63. ez lemma por lemma todas i gt surface surface de uma vez por todas Pela ordem em que as regras est o declaradas a segunda regra nunca vai poder ser aplicada inde pendentemente das frases de entrada porque a primeira regra aplicada primeiro e muda a segmenta o do texto Nestes casos o sistema gera um aviso para alertar o utilizador Note se que se as regras forem declaradas pela ordem inversa ambas as regras podem ser aplicadas 4 9 Optimiza es Na an lise do comportamento do algoritmo de aplica o de regras com a nova Agenda apresentado em 4 7 constata se que o algoritmo pode ser melhorado uma vez que realiza alguns passos redundantes Em 4 9 1 apresentam se duas optimiza es que reduzem o n mero de itera es do algoritmo J em 4 9 2 apresentado um problema presente nos ndices de regras contidos no Analisador e em seguida proposta uma solu o 4 9 1 Optimizagoes ao algoritmo de aplica o de regras As optimiza es realizadas ao algoritmo s o as seguintes e em alguns casos especiais n o esperar pelo final da frase para poder aplicar uma regra mesmo que existam outras mais priorit rias e quando aplicada uma regra n o voltar a processar a frase desde in cio mas sim desde o ponto em que realmente necess rio come ar a processar A primeira optimiza o conseguida atrav s da ordena o das Arules A ordem das regras no ficheiro o primeiro f
64. ficar a rvore de chunks As regras de depend ncia servem para modificar as depend ncias entre os n s da estrutura hier rquica As regras para modificar a rvore de chunks servem para modificar a estrutura hier rquica dos n s depois desta ser aumentada pelas regras de chunking As regras de depend ncia e as regras para 10 Figura 2 4 Representa o dos segmentos da frase A Vanessa r pida no sistema XIP Figura 2 5 Hierarquia resultante da aplica o de uma regra de sequ ncia modificar a rvore de chunks n o s o abordadas em detalhe porque saem fora do mbito deste trabalho dado que a estrutura dos dados de entrada no RuDriCo n o hier rquica 2 3 2 Regras de desambigua o No sistema XIP a sintaxe das regras a seguinte camada gt antecedente contexto esquerda consequente contexto direita As regras est o organizadas por camadas sendo que cada camada representada por um n mero e constitu da por zero ou mais regras As regras s o aplicadas de acordo com as camadas a que pertencem come ando por serem aplicadas as regras da camada com o menor n mero As regras que n o t m camada s o colocadas na camada de maior prioridade a camada n mero zero O antecedente um n e representa se por uma ou mais categorias separadas por v rgulas Exemplo noun verb Este antecedente emparelha quando h um segmento que tenha duas anota es uma anota o com categoria verbo e outra
65. formado numa inst ncia da classe Aruleltem Uma classe Aruleltem tem o m todo Add e este que verifica efectivamente se um segmento emparelha com o respectivo item comparando a forma superficial e todas as outras propriedades 3 2 Classes de processamento Em seguida apresentam se as classes de processamento O processamento do RuDriCo est ent o dividido em 3 classes Rudrico Analisador e Agenda A primeira descrita na sec o 3 2 1 a classe que processa o comando de entrada quando o RuDriCo invocado A segunda descrita em 3 2 2 a classe respons vel pela entrada e sa da de dados e pelo controlo da aplicag o das regras Esta classe l as regras e frases e converte as para a estrutura interna correspondente Note se que a classe Analisador tamb m respons vel por fazer o pr processamento das regras A terceira a classe Agenda descrita em 3 2 3 cont m a l gica de emparelhamento de regras com segmentos 3 2 1 Classe Rudrico As principais funcionalidades da classe Rudrico s o ler o comando de entrada e controlar as tarefas a realizar No comando de entrada passa se o comando a executar e os seus argumentos por exemplo a localiza o do ficheiro de regras e a localiza o do ficheiro de entrada Consoante a informa o passada no comando o sistema vai ter um de dois comportamentos e pr processar as regras para o formato optimizado e aplicar as regras ao texto de entrada Independentemente da funcion
66. gmentos am e a 2 3 XIP O sistema XIP tem um conjunto de funcionalidades mais extenso que o RuDriCo Na sec o 2 3 1 s o apresentadas as funcionalidades do sistema A nica funcionalidade que o XIP tem em comum com o RuDriCo a desambigua o Em 2 3 2 s o apresentadas as regras que a permitem realizar 2 3 1 XIP A representa o dos dados de entrada no sistema XIP diferente do sistema RuDriCo No RuDriCo os dados de entrada s o representados por uma estrutura sequencial de segmentos No sistema XIP os dados de entrada s o um conjunto de n s representados numa estrutura hier rquica como mostra a figura 2 4 Os n s folha representam os segmentos do texto enquanto os n s interm dios cont m propriedades sobre os n s folha No XIP existem regras de desambigua o mas n o existem regras de contrac o nem de descon trac o existe sim um outro tipo de regras que s o as regras de chunking Este tipo de regras constitu do por dois subtipos regras de sequ ncia e regras ID LP As regras de sequ ncia adicionam n s hierarquia por exemplo uma regra que diz que um determinante seguido de um nome constituem um sintagma nominal Quando se aplica a regra rvore da figura 2 4 o resultado a rvore da figura 2 5 A diferen a das regras ID LP para as de sequ ncia que nas regras ID LP a ordem dos n s ignorada O XIP tem mais dois tipos de regras regras de depend ncia e regras para modi
67. goria representa que se pode ter um n com uma categoria qualquer ou n o ter nenhum a emparelhar com o operador Existe tamb m um operador que permite que se mude a forma superficial ou o lema o operador Existe tamb m o conceito de vari vel em que uma vari vel fica associada a um n Esta declarada nas regras quando um n precedido por n mero sendo que o n mero tem de ser maior ou igual a um As vari veis servem para testar os valores das propriedades dos n s Por exemplo a regra noun verb noun 1 verb noun associa a vari vel 1 ao n que emparelhar com o contexto esquerda S o descritos na tabela 2 3 um conjunto de operadores a ter em conta quando se usam vari veis No entanto h um operador que n o est descrito na tabela o Where Este operador usa se no fim das regras e funciona como mais um teste para a regra ser aceite Segue se um exemplo explicativo da utiliza o deste operador n nol n62 1 Where 1 propriedade valor Neste caso o operador testa o valor de uma propriedade do n n 2 Se existir mais do que uma vari vel podem se comparar valores das propriedades de vari veis diferentes Para testar um valor de uma propriedade de um n existe o conjunto de operadores descritos na tabela 2 4 Refira se que existem mais operadores deste tipo mas foram omitidos porque saem do mbito desta tese Existe tamb m mais um operador que n o est presente na tabela o
68. gra da lista pode ser aplicada frase os segmentos que faltavam processar s o ignorados e a regra aplicada Depois do Analisador aplicar a regra frase original processa a nova frase como se pode verificar na figura 3 8 onde est representado este passo Aqui a regra que junta os segmentos Coreia do Sul aplicada assim que o segmento Sul adicionado Agenda Consequentemente a frase resultante processada novamente figura 3 9 Neste ltimo passo nenhuma regra foi encontrada todos os segmentos foram processados e o Analisador d por conclu do o processamento Para exemplificar os casos em que a Agenda tem Arules que podem ser aplicadas apenas no final da frase considere se a mesma frase Note se que o ficheiro de regras apresenta as seguintes regras SI L1 CAT C1 S2 poder CAT C2 23 Analisador i De Add Head Add Coreia Agenda AruleList AruleList AruleList AruleList Coreia do do Sul gt Sul gt Coreia do Sul Coreia do Ed de o gt do Coreia Figura 3 7 Primeiro passo do processamento da frase A Coreia de o Sul Analisador Add Head Add Coreia Add Sul Agenda AruleList AruleList AruleList AruleList AruleList Coreia Coreia Coreia do do do Sul gt Sul gt Sul gt Coreia do Sul
69. grafia Brill 1992 Brill E 1992 A simple rule based part of speech tagger In Proceedings of the third confe rence on Applied natural language processing pp 152 155 Association for Computational Linguistics Morristown NJ USA Church 1988 Church K W 1988 A Stochastic Parts Program and noun Phrase Parser for Unrestric ted Text In Second Conference on Applied Natural Language Processing pp 136 143 Austin Texas Cole et al 1995 Cole R A Mariani J Uszkoreit H Zaenen A and Zue V 1995 Survey of the State of the Art in Human Language Technology Center for Spoken Language Understanding CSLU Carnegie Mellon University Pittsburgh PA Cutting et al 1992 Cutting D Kupiec J Pedersen J and Sibun P 1992 A Practial Part of Speech Tagger In Proceedings of the 3rd ACL Conference on Applied Natural Language Processing pp 133 140 Trento Italy Garside et al 1997 Garside R Leech G N and McEnery T 1997 Corpus Annotation Linguistic Information from Computer Text Corpora Longman Greene and Rubin 1962 Greene B B and Rubin G M 1962 Automatic Grammatical Tagging of English Technical Report Brown University Providence RI Hag ge et al 1998 Hag ge C Meireles A Diogo C Leite F Bar o N and Cotovio P 1998 Actas do XIV Encontro Nacional da Associa o Portuguesa de Lingu stica In Desambiguador de Etiquetagem Dirigido por Regras Linguisti
70. he atribui as categorias de verbo e nome Em seguida o RuDriCo utiliza um conjunto de regras declarativas para escolher a anota o correcta tendo em conta o contexto em que a palavra ocorre Assim sendo na frase Vou comer uma cenoura o desambiguador morfossint ctico deve ter uma regra que opte pela anota o de verbo para a palavra comer em detrimento da anota o nome A ferramenta de desambiguac o morfossint ctica deste modo importante na cadeia de Processa mento de L ngua Natural pois se n o tiver sucesso ao desambiguar as palavras o analisador sint ctico XIP ficar bastante mais sobrecarregado Hag ge et al 1998 Nesta tese ap s o estudo de ferramentas de desambigua o morfossint ctica e ap s a an lise do RuDriCo original s o descritas todas as altera es que possibilitaram a transforma o do RuDriCo no RuDriCo2 Por ltimo realizada uma avalia o do sistema RuDriCo2 na sua compara o com o sistema RuDriCo 1 1 Objectivos do Trabalho Este trabalho tem como ponto de partida o sistema de desambigua o RuDriCo Pardal 2007 Este um sistema que al m de desambiguar tamb m altera a segmenta o do texto no entanto apresenta ainda os seguintes problemas e baixo desempenho e regras pouco expressivas e limite no tamanho do ficheiro de entrada e sequ ncias de regras que podem gerar ciclos infinitos O trabalho aqui apresentado visa solucionar alguns dos problema
71. ia de o Sul na nova Agenda Segundo passo do processamento da frase A Coreia de o Sul na nova Agenda Primeiro passo do processamento da frase A Coreia de o Sul com nova ordena o de FEDTAS qro Eua QUIS ea Sw DE ek ee b nl O Der ehh ag d mu al de dinda Primeiro passo do processamento da frase A Coreia de o Sul com as duas optimiza es iii 4 15 Segundo passo do processamento da frase A Coreia de o Sul com as duas optimiza es 47 iv Lista de Tabelas 1 1 2 1 2 2 2 3 2 4 2 5 4 1 4 2 4 3 4 4 5 1 5 2 5 3 5 4 5 5 5 6 5 7 5 8 5 9 5 10 5 11 5 12 5 13 5 14 5 15 5 16 5 17 5 18 5 19 5 20 5 21 5 22 5 23 M dia do tempo de CPU gasto por palavra na cadeia de processamento de texto do L F Operadores do sistema RuDriCo para os itens do antecedente Operadores do sistema RuDriCo para os itens do consequente ooo a Operadores do sistema XIP para as vari veis ooa a ee Operadores do sistema XIP para as propriedades o oo a Funcionalidades dos sistemas RuDriCo e XIP 0 0 0 0 0 0 00 0 0 000000 Correspond ncia entre camadas nooo a a Correspond ncia entre tipos de regras e s mbolos que separam o antecedente do consequente Correspond ncia entre tipos de regras e directivas o oo a N mero de regras associadas a cada forma superficial a a Ficheiros para testar o sistema RuDriCo oaoa aaa e Avalia o do
72. icou ChangedSegments utilizando o m todo ConstructNewSentence A frase resultante substitui a frase original e processada para verificar se h alguma regra que se aplique Se existir este processo repetido passo 8 No caso de n o existir nenhuma regra que se aplique frase d se por conclu do o processamento dessa frase e a mesma escrita na sa da passo 15 3 2 3 Classe Agenda A classe Agenda tem como tarefa principal a aplica o de regras a segmentos Esta classe tem acesso s RRules e aos respectivos ndices do Analisador e com base nestes tenta emparelhar os segmentos com as regras Assim que alguma regra possa ser aplicada a classe Agenda avisa o Analisador e a mesma reinicializada Os principais constituintes desta classe s o uma lista de segmentos e uma lista de Arules AruleList A lista de segmentos inclui os segmentos que emparelham com as regras e a AruleList cont m as regras parcialmente emparelhadas at ao momento as Arules O m todo Add o m todo principal da classe Agenda e este que recebe os segmentos que o Analisador processa Dependendo dos segmentos que este recebe o m todo Add identifica se h alguma regra que emparelhe com um subconjunto desses segmentos Este m todo tem o comportamento do algoritmo apresentado na figura 3 6 21 Method Analise Text T 1 FOR EACH sentence S in T DO 2 PreProcessedSentence S 3 PosProcessedSentence 4 I first segment of PreProcessedSe
73. in cio o segmento Head e o segmento adicionado no fim o segmento TAIL Estes segmentos podem ser testados no antecedente de uma regra e s o usados como itens por exemplo Head S1 L1 CAT pre este antecedente emparelha com os primeiros segmentos de cada frase se estes tiverem uma anotagao de preposi o O segmento TAIL usado da mesma forma mas testa se uma regra emparelha apenas no final da frase por exemplo Operador Descri o S1 S2 Concatena o sem espa o dos valores das duas vari veis S1 e S2 S1 04 S2 Concatena o com espa o dos valores das duas vari veis 51 e S2 4 sl Concatena o de com o valor da vari vel S1 seguido de _ S1 No caso de no antecedente a vari vel S1 emparelhar com mais que um segmento faz a concatena o sem espa os de todas as formas superficiais S10 No caso de no antecedente a vari vel S1 emparelhar com mais que um segmento faz a concatena o com espa os de todas as formas superficiais 1 No caso de no antecedente a vari vel S1 emparelhar com mais que um segmento a vari vel fica com o primeiro valor que obteve S1 No caso de no antecedente a vari vel S1 emparelhar com mais que um segmento a vari vel fica com o ltimo valor que obteve S1 Representa o valor do segmento que emparelhe com a vari vel S1 sem nenhuma mudan a ao segmento S1 L1
74. l porque a primeira candidata em todos os segmentos Para o RuDriCo2 manter o mesmo comportamento que o RuDriCo o algoritmo de aplica o de regras foi alterado e consequentemente o algoritmo de processamento de frases tamb m A principal diferen a entre o processamento do RuDriCo2 e do RuDriCoconsiste no facto de o RuDriCo2 processar frases em vez de processar segmentos individuais O algoritmo de processamento de frases apresentado na figura 4 3 foi alterado e est descrito na figura 4 9 O novo algoritmo de aplica o de regras apresentado na figura 4 10 Method Analise Sentence S LayerList layersList 1 FOR EACH layer L in layersList DO 2 Agenda layer L tells agenda to use rules from layer L 3 IF L 0 THEN 4 PreProcessedSentence 8 5 ELSE 6 PreProcessedSentence PosProcessedSentence 7 PosProcessedSentence 8 applied agenda PreProcessedSentence 9 WHILE applied 10 ConstructNewSentence PosProcessedSentence PreProcessedSentence ChangedSegments 11 PreProcessedSentence PosProcessedSentence 12 applied agenda PreProcessedSentence 13 ENDWHILE 14 ENDFOR 15 Write PosProcessedSentence Figura 4 9 Algoritmo de processamento de frases com a nova Agenda Method add Sentence S 1 FOR EACH Segment s in S DO 2 ForwardArules s 3 SearchNewRules s this method adds the new Arules to AruleList 4 Sort AruleList 5 IF Done First AruleList THEN 6 ApplyFirstRule AruleList 7
75. l em todos os itens Na sec o 4 3 s o introduzidos os contextos e introduzida tamb m uma nova representa o para os itens em que a forma 53 Altera o do processamento de entrada e sa da Mb Camadas Mb part08 1 xml lt 1 00 lt 1 00 part08 10 xml 9 80 lt 1 00 part08 100 xml 12 40 6 10 49 19 part08 500 xml 17 70 9 30 52 54 part08 1000 xml 19 60 13 80 70 41 part08 5000 xml 56 40 51 10 90 60 part08 10000 xml 102 20 97 00 94 91 part08 50000 xml 501 30 490 00 97 15 part08 100000 xml 1023 60 998 10 97 51 Tabela 5 10 Mem ria utilizada no processamento dos ficheiros de avaliac o superficial e o lema s o pares propriedade valor Com estas duas altera es a sintaxe fica mais compacta e o uso de vari veis reduzido Para medir o aumento de desempenho do sistema na fase de processamento de ficheiros s o analisados os tempos de processamento dos ficheiros de avalia o As regras foram convertidas de modo a utilizarem contextos e usufru rem da omiss o do lema e da forma superficial Os novos resultados juntamente com os resultados do estado do sistema na sec o anterior apresentam se na tabela 5 11 O tempo de processamento do ficheiro com uma frase 91 67 do tempo medido na sec o anterior O ganho de desempenho deste ficheiro menor que os restantes porque este ficheiro n o tem um n mero de frases suficientemente elevado para que as altera es se
76. lidades de cada classe assim como alguns dos seus atributos e s o tamb m apresentados os principais algoritmos do sistema o algoritmo de processamento de frases resultado e o algoritmo de emparelhamento de regras 3 1 Representa o interna das principais entidades O RuDriCo recebe como entrada um ficheiro em formato XML com texto a processar descrito na sec o 2 2 1 e um ficheiro com as regras O RuDriCo utiliza um zml dom parser para ler o ficheiro de entrada transformando cada frase do texto de entrada numa inst ncia da classe Sentence Utiliza se um parser implementado em lez e yacc para processar o ficheiro com as regras e este parser que transforma as regras em inst ncias da classe RRule Ap s a gera o das entidades o RuDriCo aplica as regras entrada e gera um ficheiro em formato XML com o resultado utilizando um xml dom parser A classe RRule usada para representar as regras de desambigua o e de recomposi o Na figura 3 1 onde se apresenta o diagrama de classes de uma RRule verifica se que cada RRule tem uma inst ncia da classe Antecedent e uma inst ncia da classe Consequent Cada um destes objectos cont m uma lista de inst ncias da classe RRuleltem que representa itens A classe RRuleltem constitu da por um atributo word que representa a forma superficial do item um conjunto de atributos boleanos que representam os operadores associados a cada item e uma lista de objectos da classe RRuleDesc A cl
77. m nos ficheiros na medida em que so se aplica uma regra quando esta a primeira da AruleList 25 Analisador Head A Coreia do Tail Sul Add Head Add Coreia do Sul Add Tail Agenda AruleList AruleList AruleList AruleList Figura 3 9 Terceiro passo do processamento da frase A Coreia do Sul Analisador m Add A Add Coreia Add de Add o Add Sul Add Tail Agenda 7 T 7 AruleList AruleList SLI D D 1 1 1 1 1 1 1 1 1 D 1 1 1 1 1 D 1 1 1 1 1 1 1 1 D 1 Figura 3 10 Primeiro passo do processamento da frase A Coreia do Sul com um novo conjunto de regras 26 Analisador AruleList AruleList AruleList AruleList AruleList SI SIL S1 Sa gt S2 gt S2 sr st St sal sal J S2 StL Figura 3 11 Segundo passo do processamento da frase A Coreia do Sul com um novo conjunto de regras 27 Capitulo 4 Altera es ao sistema RuDriCo A medida que as altera es s o implementadas a sintaxe do RuDriCo vai sendo modificada gradual mente transformando se na sintaxe do RuDriCo2 A primeira altera o a ser realizada ao sistema original a mudan a do processo usado para ler e escrever os ficheiros como se descreve na sec o 4 1 sendo que depois desta altera o introduzido o conceito de camada explicitado na sec o 4 2 Consequentemente s o introduzidos contextos e alterada a repres
78. madas e o ciclo para os segmentos da frase Esta complexidade adicional no algoritmo compensada em alguns casos porque o algoritmo de Agenda aumenta o desempenho quando processa um n mero mais pequeno de regras O tempo de processamento utilizado como refer ncia para a an lise do desempenho o tempo do sistema com todas as regras na mesma camada Analisando a tabela de resultados verifica se que a partir de 17 regras por camada o sistema aumenta o desempenho e o melhor resultado atingido quando as camadas t m 167 regras No caso do sistema ter 167 regras por camada o desempenho do sistema aumenta cerca de 2 5 vezes Ap s realizado o estudo do n mero de camadas o sistema analisado nas duas fases de processamento pr processamento das regras e processamento de ficheiros Na tabela 5 8 apresentam se os resultados do tempo de gera o do ficheiro optimizado e a pode se verificar que as camadas aumentaram este tempo em cerca de 8 2 do tempo original Dado que as regras s s o pr processadas quando se acrescentam regras e o tempo do pr processamento de regras pequeno a perda de desempenho nesta fase do processamento insignificante Sem camadas Com camadas Tempo s 0 49 0 53 Tabela 5 8 Tempo de gera o do ficheiro optimizado Na tabela 5 9 realiza se uma nova avalia o do sistema com camadas onde cada camada corresponde s regras de um ficheiro
79. menta o adaptando a s necessidades dos m dulos seguintes O RuDriCo usa um conjunto de regras declarativas de transforma o para realizar a desambigua o de pa lavras e a altera o da segmenta o Note se que essas regras se baseiam no conceito de emparelhamento de padr es O Marv por sua vez uma ferramenta de desambigua o probabil stica que faz a desambigua o morfossint ctica estat stica pelo que esta ferramenta que soluciona os problemas de ambiguidade dei xados pelos m dulos anteriores O Marv baseia se em modelos de Markov e usa o algoritmo de Viterbi Viterbi 1967 para encontrar a anota o mais prov vel para cada palavra A probabilidade de uma anota o existir num determinado contexto estimada usando um corpus de treino O ltimo m dulo da cadeia de processamento o XIP um analisador sint ctico que com o aux lio Segmentador Palavroso Figura 1 1 Cadeia de Processamento de L ngua Natural do L F de gram ticas obt m a estrutura gramatical do texto de entrada Este analisador tem um m dulo que permite fazer desambigua o por regras e tratar de algumas ambiguidades que n o s o tratadas nem pelo RuDriCo nem pelo Marv O presente trabalho centra se em apenas um dos m dulos da cadeia de PLN do L F acima descritos a ferramenta de desambigua o morfossint ctica RuDriCo Tomando como exemplo a palavra amb gua comer verifica se que o analisador morfol gico Palavroso l
80. ml n o processa 97 21 part08 100000 xml n o processa 201 00 Tabela 5 4 Tempo de leitura e escrita em segundos tornou se aproximadamente 2 9 vezes mais r pido Dado que o desempenho da escrita e leitura de fichei ros aumentou o tempo de processamento dos ficheiros de avalia o diminuiu como se pode observar na tabela 5 5 No primeiro ficheiro o tempo de processamento n o diminuiu porque o ficheiro tem uma nica Original s Altera o do processamento de entrada e sa da s part08 1 xml 0 16 0 16 100 part08 10 xml 1 96 1 82 92 72 part08 100 xml 8 33 7 74 92 20 part08 500 xml 38 00 35 99 94 70 part08 1000 xml 78 00 74 00 94 87 part08 5000 xml 392 00 368 36 94 07 part08 10000 xml 782 75 728 75 93 10 part08 50000 xml n o processa 3667 73 part08 100000 xml n o processa 7188 05 Tabela 5 5 Tempo de processamento dos ficheiros de avalia o frase e o processamento de uma frase n o suficiente para se notar os ganhos desta altera o Os restantes ficheiros reduziram o tempo uniformemente em m dia para 93 71 do tempo do RuDriCo original Consequentemente a mem ria utilizada no processamento de ficheiros tamb m reduzida como mostra a tabela 5 6 Assim verifica se que a redu o da mem ria ocupada n o constante em todos os ficheiros sendo esta proporcional ao tamanho do ficheiro por exemplo no processamento do ficheiro de 50
81. mplificado da classe Aruleltem 20 0 0 000000004 Algoritmo de processamento de frases ee Algoritmo de aplica o de regras a segmentos en Primeiro passo do processamento da frase A Coreia de o Sul Segundo passo do processamento da frase A Coreia do Su Terceiro passo do processamento da frase A Coreia do Sul iss Primeiro passo do processamento da frase A Coreia do Sul com um novo conjunto de EePTAS ss Aen a OD bqtewth org died ode Muito edi Pod Doe Sh e Qul so grado di th bance o Segundo passo do processamento da frase A Coreia do Sul com um novo conjunto de TORT OS eere den Laus id gh hah he patie ADD Sy Ge Cru ir ag s tdeo AR O A wy Aa cs Algoritmo de processamento de frases resultados alterado 204 Exemplo de camadas em ficheiros de entrada 0 les Algoritmo de processamento de frases com camadas les Diagrama da entidade RRule 2 2 ee ee Diagrama da entidade Arule 2 Segmento da forma superficial Posteriormente Segmento da forma superficial Posteriormente cs Primeiro passo do processamento da frase A Coreia de o Sul sem os segmentos Head e Algoritmo de processamento de frases com a nova Agenda ls Algoritmo de aplica o de regras da nova Agenda 000002 eee Primeiro passo do processamento da frase A Core
82. nho Mb part08 1 xml 0 16 1 00 part08 10 xml 1 96 10 60 part08 100 xml 8 33 34 90 part08 500 xml 38 00 143 00 part08 1000 xml 78 00 275 00 part08 5000 xml 392 00 1234 00 part08 10000 xml 782 75 2560 part08 50000 xml n o processa part08 100000 xml n o processa Tabela 5 2 Avalia o do desempenho do sistema RuDriCo Observe se que devido ao m todo de leitura e escrita do sistema o sistema torna se incapaz de processar os dois maiores ficheiros 5 1 2 Altera o da metodologia usada para leitura e escrita de ficheiros No RuDriCo a entrada e a sa da s o processadas com um gml dom parser O RuDriCo2 processa o ficheiro de entrada com um xml sax parser e processa a sa da manualmente Para avaliar esta altera o ao sistema testa se o processamento dos nove ficheiros num ambiente de avalia o especial no qual o sistema n o aplica qualquer regra ou seja testa se apenas a leitura e a escrita dos ficheiros Depois deste teste realizada a avalia o do sistema como foi descrita na sec o anterior A tabela 5 3 cont m os resultados da mem ria utilizada na leitura e escrita dos ficheiros sendo poss vel verificar que com esta altera o j poss vel processar todos os ficheiros de avalia o Note se que a mem ria utilizada pelo RuDriCo depois da nova altera o foi reduzida A redu o n o constante de ficheiro para ficheiro mas analisando a mem ria ocupada do ficheiro part08 5000 xml esta
83. ntados por sequ ncias de n s Para o con sequente de uma regra ser aplicado o contexto esquerda tem de emparelhar antes do antecedente e o contexto direita tem de emparelhar depois do antecedente Nos contextos os n s s o representados por uma categoria e pelas propriedades Existem dois operadores que permitem representar v rios n s nos contextos das regras o operador representa a conjun o de n s e o operador representa a disjun o de n s O consequente representado por um n tal como o antecedente Se o antecedente e os contextos emparelharem o segmento que emparelhar no antecedente mant m as propriedades representadas no consequente e descarta as restantes Exemplo noun verb noun verb noun Neste caso a regra indica que se houver um segmento que foi classificado morfologicamente como nome e verbo que tenha um segmento classificado como nome antes e outro depois a anota o de categoria nome descartada Como a anota o de categoria nome descartada o segmento deixa de ser amb guo porque fica apenas com a categoria verbo Existem dois operadores que s o usados na constru o de regras e O operador significa zero ou mais o operador significa zero ou um Estes dois operadores usam se nas regras como n s com excep o do operador que adicionalmente pode ser usado como propriedade de um n Por exemplo se o operador for usado como cate
84. ntence 5 WHILE I is a segment 6 applied agenda I 7 IF applied THEN 8 ConstructNewSentence PosProcessedSentence PreProcessedSentence ChangedSegments 9 PreProcessedSentence PosProcessedSentence 10 I first segment of PreProcessedSentence 11 ELSE 12 Add PosProcessedSentence I 13 I next segment of PreProcessedSentence 14 ENDWHILE 15 Write PosProcessedSentence 16 ENDFOR Figura 3 5 Algoritmo de processamento de frases Method add Segment S 1 ForwardArules S 2 SearchNewRules S this method adds new Arules to AruleList 3 Sort AruleList 4 IF Done First AruleList THEN 5 ApplyFirstRule AruleList 6 Erase AruleList 7 Return true 8 ELSE 9 Return false Figura 3 6 Algoritmo de aplica o de regras a segmentos O m todo ForwardArules realiza duas tarefas i adiciona o segmento S a todas as Arules na AruleList e ii retira da AruleList todas as Arules que n o podem ser aumentadas com o segmento O m todo SearchNewRules procura regras que emparelham com o segmento S consulta todos os ndices apresentados na sec o anterior 3 2 2 e escolhe as regras que s o candidatas a emparelhar com esse segmento O m todo cria uma Arule para cada uma das regras seleccionadas e tenta adicionar o segmento S a estas Arules As Arules que n o podem ser aumentadas com o segmento s o descartadas e as restantes s o adicionadas AruleList O m todo Sort ordena a AruleList de modo a que
85. ntre nl e n2 segmentos que emparelhem com o item L J Representa que o segmento deve emparelhar com ambas as anota es Representa que todas as anota es do segmento devem emparelhar com o item Representa que o segmento s pode ter uma anota o igual do item Tabela 2 1 Operadores do sistema RuDriCo para os itens do antecedente A forma superficial o lema e os valores das propriedades podem ser substitu dos por vari veis sendo que o nome da vari vel tem de ter a primeira letra capitalizada Tal faz com que uma regra n o seja espec fica para uma determinada forma superficial lema ou valor de uma propriedade Considere se o item seguinte S1 L1 CAT pre As vari veis S1 e L1 permitem que qualquer segmento emparelhe com este item desde que a sua categoria seja preposi o O valor de uma vari vel no consequente o valor da propriedade que emparelhou com o respectivo item Se no antecedente uma vari vel emparelhar com mais do que um valor o que pode acontecer com o aux lio de alguns dos operadores apresentados na tabela 2 1 a vari vel guarda todos os valores Na tabela 2 2 descrevem se os operadores que se podem usar no consequente Nesta tabela a utiliza o de na descri o dos operadores significa que um bloco reescrito no consequente O RuDriCo adiciona um segmento no in cio e um segmento no fim de cada frase antes de a processar O segmento adicionado no
86. o o benef cio est em n o processar um segmento mas considerando que a frase era por exemplo O Alberto e o Jo o v o para a Coreia de o Sul verifica se que neste caso seria ben fico n o processar oito segmentos 46 Analisador Add A Coreia de o Sul Agenda E Segment o Segment Sul A ndice 3 ndice 4 AruleList AruleList A Segment Coreia Segment de pplyFirsReduced ndice 1 ndice 2 AruleList AruleList Segment A Indice 0 AruleList ruleList I l lem lem lem lem lem lem II I l lem lem lem lem 4 surf surf 7 surf 2 IP Valor de Valor de Valor de recome o 0 1 recome o O recome o 1 Valor de Valor de recome o 2 recome o 2 Figura 4 14 Primeiro passo do processamento da frase A Coreia de o Sul com as duas optimiza es Analisador Add A Coreia do Sul Agenda Segment Sul ApplyFirsReduced ndice 3 AruleList AruleList Segment Coreia Segment do Indice 1 Indice 2 AruleList AruleList Segment A Indice O AruleList I I lem lem I I lem lem lem lem 3 vt lem J lem Valor de Valor de Valor de recome o 0 1 recome o 1 recome o 1 lem fem Valor de Valor de recome o 2 recome o 3 Figura 4 1
87. o calcula se usando a seguinte estrat gia e se a forma superficial do segmento do consequente for constru da com base em vari veis usa se a capitaliza o das formas superficiais emparelhadas e se a forma superficial do segmento do consequente for uma constante a forma superficial do seg mento resultante fica com a capitaliza o do primeiro segmento que emparelha com o antecedente Para as regras de desambigua o como a segmenta o n o alterada os segmentos resultantes mant m a capitaliza o dos segmentos que emparelham com o antecedente Se o utilizador desejar um comportamento diferente deste pode usar a propriedade UPC com o valor true nos segmentos do consequente para que estes fiquem com a forma superficial capitalizada Pode se usar tamb m a propriedade UPC com o valor false para garantir que os segmentos n o ficam capitalizados Existe uma alternativa ao c lculo autom tico da capitaliza o das formas superficiais de modo a que o utilizador tenha mais liberdade sobre a capitaliza o a propriedade CSE Se a propriedade CSE com o valor true for usada no consequente a forma superficial passa a ser Case Sensitive ou seja a capitaliza o da forma superficial final vai ser a capitaliza o da forma superficial que est na regra Nas regras do RuDriCo2 por omiss o os testes aos lemas s o Case Insensitive mas nos itens do consequente o lema Case Sensitive a capitaliza o usada
88. ocessing of the Portuguese Language 6th International Workshop PROPOR 2003 Faro Portugal June 26 27 2003 vol 2721 chapter Using Morphossyntactic Information in TTS Systems Comparing Strategies for European Portuguese Springer Schmid 1994a Schmid H 1994a Part of Speech Tagging with Neural Networks In Proceedings of the 15th International Conference on Computational Linguistics Kyoto Japao Schmid 1994b Schmid H 1994b Probabilistic Part of Speech Tagging using Decision Trees In Proceedings of the 15th International Conference on new methods in language processing Manchester Reino Unido Schulze et al 1994 Schulze B M Heid U Schmid H Schiller A Rooth M Grefenstette G Gaschler J Zaenen A and Teufel S 1994 DECIDE MLAP Project 93 19 D 1b I STR and RXRC Stolz et al 1965 Stolz W S Tannembaum P H and Carstensen F V 1965 Stochastic Aproach to the grammatical Coding of English In Communications Of the ACM 8 6 pp 399 405 Viterbi 1967 Viterbi A J 1967 Error bounds for convolutional codes and an asymptotically optimal decoding algorithm In IEEE Transactions on Information Theory 260 269 Voutilainen 1995a Voutilainen A 1995a A systax based par of speech analyser In Proceedings of 7th Conference of the European Chapter of The Association for Computational Linguistics Dublin Voutilainen 1995b Voutilainen A 1995b Constraint Grammar a Languag
89. olha das regras candidatas a emparelhar com um segmento A aloca o de regras aos ndices realizada de acordo com o primeiro item de cada regra e tem como base as propriedades seguintes e a forma superficial e o lema s o constantes e a forma superficial constante e o lema vari vel e a forma superficial vari vel e o lema constante e a forma superficial e o lema s o vari veis Consoante a propriedade do primeiro item de cada regra a regra alocada no respectivo ndice de regras que partilham essa mesma propriedade A aplica o das regras ao texto de entrada implementada no m todo Analise realizada depois da leitura e da indexa o das regras Este m todo gere os segmentos que constituem as frases e recorre classe Agenda para a aplica o de regras aos respectivos segmentos Adicionalmente o m todo tamb m escreve as frases resultantes na sa da do sistema O m todo Analise executa o algoritmo apresentado na figura 3 5 Observe se que o processamento feito frase a frase sendo que em cada frase o processamento feito de segmento a segmento passo 4 dado que a Agenda processa um segmento de cada vez e aplica as regras a conjuntos de segmentos Quando o algoritmo est a processar uma frase PreProcessedSentence e descobre que a Agenda aplicou uma regra a um conjunto de segmentos da frase este gera a frase resultante PosProcSentence com base na PreProcessedSentence e nos segmentos que a Agenda modif
90. onsiderada errada e reportado um erro sintaxe do ficheiro que cont m as propriedades e os valores a seguinte propriedadel valor1 valor2 valor3 propriedade valor 4 valor 5 valor 6 propriedadeX valor x Quando esta altera o foi adicionada ao sistema verificou se que 12 das 3096 regras tinham erros 4 8 2 Verifica o de vari veis No RuDriCo quando h vari veis no consequente e estas n o t m o respectivo par no antecedente o valor destas uma string vazia No RuDriCo2 quando n o existe o par de uma vari vel no antecedente 44 a regra considerada inv lida Quando foi adicionada esta verifica o detectaram se 13 regras com erros nas 3096 regras utilizadas para teste No RuDriCo2 quando h vari veis no antecedente usadas uma nica vez e estas n o t m o respec tivo par no consequente gerado um warning que alerta o utilizador para a exist ncia de vari veis desnecess rias 4 8 3 Regras de contrac o No RuDriCo e consequentemente no RuDriCo2 se duas regras forem da mesma camada a regra que tem mais prioridade a que aparece primeiro no ficheiro de regras Nas regras de contrac o existem regras que podem nunca ser aplicadas dado que t m menos prioridade do que outras Considerem se as seguintes regras de contrac o Join lemma de lemma uma lemma vez i gt surface 00 surface de uma vez lemma de lemma uma lemma v
91. or Propriedades autom ticas s RuDriCo2 s part08 1 xml 0 11 0 09 81 82 part08 10 xml 0 38 0 23 60 05 part08 100 xml 1 68 0 89 53 12 part08 500 xml 7 58 3 91 51 50 part08 1000 xml 15 03 7 78 51 76 part08 5000 xml 75 40 38 90 51 59 part08 10000 xml 150 64 78 70 52 24 part08 50000 xml 769 03 397 46 51 68 part08 100000 xml 1530 56 800 86 52 32 Tabela 5 17 Tempo de processamento dos ficheiros de avalia o Observando os ficheiros com 100 ou mais frases verifica se que o sistema ficou cerca de 2 vezes mais r pido do que na sec o anterior Observando a tabela 5 18 esta que cont m a avalia o inicial e a avalia o final do sistema conclui se que ap s todas as altera es e optimiza es realizadas ao sistema o sistema RuDriCo2 excluindo o ficheiro s com uma frase passou em m dia a processar os ficheiros de avalia o em 10 42 do tempo inicial Para o ficheiro de uma s frase n o h um aumento de desempenho id ntico aos restantes porque o tempo de inicializar o sistema maior do que o tempo de processamento da frase 56 Original s RuDriCo2 s 96 part08 1 xml 0 16 0 09 56 25 part08 10 xml 1 96 0 23 11 56 part08 100 xml 8 33 0 89 10 73 part08 500 xml 38 00 3 91 10 28 part08 1000 xml 18 00 7 78 9 97 part08 5000 xml 392 00 38 90 9 92 part08 10000 xml 782 75 78 70 10 05 part08 50000 xml nao processa 397 4
92. oria nome e na segunda a categoria verbo no modo infinitivo CAT ver MOD inf seguido de um segmento anotado de verbo no modo infinitivo Quando o antecedente satisfeito a forma superficial poder desambiguada Note se que usado o operador no consequente para retirar uma das anota es da forma superficial com o lema poder Esta regra emparelha por exemplo com a frase Para poder andar 2 2 3 Regras de Recomposi o As regras de recomposi o dividem se em dois subtipos regras de contrac o e regras de descon trac o O RuDriCo tem a mesma sintaxe para todos os tipos de regras portanto a sintaxe destas regras igual sintaxe das regras de desambigua o apresentada na sec o 2 2 2 Os operadores usados nas regras tamb m s o comuns em todos os tipos de regras no RuDriCo Como exemplo apresenta se uma regra de contrac o coreia L1 CAT C1 do L2 CAT C2 sul L3 CAT C3 gt Coreia do Sul Coreia do Sul CAT nou GEN F NUM s e uma regra de descontracgao na L1 CAT pre em em CAT pre a o CAT art SCT def NUM s GEN f Estas regras realizam as transforma es representadas na figura 2 3 A primeira regra faz a contrac o 6 de Coreia do Sul num s segmento e a segunda faz a descontrac o do segmento na nos se
93. ortanto n o claro que o sistema altere o desempenho A avalia o do sistema apresenta se na tabela 5 14 onde se pode verificar que esta altera o n o teve um impacto significativo no sistema o que leva conclus o que esta altera o reduz o trabalho do utilizador ao escrever as regras sem prejudicar o desempenho do sistema Altera o da sintaxe s Propriedades autom ticas s part08 1 xml 0 11 0 11 100 part08 10 xml 0 40 0 38 94 50 part08 100 xml 1 69 1 68 99 59 part08 500 xml 7 83 7 58 96 83 part08 1000 xml 15 29 15 03 98 30 part08 5000 xml 76 8 75 40 98 18 part08 10000 xml 154 12 150 64 97 74 part08 50000 xml 791 00 769 03 97 22 part08 100000 xml 1611 66 1530 56 94 97 Tabela 5 14 Tempo de processamento dos ficheiros de avalia o Com esta altera o as regras reduzem o tamanho e esperado que a mem ria ocupada no proces samento tamb m seja reduzida Na tabela 5 15 apresentam se os novos valores de mem ria ocupada sendo poss vel concluir que esta altera o se reflectiu na mem ria ocupada embora o ganho n o seja significativo Por exemplo para o ficheiro de 1000 frases a mem ria ocupada passa a ser 95 42 da mem ria ocupada pelo sistema avaliado na altera o anterior Nota se que no ficheiro de 100 frases n o h redu o da mem ria ocupada porque o ficheiro n o tem tamanho suficiente para esta altera o se reflectir 55
94. ossint ctica e a an lise sint ctica no entanto aqui ser ignorado o m dulo de an lise sint ctica pois esse n o cabe no mbito deste trabalho Na sec o 2 1 s o descritos os v rios m todos de desambigua o morfossint ctica sendo que ana lisado em maior detalhe o m todo baseado em regras pois aquele que est a ser usado pelo RuDriCo Na sec o 2 2 feita uma descri o do sistema RuDriCo e s o apresentadas as suas funcionalidades J na sec o 2 3 descrevem se as funcionalidades do sistema XIP Em ltimo lugar na sec o 2 4 feita uma compara o entre os dois sistemas 2 1 Desambigua o Morfossint ctica Na cadeia de PLN do L F co existem dois desambiguadores morfossint cticos o RuDriCo e o Marv Ribeiro et al 2003 e ainda assim s o resolvidas algumas ambiguidades no XIP Os desambiguado res morfossint cticos podem ser classificados consoante a metodologia usada para resolver o problema Cole et al 1995 dividem estes sistemas em dois tipos e desambiguadores baseados em regras e desambiguadores probabil sticos estoc sticos H ainda autores que classificam estes sistemas em outros tipos como por exemplo Schmid 1994b Schmid 1994a e Schulze et al 1994 que classificam estes sistemas em mais um tipo distinto de sambiguadores baseados em redes neuronais Contudo neste trabalho v o ser consideradas apenas as classifica es de Cole et al 1995 Os sistema
95. perficial n o s o conhecidos porque n o t m um dom nio limitado As restantes propriedades t m um dom nio de valores limitado por exemplo o g nero de uma palavra tem dois valores poss veis masculino ou feminino Os nomes das propriedades e dos valores que tenham um dom nio limitado podem ser verificados na leitura das regras Como esta verifica o n o feita no RuDriCo original pode haver erros nas regras que dificilmente s o detectados Considere se a seguinte regra disamb CAT prp lemma poder CAT nou lemma poder CAT ver MOD inf CAT ver MOD inf lemma poder CAT nou Imagine se que dado um erro numa letra de um dos valores das propriedades por exemplo na propri edade CAT do item no contexto esquerda em vez de estar o valor prp que representa preposi o est o valor pro O valor pro n o faz parte do dominio da propriedade CAT e o que acontece que esta regra fica no sistema mas nunca vai emparelhar com nenhum dos segmentos Identificar estes erros uma tarefa dif cil e para evitar este tipo de erros adicionado um passo leitura das regras que a verifica o das propriedades e dos valores Esta verifica o feita com base num ficheiro que cont m as propriedades que o sistema vai aceitar e os seus valores poss veis No caso de existir uma regra com um par propriedade valor que n o esteja presente no ficheiro a regra c
96. quanto s optimiza es realizadas ao algoritmo de aplica o de regras estas fazem com que o algoritmo reduza o n mero de passos que faz ao aplicar uma regra O novo ndice de regras por sua vez faz com que o sistema reduza o n mero de regras candidatas o que leva a um aumento de desempenho De acordo com os resultados apresentados no cap tulo 5 pode se afirmar que o RuDriCo2 cerca de 10 vezes mais r pido do que o RuDriCo A sintaxe do RuDriCo2 mais expressiva e mais compacta do que a sintaxe do RuDriCo e a introdu o dos novos operadores tamb m permite escrever regras que n o podem ser escritas no RuDriCo por exemplo para simular a nega o de uma categoria no RuDriCo necess rio usar tantas regras quanto as restantes categorias presentes no sistema Cada tipo de regras ficou com uma sintaxe diferente de modo a ser poss vel a exist ncia de operadores e verifica es espec ficas a cada tipo de regra Foram ainda adicionados dois operadores espec ficos s regras de contrac o de segmentos que permitem que estas regras fiquem mais compactas na medida em que n o necess rio escrever a forma superficial no consequente das regras quando esta a concatena o das formas superficiais dos itens que emparelham no 60 antecedente A introdu o de contextos juntamente com a altera o da representa o dos itens permite que as regras do RuDriCo2 sejam mais simples de escrever e mais compactas usando menos vari
97. ra guardar o contexto esquerda um campo para o contexto direita e um campo point para cada contexto O campo point identifica que segmentos do contexto est o satisfeitos na Arule O novo diagrama das Arules apresentado na figura 4 5 Para suportar esta nova funcionalidade as altera es mais relevantes foram realizadas no m todo ForwardRule e no m todo Add das Arules referidos na sec o 3 1 de modo a que os segmentos dos contextos sejam tratados como tal 4 4 Propriedades autom ticas No RuDriCo existe um conjunto de propriedades que s o comuns a todas as regras A propriedade que diz se uma forma superficial est capitalizada um exemplo disso mesmo Na sec o 4 4 1 a propriedade de capitaliza o apresentada e descrita uma solu o para que essa propriedade seja autom tica As restantes propriedades s o apresentadas em 4 4 2 4 4 1 Capitaliza o No RuDriCo a capitaliza o dos segmentos indicada por uma propriedade a propriedade UPC A propriedade UPC com o valor true representa o facto de uma palavra estar capitalizada Esta 33 MyWord _ root bool _rootlsVar 1 MyWord word E bool _wordlsVar bool _operator bool _unique bool _multiple Consequent Antecedent aan 7 String _value ES String attribute Figura 4 4 Diagrama da entidade RRule TmpSegments segments size t point size_t leftCtxPoint size_t _rightCtxPoint Figura 4 5 Diagr
98. resentem um n No que diz respeito aos operadores estes sao elementos que permitem dar expressividade s regras Em primeiro lugar refira se um dos operadores do XIP que n o est presente no RuDriCo o operador nega o Este operador pode ser usado para testar se uma propriedade n o tem um determinado valor ou se duas vari veis s o n s diferentes Como exemplo considere se a seguinte regra no sistema XIP art lt lemma o gen m gt pron lt lemma o gen m gt verb art noun lt gen m gt Nesta regra o operador nega o aplicado categoria verbo e significa que o contexto esquerda empare lha com qualquer categoria excepto verbo Para traduzir esta regra para o sistema RuDriCo necess rio recorrer a v rias regras nomeadamente uma regra por categoria excepto a categoria negada que verbo Segue se um excerto do grupo de regras que traduzem a regra do XIP S1 L1 CAT adv S2 o CAT art GEN m o CAT pro GEN m S3 L3 CAT nou GEN m 15 S1 S2 o CAT pro S3 1 L1 CAT agj S2 o CAT art GEN m o CAT pro GEN m 3 L3 CAT nou GEN m S1 S2 o CAT pro S3 1 L1 CAT nou S2 o CAT art GEN m o CAT pro GEN m 3 L3 CAT nou GEN m A S1 S2 o CAT pro S3 Como se pode comprovar com este exemplo a solu o no RuDriCo p
99. ropriedade LST CAT pre LST true 40 Este item emparelha com segmentos que sejam os ltimos de uma frase e que tenham uma anota o de preposi o Ao retirar o Head e o Tail das frases foi necess rio alterar o algoritmo de aplica o de regras dado que o Tail desempenha um papel fundamental para o funcionamento do algoritmo no RuDriCo Retomando o exemplo apresentado anteriormente em que o sistema tem as seguintes regras disamb IET lemma poder lemma poder CAT ver join surface de lemma de CAT prep surface 0 lemma 0 CAT art gt surface do lemma do CAT pre Observe se a figura 4 8 onde est ilustrado o processamento da frase A Coreia de o Sul sem os seg mentos adicionais no algoritmo do RuDriCo Como o sistema s aplica uma Arule se esta puder ser Analisador Add Coreia AruleList AruleList AruleList AruleList 2 I I lem lem lem lem lem lem I l lem lem surf surf surf I ais lem ak lem I lem j lem E P d AruleList I lem lem Figura 4 8 Primeiro passo do processamento da frase A Coreia de o Sul sem os segmentos Head e Tail 41 aplicada e for a primeira da lista de modo a manter a prioridade das regras a segunda regra nunca aplicada se n o existir o segmento Tai
100. s oes 48 5 Avalia o 49 5 1 Avalia o do desempenho ee 49 5 1 1 Metodologia da avalia o 1 a 49 5 1 2 Altera o da metodologia usada para leitura e escrita de ficheiros 50 5 1 3 Introdu o de camadas eA 52 5 1 4 Introdu o de contextos e altera o da representa o dos itens 53 5 1 5 Propriedades autom ticas e capitaliza o a 55 5 1 6 ORUDTICO2 ae 6 dota ow eked POP de ee ee ee dr d bere OPEP eM 56 5 2 Avalia o da Sintax dX 2 4 sp cash p EE Gare mu dex Rat Gee ok Nen A eh os 58 6 Conclusoes e Trabalho Futuro 60 Lista de Figuras 1 1 2 1 2 2 2 3 2 4 2 5 3 1 3 2 3 3 3 4 3 5 3 6 3 7 3 8 3 9 3 10 3 11 4 1 4 2 4 3 4 4 4 5 4 6 4 7 4 8 4 9 4 10 4 11 4 12 4 13 4 14 Cadeia de Processamento de L ngua Natural do L F 02 0000 00 Estrutura do ficheiro XML que dado como entrada no RuDriCo Exemplo das v rias anota es que o analisador morfol gico atribui palavra pesquisa Altera o de segmenta o ee Representa o dos segmentos da frase A Vanessa r pida no sistema XIP Hierarquia resultante da aplica o de uma regra de sequ ncia Diagrama UML simplificado da classe RRule 2 2 2 len Diagrama UML simplificado da classe Sentence llle Diagrama UML simplificado da classe Arule 2 2 ee Diagrama UML si
101. s s o pr processadas quando algo alterado 5 2 Avalia o da sintaxe Ao longo do cap tulo 4 realizaram se altera es sintaxe original do RuDriCo altera es essas que t m os seguintes objectivos e reduzir o tamanho das regras e reduzir o uso de vari veis e aumentar a expressividade das regras Uma das altera es mais relevantes a adi o de contextos porque permite que as regras fiquem mais expressivas e que o n mero de vari veis usadas seja reduzido o que por sua vez torna as regras mais compactas Outra altera o relevante consiste em colocar a forma superficial e o lema como pares propriedade valor pois torna poss vel ocultar a forma superficial e o lema quando se representa um item As altera es foram realizadas incrementalmente e a sintaxe do RuDriCo2 a sintaxe que cont m todas as altera es Observe se como exemplo a regra S1 L1 CAT pre S2 poder CAT nou poder CAT ver MOD inf 3 L3 CAT ver MOD inf ES S1 S2 poder CAT nou S3 Esta na sintaxe do RuDriCo2 escrita da seguinte forma disamb CAT pre lemma poder CAT nou lemma poder CAT ver MOD inf CAT ver MOD inf lemma poder CAT nou 58 Comparando as sintaxes nota se que no RuDriCo2 a regra mais compacta e n o necess rio usar uma nica vari vel Importa aqui referir que a avalia o da sintaxe
102. s de desambigua o baseados em regras tamb m conhecidos como sistemas com conhe cimento lingu stico M rquez and Padr 1997 s o os sistemas alvo deste trabalho As regras usadas nestes sistemas s o escritas por linguistas o que requer um esfor o adicional As regras verificam o con texto em que uma palavra est inserida e depois consoante o mesmo fazem a respectiva desambigua o Os desambiguadores deste tipo deixam algumas ambiguidades por resolver mas mesmo assim comum os sistemas actuais terem uma taxa de acerto pr xima de 99 Os principais trabalhos realizados nesta rea s o e Computational Grammar Coder CGC Klein and Simmons 1963 1A taxa de acerto n o tem em conta as palavras que n o s o desambiguadas TAGGIT Greene and Rubin 1962 EngCG Voutilainen 1995a Voutilainen 1995b e XIP Xerox 2003 e RuDriCo Pardal 2007 e Brill Tagger Brill 1992 Na compara o destes trabalhos observa se que o CGC um analisador e desambiguador morfol gico que com o aux lio de um l xico de 1500 palavras come a por tratar de algumas excep es de que o analisador morfol gico n o consegue dar conta Depois executado o seu analisador morfol gico e por ltimo o seu sistema de desambigua o que baseado em regras tem cerca de 500 regras J o TAGGIT baseia se no CGC mas utiliza um l xico maior O EngCG tamb m n o s um desambiguador pois para al m de anotar e desam
103. s do sistema RuDriCo e como tal tem dois objectivos principais aumentar a efici ncia do RuDriCo e tornar a sua sintaxe mais expressiva e mais compacta Em rela o efici ncia do RuDriCo pode observar se na tabela 1 1 onde se apresenta um estudo do tempo de processamento de cada um dos m dulos da cadeia de processamento de texto do L F que o RuDriCo o m dulo que demora mais tempo tendo como tal um baixo desempenho M dulo Tempo de CPU ms palavra Segmentador 0 11 RuDriCo 4 24 Marv 0 20 XIP 1 67 Convers es entre m dulos 0 50 Total 6 73 Tabela 1 1 M dia do tempo de CPU gasto por palavra na cadeia de processamento de texto do L F Quanto s regras o RuDriCo baseado em regras declarativas e a expressividade das mesmas caracteriza se pela sintaxe e pelos operadores dispon veis No entanto h regras que n o podem ser escritas no RuDriCo porque a sintaxe deste nao suficientemente expressiva estas regras sao escritas no m dulo de desambigua o por regras do sistema XIP Adicionalmente pretende se resolver o problema das regras que provocam recurs o e o limite no tamanho do ficheiro de entrada Capitulo 2 Trabalho Relacionado Este cap tulo descreve os m todos normalmente usados para fazer desambigua o morfossint ctica e apresenta o sistema RuDriCo Pardal 2007 e o sistema XIP Xerox 2003 Este ltimo inclui m dulos para realizar a desambigua o morf
104. servar o algoritmo de processamento de frases quando foram adicionadas as camadas na sec o 4 2 conclui se que o n mero de regras por camada tem influ ncia no desempenho do sistema tendo sido realizado um estudo para descobrir o n mero ptimo de regras por camada Neste estudo utilizaram se todas as regras do sistema excepto as regras de desambigua o Para as restantes 2330 regras em vez de cada ficheiro corresponder a uma camada as regras s o divididas em camadas de igual tamanho de modo a encontrar o n mero ptimo de regras por camadas Os testes foram realizados processando o ficheiro part08 1000 xml e os resultados est o na tabela 5 7 Note se que no caso de existir apenas uma Regras Camada Tempo s 1 146 00 2 75 00 4 40 50 8 23 20 16 15 80 17 15 10 32 9 10 73 7 70 146 6 90 156 6 70 167 6 10 180 6 90 292 7 80 583 8 70 1165 14 90 2330 15 20 Tabela 5 7 Estudo do n mero de regras ptimo por camada regra por camada o sistema demora mais tempo ao contr rio do que acontece quando todas as regras est o na mesma camada Este facto resulta da estrutura original do algoritmo de processamento de frases resultado ter dois ciclos um ciclo para as frases e um ciclo para todos os segmentos de uma frase No 52 caso da exist ncia de camadas o algoritmo de processamento de frases passa a ter tr s ciclos o ciclo para as frases o ciclo para as ca
105. spondente regra de contrac o passa a ser a primeira da lista Importa referir que neste exemplo n o h uma grande melhoria mas na hip tese de a frase a processar ser A Coreia de o Sul na sia a regra seria aplicada sem processar os segmentos na e Asia Na segunda optimiza o os segmentos de cada frase est o associados a um indice num rico sendo calculado para cada segmento um valor de recome o o que implica que se for aplicada uma regra que comece neste segmento o sistema tem de voltar a processar a frase come ando no segmento de ndice x O valor de recome o de um segmento calculado quando o respectivo segmento processado e o valor corresponde ao ndice mais pequeno dos primeiros segmentos das Arules presentes na AruleList Para exemplificar o c lculo do valor de recome o apresenta se novamente o exemplo anterior com esta optimiza o Na figura 4 14 encontra se o primeiro passo e na figura 4 15 apresentado o segundo Ao se observar a figura 4 14 verifica se que a regra que foi aplicada come a no segmento de ndice 2 e o valor de recome o deste segmento 1 ou seja a frase vai ser processada come ando no segmento de ndice 1 como ilustra a figura 4 15 Note se que o valor de recome o do segmento de ndice 2 na figura 4 14 1 porque neste segmento a AruleList tem duas regras sendo que aquela que come a primeiro a do segmento de ndice 1 Neste exemplo de processament
106. um sistema para o outro realizada tamb m uma breve avalia o da nova sintaxe como se verifica em 5 2 5 1 Avalia o do desempenho Na sec o 5 1 1 apresenta se a metodologia de avalia o do desempenho do sistema que inclui a defini o do ambiente de avalia o e a avalia o original do RuDriCo Como as altera es foram realizadas sequencialmente s o efectuadas avalia es a estados interm dios do sistema Realiza se ainda uma avalia o depois da altera o do processamento da entrada e sa da do sistema em 5 1 2 Esta avalia o realiza se dado que esta altera o tem influ ncia no tamanho dos ficheiros que o sistema processa Consequentemente a introdu o de camadas no sistema tem impacto no desempenho do mesmo pelo que se realiza uma nova avalia o apresentada na sec o 5 1 3 Depois de introduzidos os contextos e a nova representa o dos itens realiza se uma avalia o em 5 1 4 Na sec o 5 1 5 apresenta se a avalia o do sistema ap s as propriedades autom ticas serem introduzidas Este estado do sistema avaliado pois esta altera o n o foi realizada com o intuito de aumentar o desempenho do sistema mas apenas para reduzir o trabalho do utilizador quando este escreve regras e para reduzir o n mero de vari veis nas mesmas Finalmente em 5 1 6 feita a avalia o global do sistema RuDriCo ap s todas as altera es e optimiza es introduzidas ou seja a avalia o do RuDriCo2
107. uxo controlado pelo handler O algoritmo apresentado em 4 1 Method Analise Sentence S 1 PreProcessedSentence S 2 PosProcessedSentence 3 I first segment of PreProcessedSentence 4 WHILE I is a segment b applied agenda I 6 IF applied THEN T ConstructNewSentence PosProcessedSentence PreProcessedSentence ChangedSegments 8 PreProcessedSentence PosProcessedSentence 9 I first segment of PreProcessedSentence 10 ELSE 11 Add PosProcessedSentence 1I 12 I next segment of PreProcessedSentence 13 ENDWHILE 14 Write PosProcessedSentence Figura 4 1 Algoritmo de processamento de frases resultados alterado Com estas altera es o algoritmo RuDriCo2 processa ficheiros de entrada que o RuDriCo n o pro cessava 4 2 Camadas No XIP as camadas correspondem a subconjuntos de um conjunto de regras num ficheiro A sintaxe do RuDriCo2 igual do XIP ou seja coloca se o n mero da camada antes da regra camada gt antecedente gt consequente As regras que n o t m n mero da camada ficam na camada de maior prioridade a camada n mero zero No RuDriCo todas as regras s o testadas no algoritmo de aplica o de regras sendo testadas pela ordem em que est o no ficheiro de entrada A entrada do RuDriCo um ficheiro e este por sua vez o resultado de uma jun o das regras de v rios ficheiros Como exemplo considere se que as regras est o organizadas em tr s ficheiros s
108. veis Tome se como exemplo o facto de no RuDriCo2 n o ser necess rio simular contextos recorrendo a vari veis Importa ainda referir que a valida o das regras do RuDriCo2 foi melhorada em rela o valida o das regras do RuDriCo Assim o RuDriCo2 valida todas as propriedades e valores contidos nas regras excepto as formas superficiais e os lemas No RuDriCo2 se uma vari vel aparece no consequente e esta n o aparece no antecedente gerado um erro dado que a vari vel inconsistente Adicionalmente tamb m verificado se todas as regras de contrac o se podem aplicar ou n o Estas melhorias valida o das regras ajudam os utilizadores a encontrar erros nas mesmas Relativamente ao trabalho futuro verifica se que a opera o que compara itens com segmentos realizada com muita frequ ncia no decorrer do sistema Actualmente esta opera o uma compara o entre propriedades dos segmentos e propriedades dos itens Estas propriedades est o representadas num mapa de inteiros sendo realizadas compara es entre inteiros Futuramente pode ser mudada a repre senta o interna das propriedades dos itens e dos segmentos por exemplo para arrays de bits onde cada bit representa o valor de uma propriedade Com esta representa o a compara o entre segmentos e itens resume se a uma opera o bin ria entre os arrays e esperado que esta opera o seja mais eficiente do que a compara o actual 61 Biblio
109. vez tem um conjunto de regras de desambigua o cujo objectivo a resolu o dos casos em que o Marv falha Com esta estrat gia consegue se aumentar a taxa de desambigua o 2 2 RuDriCo O sistema RuDriCo baseado em regras e tem duas funcionalidades a desambigua o morfossint ctica e a altera o da segmenta o Na sec o 2 2 1 s o descritos os dados de entrada e as funcionalidades do sistema Na sec o 2 2 2 s o apresentadas as regras que permitem fazer a desambigua o e na sec o 2 2 3 s o descritas as regras que permitem fazer a altera o da segmenta o 2 2 1 Descri o do sistema RuDriCo O sistema RuDriCo recebe como entrada um ficheiro em formato XML constitu do por um conjunto de frases sendo que cada frase tem um ou mais segmentos word como se pode observar na figura 2 1 Cada segmento tem uma forma superficial e pode ter uma ou mais anota es class que consistem no lema que est sempre presente e no conjunto de pares propriedade e respectivo valor Uma das propriedades mais frequente a categoria da forma superficial lt 12f annotation gt lt sentence gt word name Forma superficial gt lt class root Lema gt lt id atrib propriedade 1 value valor 1 gt lt class gt lt word gt lt sentence gt lt 12f_annotation gt Figura 2 1 Estrutura do ficheiro XML que dado como entrada no RuDriCo No caso de o analisador morfol gico categorizar uma forma sup
110. za o da desambigua o ou a altera o da segmenta o Por sua vez essas regras s o escritas pelo utilizador sendo a sua sintaxe uma das caracter sticas mais importantes do sistema Tendo em conta estes aspectos o presente documento aborda a desambigua o morfossint ctica a partir de um estudo entre os principais sistemas da rea Aqui ainda analisada a sintaxe das regras do RuDriCo sendo comparada com outra sintaxe Em consequ ncia desta compara o s o descritas as v rias altera es ao sistema RuDriCo que o tornam no sistema RuDriCo2 nomeadamente as altera es sintaxe das regras e as optimiza es ao algoritmo principal do sistema Abstract There are ambiguous words in text processing as a word can have the name category and the verb category for instance In order to resolve these ambiguities there is a module in the Natural Language Processing NLP chain of L F RuDriCo The RuDriCo is a morphological disambiguator based on rules with the possibility to change the segmentation of the text When comparing this module with others in the chain it appears that the RuDriCo is the bottleneck of the chain RuDriCo s performance is one of the problems addressed in this work The system RuDriCo is based on rules that enable the realization of disambiguation or the segmen tation changes The rules are written by the user and the rules syntax is one of the most important features of the system Given these asp

Download Pdf Manuals

image

Related Search

Related Contents

Mode d`Emploi - Genie Industries  Volume 3, Issue 3  Jérémy Fisher Un spectacle tout public dès 6 ans  Kaspersky Anti-Virus 2013  Samsung Galaxy S4 Manuel de l'utilisateur(Lollipop)    SITRANS F C MASS 2100 Di 3-40 - Vision Solutions de procédés    GE GTW810SPJMC Use and Care Manual  

Copyright © All rights reserved.
Failed to retrieve file