Anais do X Encontro do CELSUL – Círculo de Estudos Linguísticos do Sul UNIOESTE - Universidade Estadual do Oeste do Paraná Cascavel-PR | 24 a 26 de outubro de 2012 | ISSN 2178-7751 CONSTRUÇÃO DOS ALGORITMOS PARA A DEPREENSÃO DA GRAMÁTICA AUTOMÁTICA DO PB Vera VASILÉVSKI 1 RESUMO: Este artigo descreve a construção dos algoritmos para inserção das regras gramaticais do sistema de verbos do português brasileiro em ambiente computacional – tarefa que faz parte da depreensão da gramática automática do PB. Levantamento detalhado das características dos paradigmas das formas verbais do português e das formas nominais (infinitas) precedeu o trabalho. Então, construíram-se os algoritmos para as regras das formas regulares, no que tange ao comportamento da vogal temática (presença, ausência e alomorfes), às desinências modo-temporais (existência ou não e alomorfes) e, finalmente, trabalhou-se com as desinências número-pessoais. A etapa atual do programa refere-se a ajustes nos algoritmos que estão em funcionamento, à construção dos algoritmos para verbos que têm formas irregulares e, ainda, foca a resolução de ambiguidades geradas por conflitos entre regras, à medida que aumentam os algoritmos, os quais funcionam em conjunto. PALAVRAS-CHAVE: Gramática automática; Morfologia verbal; Algoritmos. ABSTRACT: This article describes the development of the algorithms for translating the grammar rules of Brazilian Portuguese system of verbs into computational environment. Such task is part of a project for producing an automatic grammar for this language. A detailed survey of the characteristics of the Portuguese verb paradigms and nominal verb forms (infinite) preceded the work. So, we built the algorithms for the regular verb forms rules regarding thematic vowel (its presence, absence, and allomorphs), tense-mood suffixes (existence or not, and their allomorphs), and, finally, we worked with person-number suffixes. The current phase of the project refers to adjusting running algorithms, and to the construction of algorithms for verbs which have irregular forms; also, it focuses on solving ambiguities caused by conflicting rules, what may happen as the algorithms increase. KEYWORDS: Automatic grammar; Verbal morphology; Algorithms. 1 Introdução Relata-se uma fase de um projeto, cujo objetivo é desenvolver um recurso computacional para automatizar o sistema de verbos do português escrito do Brasil, a partir de suas regras morfológicas. Tal recurso é um analisador morfológico, que contém, em forma de algoritmos, as regras gramaticais dos verbos do português. Dado o ineditismo desse projeto, faz-se cabível descrever e discutir os procedimentos gramaticais e computacionais empregados nessa tarefa. O analisador morfológico de verbos mencionado é uma ferramenta desenvolvida como parte do projeto Análise Morfológica Automática do Português (SCLIAR-CABRAL, 2009). O maior objetivo desse projeto é depreender uma gramática automática do português brasileiro, mediante análise do córpus pau003.cha, que, em seu todo, é constituído por 10688 enunciados. Parte-se dos verbos em situações de uso, encontradas em um enunciado, portanto. 1 Pós-doutoranda PNPD/CAPES/UFSC e professora visitante do Programa de Pós-graduação em Lingüística da Universidade Federal de Santa Catarina, [email protected]. 1 Anais do X Encontro do CELSUL – Círculo de Estudos Linguísticos do Sul UNIOESTE - Universidade Estadual do Oeste do Paraná Cascavel-PR | 24 a 26 de outubro de 2012 | ISSN 2178-7751 Desenvolve-se esse projeto em parceria com o projeto Childes (MACWHINNEY, 2012), em cujo sítio o córpus de trabalho está disponível para baixa. Para dar suporte às etapas de construção da gramática automática, criou-se um programa que abriga várias ferramentas, as quais funcionam em conjunto e em interface com outros aplicativos – chama-se Laça-palavras (VASILÉVSKI e ARAÚJO, 2010), e o analisador morfológico enfocado aqui é uma de suas ferramentas, aquela que contém o sistema gramatical de verbos do português em forma de algoritmos. Etapas concluídas relativas à depreensão da morfologia dos paradigmas verbais regulares foram documentadas, como regras iniciais do comportamento da vogal temática e sufixos modo-temporais e número-pessoais (SCLIAR-CABRAL e VASILÉVSKI, 2011a), a automatização da vogal temática e seus alomorfes (VASILÉVSKI, SCLIAR-CABRAL, ARAÚJO, 2012), a automatização dos morfemas modo-temporais, os casos ambíguos dela decorrentes e sua desambiguação (VASILÉVSKI e ARAÚJO, 2011), dentre outras questões relacionadas ao projeto (SCLIAR-CABRAL e VASILÉVSKI, 2011b). Já, nesta ocasião, expõe-se parte de uma fase precedente, porém, ainda não discutida: a construção dos algoritmos do ponto de vista computacional; e, ainda, nos mesmos moldes, expõem-se os resultados iniciais da sistematização eletrônica das primeiras formas verbais irregulares. Este artigo organiza-se da maneira que segue. Resgatam-se brevemente alguns aspectos técnicos e teóricos relativos ao programa Laça-palavras e ao analisador morfológico em si, uma vez que muito já se discutiram esses assuntos em outros trabalhos, aqui citados. Então, dedica-se um capítulo aos algoritmos do programa, no que concerne à conversão das regras gramaticais dos verbos do português para o computador e à criação de funções para resolver ambiguidades geradas pelo próprio sistema de verbos e também pelo ambiente eletrônico. Após, apresentam-se as últimas considerações. 2 Aspectos Técnico-metodológicos Como já se exploraram suficientemente as questões teóricas mais pertinentes ao sistema de verbos do português, este artigo volta-se, sobretudo, à metodologia técnica, e resgata apenas alguma teoria imediatamente relevante para a discussão. Não é intenção aqui abordar a linguagem de programação utilizada, a maneira como se estruturaram as funções internamente no programa e outras questões dessa ordem, pois isso foge ao âmbito da lingüística. Todavia, antes de prosseguir, é importante lembrar questões teóricas que nortearam a construção do programa, como o funcionamento flexional básico dos verbos em português. A fórmula geral da estrutura do vocábulo verbal português – na qual RAD indica radical do verbo; VT, vogal temática; e SF, sufixos flexionais – é (CÂMARA JR., 1986): TEMA (RAD+VT) + SF (SMT + SNP) Levando-se em conta a alomorfia de cada um dos sufixos flexionais e a possibilidade de um deles ou ambos serem zero (Ø), essa fórmula dá a regra geral da constituição morfológica do verbo em português, além de indicar a ordem obrigatória dos morfemas (CÂMARA JR., 1986). A exposição sistemática de todas as formas de um verbo, finitas e infinitas (nominais), constitui a conjugação desse verbo (SAID ALI, 1964). O sistema de conjugação de verbos do português é considerado, de certa forma, simples e previsível (CÂMARA Jr., 1986), o que respalda a criação de uma ferramenta computacional baseada em suas regras. 2 Anais do X Encontro do CELSUL – Círculo de Estudos Linguísticos do Sul UNIOESTE - Universidade Estadual do Oeste do Paraná Cascavel-PR | 24 a 26 de outubro de 2012 | ISSN 2178-7751 O tema do infinitivo é a forma básica do verbo regular. Assim, dado um verbo regular em sua forma infinitiva, é possível conjugá-lo com facilidade, nas seis pessoas gramaticais, 2 sobretudo nos tempos do modo indicativo. Em contrapartida, tomar uma forma verbal conjugada e dela extrair os morfemas que a compõem, a fim de desvendar tempo, modo, pessoa e número em que está flexionada, não é tão fácil (VASILÉVSKI e ARAÚJO, 2011). Em português, há três modos verbais finitos, com seus tempos simples: indicativo (seis tempos), subjuntivo (três tempos) e imperativo (afirmativo e negativo), além do infinitivo pessoal e das formas nominais infinitivo, gerúndio e particípio. Apesar de as gramáticas dividirem os verbos em regulares e irregulares, ocorre que todos os ditos verbos irregulares são perfeitamente regulares em vários tempos e pessoas gramaticais. Não há verbo que seja irregular em todos os tempos e pessoas gramaticais, de modo que o programa considera que o que há são formas irregulares (que se desviam do paradigma regular) e formas regulares. A partir dessa decisão, o trabalho ficou mais coerente com a realidade, bem como se facilitou a descodificação automática. No córpus de trabalho, os verbos estão anotados – na linha do enunciado, no sistema Clan (MACWHINNEY, 2012), disponibilizado pela Plataforma Childes e usado para ler o córpus –, de modo a distinguir as formas verbais regulares (default), as formas verbais irregulares e os verbos auxiliares, para possibilitar, no Laça-palavras (LP), a pesquisa (resgate e filtragem de dados), a análise morfológica automática e, consequentemente, a criação da linha %mor no arquivo original a ser lido pelo Clan, como será visto. No entanto, para fins de clareza e limpeza do texto, esses símbolos, bem como outros símbolos do Clan, podem ser omitidos na pesquisa feita pelo LP, a critério do usuário. Todos os verbos auxiliares possuem formas irregulares, mas a decisão de assinalá-los separadamente se deve ao fato de preparar a computação, posteriormente, das locuções verbais e dos tempos compostos (SCLIARCABRAL e VASILÉVSKI, 2011a). Ainda, cabe relembrar a nomenclatura utilizada no analisador de verbos. Cada um dos tempos verbais do português, em seus respectivos modos, recebeu um código único, que foi inserido no programa (VASILÉVSKI, SCLIAR-CABRAL e ARAÚJO, 2012): PI – Presente do Indicativo, PII – Pretérito Imperfeito do Indicativo, PPI – Pretérito Perfeito do Indicativo, PMI – Pretérito Mais-que-perfeito do Indicativo, FPI – Futuro do Presente do Indicativo, FPPI – Futuro do Pretérito do Indicativo, PS – Presente do Subjuntivo, PIS – Pretérito Imperfeito do Subjuntivo, FS – Futuro do Subjuntivo, IMA – Imperativo Afirmativo, IMN – Imperativo Negativo, INF – Infinitivo, GER – Gerúndio, PAR – Particípio. Da mesma forma, as seis pessoas gramaticais são assim designadas: 1S, 2S, 3S, 1P, 2P e 3P. Mais questões teóricas serão apresentadas, quando se fizerem pertinentes, durante esta exposição. 2.1 O programa Laça-palavras O funcionamento geral do programa Laça-palavras foi relatado anteriormente (SCLIAR-CABRAL e VASILÉVSKI, 2011), bem como algumas de suas ferramentas (VASILÉVSKI, 2010 e 2011) e resultados advindos de sua implementação parcial (VASILÉVSKI, 2011b; COSTA e SCLIAR-CABRAL, 2011). O Laça-palavras surgiu da necessidade de haver flexibilidade dos dados de trabalho maior do que a oferecida pelo 2 Morfologicamente, as pessoas gramaticais são seis, por se tratar de seis formas diferentes, e não de três formas, cada uma com plural. Assim, a noção de pessoa gramatical não se realiza por meio de flexão, faz-se lexicalmente, por vocábulos distintos (CÂMARA JR., 1986, p.84-85). A partir disso, sua designação aqui como 1.ª, 2.ª e 3.ª do singular e do plural se dá por questões práticas apenas. 3 Anais do X Encontro do CELSUL – Círculo de Estudos Linguísticos do Sul UNIOESTE - Universidade Estadual do Oeste do Paraná Cascavel-PR | 24 a 26 de outubro de 2012 | ISSN 2178-7751 programa Clan. O Laça-palavras volta-se para arquivos em português, trabalha em conjunto com o Clan e também disponibiliza recursos próprios, os quais estão em constante aprimoramento, para atender às demandas do projeto. Atualmente, o LP integra: o conversor grafema-fonema Nhenhém (VASILÉVSKI, 2008), que funciona em conjunto com um silabador fonológico e um silabador ortográfico (VASILÉVSKI, 2010, 2011a e 2012) – esses programas foram atualizados em 2012, de modo que a eficiência de seus resultados aumentou sensivelmente (VASILÉVSKI, 2012); um pesquisador para os arquivos do Clan (SCLIARCABRAL e VASILÉVSKI, 2011b), que busca palavras no córpus, o qual também já foi aprimorado em 2012 (ver SCLIAR-CABRAL, 2012); e o analisador morfológico de verbos mencionado, que está em construção, mas já funciona parcialmente, pois várias etapas de seu desenvolvimento foram concluídas ou estão em aperfeiçoamento. Além disso, essas ferramentas possibilitam: 1) pesquisa no córpus, com marcação das linhas de seus enunciados com o tipo de discurso – de adulto para criança (ad-chi), de criança para adulto (chi-ad) e de adulto para adulto (ad-ad) –, resgate de palavras específicas – ou grupos de palavras – para trabalho com classes gramaticais, geração de relatório estatístico; 2) criação no córpus de uma linha denominada %pho, mediante interface com o fonetizador Nhenhém, para fazer a transcrição fonológica automática, com marcação das sílabas tônicas de determinado enunciado do arquivo e ajuste da transcrição fonológica para fonética; 3) criação de uma linha para tradução morfológica automática dos verbos, chamada %mor, cuja ferramenta que a controla – o analisador morfológico – é abordada neste estudo (ver SCLIAR-CABRAL, 2012). Figura 1: Tela principal do Nhenhém 2012 e dos silabadores fonológico e ortográfico, integrados ao Laça-palavras. Fonte: VASILÉVSKI, 2012, p.85. 4 Anais do X Encontro do CELSUL – Círculo de Estudos Linguísticos do Sul UNIOESTE - Universidade Estadual do Oeste do Paraná Cascavel-PR | 24 a 26 de outubro de 2012 | ISSN 2178-7751 O LP hoje é o principal recurso usado pelos pesquisadores do Grupo Produtividade Lingüística Emergente, e foi desenhado exclusivamente para uso pelo projeto, mas será disponibilizado futuramente aos pesquisadores interessados. 2.2 O analisador morfológico O programa construído para análise morfológica automática do português brasileiro, assim como o Laça-palavras, é compatível com o formato do arquivo pau003.cha, ou seja, lê e analisa os verbos dos arquivos do Clan. A primeira parte do trabalho foi descrever as regras relativas à conjugação das formas regulares (comportamento da vogal temática, morfemas modo-temporais e número-pessoais, incluindo-se o modo indicativo, subjuntivo e os imperativos em todos seus tempos e pessoas) e transformá-las em algoritmo. Ao identificar uma forma verbal, o analisador morfológico a compara com suas regras internas, então, a analisa, ou seja, mostra seus elementos composicionais. Assim, a saída do programa é a realização da fórmula geral da estrutura do vocábulo verbal português, acrescendo-se a respectiva conjugação do verbo (C), representada por V1 (1ª.C), V2 (2ª.C) ou V3 (3ª.C): TEMA&C&SMT&SNP, e a depreensão de sua forma infinitiva. Figura 2: Tela principal do analisador morfológico integrado ao Laça-palavras. A Figura 2 mostra a análise morfológica da linha 314 do córpus pau003.cha, em que o participante INV profere a forma verbal irregular “disse”. À medida que o cursor desce pelos enunciados, cada forma verbal encontrada é analisada automaticamente pelo programa. O campo Análise mostra que a forma infinitiva correspondente a “disse” é “dizer”, então, ela é da 2ª.C, coincide com o radical, pois a vogal temática desapareceu, não há embutido nela sufixo modo-temporal (SMT = Ø), nem número-pessoal (SNP = Ø), não se trata de gerúndio (GER) nem de particípio (PAR). Todas essas informações juntas contam que se trata de 1S/3S-PPI, no entanto, embora a forma “disse” seja a mesma para 1S e 3S, no enunciado 314 está expresso o pronome subjetivo “ele” antes do verbo, o que desambígua essa ocorrência. 5 Anais do X Encontro do CELSUL – Círculo de Estudos Linguísticos do Sul UNIOESTE - Universidade Estadual do Oeste do Paraná Cascavel-PR | 24 a 26 de outubro de 2012 | ISSN 2178-7751 As ambigüidades do sistema de verbos do português geram várias possibilidades errôneas de análise. Por isso, a fim de limitar a saída do analisador à resposta correta, desenvolveu-se o procedimento para criação de um léxico verbal automático para o córpus de trabalho, que resolveu várias ambigüidades, e já foi descrito e discutido (VASILÉVSKI, SCLIAR-CABRAL e ARAÚJO, 2012). O mesmo procedimento foi adotado para os verbos com formas irregulares. Não cabe aqui expor em detalhes o funcionamento do analisador, uma vez que isso já foi feito (ver VASILÉVSKI, SCLIAR-CABRAL e ARAÚJO, 2012; VASILÉVSKI e SCLIAR-CABRAL, 2011a e 2011b; VASILÉVSKI e ARAÚJO, 2011). No entanto, é válido explanar sobre sua construção interna. O programa identifica os verbos mediante sua anotação prévia, e então aplica os algoritmos das regras morfológicas.3,4 Por adentrar o campo da inteligência artificial, boa parte da programação são encadeamentos de estruturas SE, ENTÃO, SE NÃO, ou IF, THEN, ELSE: public cVerbo(string paramVerbo) Verbo = paramVerbo; if (!((Verbo.EndsWith("@z:v")) || (Verbo.EndsWith("@z:vi")))) Verbo = null; public cVerbo(string paramVerbo, bool _irregular) Verbo = paramVerbo; if (!((Verbo.EndsWith("@z:v")) || (Verbo.EndsWith("@z:vi")))) Verbo = null; TempoIrregular = true; Para os verbos com formas regulares (Irregular=false), 5 construíram-se os seguintes conjuntos de regras gramaticais: private string _vrb = ""; private string _RadVT = ""; private string _mt = ""; private string _pn = ""; private string _ger = ""; private string _part = ""; private string _inf = ""; private string _participios = "ado;edo;ido;ído"; private string _tempoEModo = ""; private string _pessoa = ""; private string _palavraAnt = ""; private const string v1 = "V1"; 3 Alterações são feitas freqüentemente, para adaptar o Laça-palavras e suas ferramentas às mudanças que ocorrem no Clan. Anteriormente, a marcação usada para os verbos era @v (formas regulares), @vi (formas irregulares) e @va (verbos auxiliares), mas, em sua versão 2012, o Clan passou a aceitar a notação @z:v e @z:vi. Além disso, em 2011, o coordenador do projeto Childes reestruturou os arquivos constantes na plataforma, de modo que o arquivo pau003.cha agora é um conjunto de 35 arquivos menores (ver SCLIARCABRAL, 2012). Isso explica números de linha altos nos exemplos, pois foram coletados antes da divisão do córpus. Essa reestruturação não afetou os trabalhos já realizados, dada a flexibilidade do Laça-palavras. 4 Nos fragmentos computacionais deste artigo, foram suprimidos alguns símbolos e linhas específicas da linguagem de programação, a fim de facilitar a compreensão das regras. 5 Quando se diz verbos com formas regulares, abrangem-se todos os paradigmas verbais regulares, bem como a parte regular dos paradigmas que contêm formas irregulares. Assim, as formas “estarei” e “iria” entram nas regras das formas verbais regulares, pois, apesar dos verbos “estar” e “ir” terem várias formas irregulares em alguns tempos, eles têm formas regulares em outros, como o futuro do presente e do pretérito e o pretérito imperfeito. Essa decisão foi fundamental para aumentar a eficiência do analisador, pois se revelou coerente e econômica. Em trabalho vindouro, detalhar-se-ão os procedimentos teóricos e técnicos que fundamentam essa escolha. 6 Anais do X Encontro do CELSUL – Círculo de Estudos Linguísticos do Sul UNIOESTE - Universidade Estadual do Oeste do Paraná Cascavel-PR | 24 a 26 de outubro de 2012 | ISSN 2178-7751 private const string v2 = "V2"; private const string v3 = "V3"; private string _conjugacao = ""; private bool _tempoIrregular = false; O programa testa todos esses conjuntos de regras, para cada entrada. 3 Algoritmos Os algoritmos criados são, especialmente, de dois tipos: tradução das regras gramaticais para a linguagem de programação escolhida; e desambiguação dessas regras em vários aspectos, como desambiguação de forma verbal infinitiva e de pessoa gramatical. 3.1 Algoritmos para as regras gramaticais O sistema de verbos do português do Brasil, apesar de ser, de certa forma, simples, em comparação com o de outras línguas, como o inglês, tem seu nível de complexidade. Para se desenvolver o analisador morfológico automático para verbos do português escrito, foi necessário conhecer a fundo as regras gramaticais que regem o sistema escrito de verbos dessa língua, o que se obteve na literatura pertinente ao tema (CÂMARA JR., 1986, 1976; SAID ALI, 1964; SCLIAR-CABRAL, 2003). A partir disso, as regras gramaticais referentes ao comportamento da vogal temática dos verbos regulares foram discutidas (VASILÉVSKI, SCLIAR-CABRAL e ARAÚJO, 2012), bem como as regras relativas aos sufixos modotemporais também dos verbos regulares (VASILÉVSKI, e ARAÚJO, 2011), como mencionado. As desinências número-pessoais ainda não se abordaram exaustivamente, mas estudos preliminares – em desenvolvimento – indicam que elas não contribuem da forma esperada para eliminar ambigüidades do sistema de verbos do português, sobretudo quanto aos verbos que não têm formas irregulares. Cabe então expor algumas das regras gramaticais dos verbos, em função de sua tradução para o ambiente eletrônico. As regras que regem o presente do modo indicativo das formas regulares da primeira conjugação são expressas como segue: mtnp = "o;as;a;amos;ais;am".Split(';'); foreach (string s in mtnp) if (Palavra.EndsWith(s)) res = true; TempoEModo = "PI"; //Tema Tema = Palavra.Substring(0, Palavra.Length - s.Length) + "a"; Verbo = Tema + "r"; Verbo = Verbo.Replace('á', 'a'); newVerbo = new cVerbo(Verbo); newVerbo.Conjugacao = v1; newVerbo.Tema = Tema; newVerbo.TempoEModo = TempoEModo; //Modo e tempo newVerbo.MT = "Ø"; //Número e pessoa if (s == "o") newVerbo.PN = "o"; newVerbo.Tema = Tema.Substring(0, Tema.Length - 1) + "Ø"; newVerbo.Pessoa = "1S"; else if (s == "as") newVerbo.PN = "s"; newVerbo.Pessoa = "2S"; 7 Anais do X Encontro do CELSUL – Círculo de Estudos Linguísticos do Sul UNIOESTE - Universidade Estadual do Oeste do Paraná Cascavel-PR | 24 a 26 de outubro de 2012 | ISSN 2178-7751 else if (s == "a") newVerbo.PN = "Ø"; newVerbo.Pessoa = "3S"; else if (s == "amos") newVerbo.PN = "mos"; newVerbo.Pessoa = "1P"; else if (s == "ais") newVerbo.PN = "is"; newVerbo.Pessoa = "2P"; else if (s == "am") newVerbo.PN = "m"; newVerbo.Pessoa = "3P"; newVerbo.Verbo = Verbo; LVerbo.Add(newVerbo); Note-se que o programa separa o radical e o restante do vocábulo (a vogal temática e os sufixos flexionais), e, então, separa o sufixo modo-temporal do sufixo número-pessoal. Fica clara, por exemplo, a seguinte regra gramatical: não há SMT para o PI, essa desinência é zero. Sabendo quais são os SNPs, o programa pode deduzir a vogal temática. Assim, os SNPs são fundamentais na distinção desse tempo verbal, uma vez que não há SMT. A ambigüidade nesse tempo é causada pelo desaparecimento da VT em 1S, o qual recebe tratamento especial, como se verá. Outro exemplo de internalização das regras gramaticais é dado pelo pretérito imperfeito do modo subjuntivo para verbos da segunda conjugação: mtnp = "esse;esses;éssemos;ésseis;essem".Split(';'); foreach (string s in mtnp) if (Palavra.EndsWith(s)) res = true; TempoEModo = "PIS"; //Tema Tema = Palavra.Substring(0, Palavra.Length - s.Length) + "e"; Verbo = Tema + "r"; Verbo = Verbo.Replace('á', 'a'); newVerbo = new cVerbo(Verbo, true); newVerbo.Conjugacao = v2; newVerbo.Tema = Tema; newVerbo.TempoEModo = TempoEModo; //Número e pessoa | Modo e tempo if (s == "esse") newVerbo.MT = "sse"; newVerbo.PN = "Ø"; newVerbo.Pessoa = "1S/3S"; else if (s == "esses") newVerbo.PN = "s"; newVerbo.MT = "sse"; newVerbo.Pessoa = "2S"; else if (s == "éssemos") newVerbo.PN = "mos"; newVerbo.MT = "sse"; newVerbo.Pessoa = "1P"; else if (s == "ésseis") newVerbo.PN = "is"; newVerbo.MT = "sse"; newVerbo.Pessoa = "2P"; else if (s == "essem") newVerbo.PN = "m"; newVerbo.MT = "sse"; newVerbo.Pessoa = "3P"; newVerbo.Verbo = falsoInfinitivo(Verbo); newVerbo.Tema += "Ø"; LVerbo.Add(newVerbo); 8 Anais do X Encontro do CELSUL – Círculo de Estudos Linguísticos do Sul UNIOESTE - Universidade Estadual do Oeste do Paraná Cascavel-PR | 24 a 26 de outubro de 2012 | ISSN 2178-7751 O procedimento utilizado é o mesmo do exemplo anterior, pois o sistema usa o mesmo princípio para todas as regras gramaticais. Observe-se que o sistema relata a ambigüidade que há entre 1S e 3S, pois não há SNP, uma vez que, para ambas, essa desinência é zero. Por outro lado, o SMT para o PIS é “sse”, o que faz com esse tempo seja inconfundível, embora haja conflito entre algumas pessoas gramaticais. Não obstante, o contexto, geralmente, trata de desambiguar as pessoas, mediante expressão do pronome subjetivo. Quanto aos verbos ditos irregulares, embora eles constituam uma pequena minoria em relação a todos os verbos existentes na língua, a freqüência com que ocorrem é muito alta, o que lhes dá importância significativa na língua. Os cinco verbos mais utilizados no português atual, segundo pesquisa baseada em córpus, são, na seguinte ordem: “ir”, “ser”, “estar”, “ter” e “ver” (WILKENS e VILLAVICENCIO, 2012). Todos esses verbos têm formas irregulares em seus paradigmas. Um dos problemas acarretados por tais irregularidades é a geração de infinitivos que muito se distanciam das formas corretas. Esse assunto é foco atual do desenvolvimento do analisador morfológico, e cabe apresentar como se está dando seu tratamento. Exemplos desses falsos infinitivos são: tiver para “ter”; ester para “estar”; e vir para “ver”. Uma vez que esses fatos foram constatados durante a sistematização de tais verbos, eles foram imediatamente mapeados e tratados, da maneira como segue. private string falsoInfinitivo(string _falso) string ret = _falso; if (_falso.EndsWith("tiver")) ret = _falso.Replace("tiver", "ter"); if (ret.EndsWith("ester")) ret = ret.Replace("ester", "estar"); if (_falso == "vir") ret = _falso.Replace("vir", "ver"); if (_falso == "der") ret = _falso.Replace("der", "dar"); return ret; Isso também foi feito para as formas irregulares dos verbos “fazer”, “querer”, “dizer”, “caber”, “saber”, “dar” e “haver” que acarretavam esse problema. 3.2 Algoritmos de apoio: resolução de ambiguidades Os casos em que as regras são ambíguas se revelam na resposta do programa, como visto. Isso era de se esperar, pois a reprodução pelo programa das ambigüidades do sistema de verbos do português mostra que seus algoritmos correspondem a este sistema. Cabe documentar aqui as ambigüidades do sistema de verbos do português relacionadas à vogal temática e aos sufixos modo-temporais. 3.2.1 Desambiguação de conjugação por léxico verbal Uma das questões que merecem destaque é o apagamento da vogal temática dos verbos, que ocorre, por exemplo, na 1.ª pessoa do presente do indicativo, nas três conjugações do português: 9 Anais do X Encontro do CELSUL – Círculo de Estudos Linguísticos do Sul UNIOESTE - Universidade Estadual do Oeste do Paraná Cascavel-PR | 24 a 26 de outubro de 2012 | ISSN 2178-7751 As we can see […] the TV of the three conjugations disappears before “o”, which represents the 1S person-number Present Indicative suffix. At this point, a problem emerges: if these forms have lost their TV, how is it possible to rescue their Infinitive forms? The best way we found to rescue the correct Infinitive form was building a program which compared each of the alternatives with the forms registered in the verbal lexicon until one of them matched the only possibility (VASILÉVSKI, SCLIAR-CABRAL e ARAÚJO, 2012, p.17-18).6 Como esclarece a citação anterior, o efeito prático disso é que um verbo conjugado nesse tempo e pessoa pode pertencer a qualquer uma das três conjugações do português, uma vez que o que diferencia as conjugações é a vogal temática, e isso impede que o programa gere a forma infinitiva correta desse verbo. Nesse sentido, a única maneira de resgatar a forma infinitiva correta é comparando-se os três resultados possíveis com o léxico verbal da língua. Assim, criou-se um léxico verbal automático, gerado a partir das ocorrências do córpus. Trata-se de um arquivo que contém apenas as formas infinitivas dos verbos, e serve para comparar os resultados possíveis com as formas constantes no léxico verbal. O algoritmo responsável pela interação resultados-léxico verbal é estruturado da seguinte forma: Figura 3: Dedução da forma verbal infinitiva, a partir da entrada “como”.7 Fonte: VASILÉVSKI, SCLIAR-CABRAL e ARAÚJO, 2012, p.21. Internamente, o programa acessa o arquivo de léxico verbal da seguinte forma: 6 Como se pode notar [...], a VT das três conjugações desaparece antes de “o”, que representa o sufixo númeropessoal de 1S-PI. Nesse ponto, surge um problema: se essas formas perderam suas VTs, como é possível resgatar suas formas verbais infinitivas? A melhor maneira encontrada, até agora, para resgatá-las foi construir um programa que comparasse cada uma das alternativas com as formas registradas no léxico dos verbos da língua, até encontrar aquela que corresponde à única possibilidade (tradução nossa). 7 Go to other EndsWith cases = Vai para outros casos TerminaCom; EndsWith = TerminaCom; Possible results = Resultados possíveis; Add = Adiciona; Replace = Substitui; Lexical comparison = Comparação lexical; Displays result = Mostra resultado (tradução nossa). 10 Anais do X Encontro do CELSUL – Círculo de Estudos Linguísticos do Sul UNIOESTE - Universidade Estadual do Oeste do Paraná Cascavel-PR | 24 a 26 de outubro de 2012 | ISSN 2178-7751 //checa cada palavra na linha selecionada foreach (string s in plvs){ cVerbo cv = new cVerbo(s); // se a palavra é um verbo, aplica regras morfológicas if (!(cv.Verbo == null)){ ... //se Verbar retorna “true”, então, regras morfológicas aplicadas com sucesso if (cv.verbar()){ //checa possíveis resultados, mostra o resultado correto foreach (cVerbo fcv in cv.LVerbo){ //procura o verbo no léxico verbal automático cVerbo VrbCprs = LxcCpr.Find(fcv.Verbo); //mostra o verbo encontrado no léxico verbal if(VrbCprs!=null) { ListViewItem lvi = new ListViewItem(); lvi.Name = VrbCprs.Verbo; lvi.Text = VrbCprs.Verbo; lvi.SubItems.Add(VrbCprs.Tema); lvi.SubItems.Add(VrbCprs.MT); lvi.SubItems.Add(VrbCprs.PN); lvi.SubItems.Add(VrbCprs.PART); lvi.SubItems.Add(VrbCprs.GER); lvi.SubItems.Add(VrbCprs.Tema + "&" + VrbCprs.TempoEModo + "&" + VrbCprs.Pessoa); lvVisMor.Items.Insert(contV, lvi); break; A respeito do léxico verbal automático, cabe esclarecer e reforçar, ainda, que: We instructed the morphological analyzer to create a file which listed each Infinitive generated from the verbs tokens of the corpus, so that they became available for the user to choose. The program excludes the non-matching ones and saves the file. In this way the verb lexicon of the corpus is created. It is up to the user to create the lexicon gradually or all at once. When analyzing a verb form, the program compares the responses generated with the verb lexicon file content, and only shows the alternative that matches it. [...] It is worth remembering that the regular verb lexicon contains only the Infinitive forms of the verbs, nothing else. All morphological rules concerning thematic vowels, tense-mood suffixes, and person-number suffixes and their allomorphs are algorithms belonging to the morphological analyzer (VASILÉVSKI, SCLIAR-CABRAL e ARAÚJO, 2012, p.18).8 Com isso, restaram para resolução raros casos em que há coincidência na forma dos radicais, em que a diferença é dada apenas pela vogal temática das diferentes conjugações, como “falar” e “falir”. Esses casos não ocorrem no córpus de trabalho, mas não devem ser ignorados, uma vez que o programa deve analisar as entradas verbais de qualquer córpus. Assim, é trabalho futuro encontrar, por meio de algoritmos, a solução para tais casos. Pode-se 8 O analisador morfológico foi instruído a criar um arquivo em que há uma lista de cada infinitivo gerado a partir das entradas verbais do córpus, de modo que essa lista fica disponível para edição pelo usuário [que escolherá as formas que existem em português]. O programa exclui os infinitivos não correspondentes e salva o arquivo. Assim o léxico verbal do córpus é criado. É opção do usuário [editor] criar o léxico gradualmente ou todo de uma vez. Ao analisar uma forma verbal, o programa compara as respostas geradas com o arquivo do léxico, e mostra somente a alternativa que faz parte do português. Cabe lembrar que o arquivo do léxico automático somente contém as formas infinitivas dos verbos, nada mais. [...] Todas as regras morfológicas relativas à vogal temática, sufixos modo-temporais e sufixos número-pessoais e a seus alomorfes são algoritmos dentro do analisador morfológico (tradução nossa). 11 Anais do X Encontro do CELSUL – Círculo de Estudos Linguísticos do Sul UNIOESTE - Universidade Estadual do Oeste do Paraná Cascavel-PR | 24 a 26 de outubro de 2012 | ISSN 2178-7751 adiantar que auxiliará a construção do algoritmo de desambiguação dessas formas, se for levado em conta se esses verbos são totalmente regulares ou se têm formas irregulares. Por exemplo, “falar” é totalmente regular, mas “falir” não. Essa distinção será produtiva na programação. 3.2.2 Desambiguação de pessoa gramatical As ambigüidades cuja resolução é complicada são justamente causadas pela ausência de morfemas específicos que distingam formas verbais. Aliás, quando essas formas ocorrem em um texto, nem sempre é claro para o leitor o tempo verbal em que elas estão. Assim, o programa reproduz a ambigüidade do sistema de verbos no que se refere à ausência de sufixo modo-temporal tanto para 1P-PI como para 1P-PPI, em que, por exemplo, para o verbo “concordar”, somente há a forma “concordamos” em ambas as situações. Nesse caso, somente o contexto poderá desambiguar a forma verbal. Quando a ambigüidade ocorre com o modo imperativo, o contexto pode facilitar a desambiguação ou encarregar-se dela. Cabe resumir aqui discussão anteriormente realizada (esta seção baseia-se em VASILÉVSKI e ARAÚJO, 2011), referente a esse tema. As formas imperativas afirmativas normalmente ocorrem no início do enunciado ou logo após um vocativo, ao qual sucede uma vírgula, e ocorrem com a segunda pessoa do discurso, isto é, segunda ou terceira pessoas gramaticais. Elas também ocorrem após “por favor” – que não ocorre no córpus de trabalho – e após outras poucas expressões semelhantes. Os morfemas modo-temporais do imperativo negativo coincidem com os do presente do subjuntivo, no entanto, o imperativo negativo, além de estar no mesmo contexto do imperativo afirmativo, sempre vem acompanhado do advérbio de negação “não”, de modo que se facilita a resolução da ambigüidade pelo contexto. A ambigüidade causada pelo uso das flexões de 3S e 3P para as formas “você” e “vocês” é de resolução mais complicada em algumas situações, contudo, nesses casos, a pessoa gramatical normalmente é expressa no enunciado, de maneira que novamente o contexto facilita a desambiguação. Por exemplo, a forma verbal “mostra”, do enunciado da linha 940 do córpus: 0940: *MOT: depois você mostra@v p(a)r(a) o papai . gerava as duas saídas seguintes, das quais nenhuma era correta, pois o pronome subjetivo expresso na sentença não deixa dúvida de que não se trata de imperativo, mas sim de 2S: Quadro 1: Resposta inicial do programa à entrada “mostra”. (RAD+VT) mostr a mostr a SMT SNP Tema&C&TM&PN Ø Ø mostra&V1&PI&3S Ø Ø mostra&V1&IMA&2S Fonte: Adaptado de VASILÉVSKI e ARAÚJO, 2011, p.115. À forma verbal “mostra” não se agrega morfema modo-temporal nem número-pessoal – ambos são zero. Como diferenciar tempo-modo e pessoa-número, então, se a forma verbal não os expressa? Para resolver esse caso, criou-se uma rotina computacional que verifica o enunciado, à procura das formas “você”, “vocês” e “a_gente”. O pronome “você” ocorre 325 vezes no córpus, e a criança usa-o duas vezes. O pronome “vocês” ocorre 14 vezes, e a criança não o usa. A forma composta “a gente” somente é pronominal se as duas palavras que a compõem estiverem nessa seqüência e 12 Anais do X Encontro do CELSUL – Círculo de Estudos Linguísticos do Sul UNIOESTE - Universidade Estadual do Oeste do Paraná Cascavel-PR | 24 a 26 de outubro de 2012 | ISSN 2178-7751 precederem um verbo, ou precederem a partícula “se” ou um ou mais advérbios antes desse verbo. Para evitar ambigüidade, no córpus, as duas palavras que a compõem aparecem ligadas por “_”. No córpus, que foi coletado no início dos anos 1970, ela aparece 41 vezes, todas nessa situação. Por exemplo: 1402 *INV: a_gente se diverte@v ,, né ? O funcionamento dessa rotina computacional consta, em forma de fluxograma, na Figura 4. Depois dessa complementação, a resposta do programa à situação do Quadro 1 é: mostra&V1&PI&2S. Figura 4: Fluxograma da função que verifica “você”, “vocês” e “a_gente” no enunciado. Fonte: VASILÉVSKI e ARAÚJO, 2011, p.116. Obter tal distinção nem sempre é fácil, apesar disso, a grande maioria dos casos fica resolvida com a verificação do contexto do enunciado. Na rotina computacional demonstrada no fluxograma anterior, foi implementada uma instrução para que seja ignorada a partícula “se” anteposta a um verbo, de forma que o verbo “diverte” do enunciado da linha 1402, do exemplo anterior, é corretamente analisado pelo programa: diverte&V3&PI&1P. A análise completa do programa mostra que, nessa circunstância, SMT e SNP são Ø e que há alomorfia da VT da 3.ªC, que passa de “i” (“divertir”) para “e” (“diverte”). Certamente, há muitas outras ambigüidades, as quais são tratadas conforme aparecem, ou são anotadas para tratamento posterior. Ainda, apesar de parecer simples desenvolver 13 Anais do X Encontro do CELSUL – Círculo de Estudos Linguísticos do Sul UNIOESTE - Universidade Estadual do Oeste do Paraná Cascavel-PR | 24 a 26 de outubro de 2012 | ISSN 2178-7751 soluções para elas, tais soluções, algumas vezes, implicam alterações nas regras gramaticais internalizadas, isto é, na maneira de estruturá-las no programa. Mesmo assim, seu tratamento tem obtido êxito, e cada ambigüidade eliminada aumenta a eficiência do analisador morfológico automático de verbos do português. 4 Considerações finais Esta exposição referenda que o processamento automático das unidades morfológicas do PB dos enunciados do córpus coloca à disposição dos pesquisadores que trabalham com a morfologia do português uma eficiente ferramenta para análises quantitativas e qualitativas. No plano teórico, contribui em nível explicativo para melhor compreensão da construção das gramáticas do PB, particularmente do sistema de verbos, e amplia o entendimento sobre o papel do input na construção de tais gramáticas (SCLIAR-CABRAL, 2008), além de demonstrar a intuição do adulto, ao utilizar um registro adequado ao nível da criança. À medida que a programação avança, revelam-se mais questões a ser tratadas. Assim, a resolução completa das ambigüidades depende de outros fatores, como o reconhecimento das palavras de outras classes gramaticais que circundam o verbo – trabalho que já se iniciou e tem sido realizado com sucesso. Além disso, é pretensão do projeto emparelhar morfologia e fonologia, a fim de resolver, por exemplo, a ambigüidade causada pela harmonia vocálica, que iguala substantivo e verbo conjugado em 1S-PI (“gosto” → /ˈgoS.tu/ e “gosto” → /ˈgɔS.tu/). Essa etapa ainda não foi iniciada, mas estudos teóricos prévios a ela estão em andamento. Como este artigo deixa claro, já estão disponíveis as ferramentas necessárias para cumprir essa tarefa. Referências CÂMARA JR., J. M. Estrutura da língua portuguesa. 16.ed. Petrópolis, RJ: Vozes, 1986. CÂMARA JR., J. M. História e estrutura da língua portuguesa. 2.ed. Rio de Janeiro: Padrão, 1976. COSTA, R. F. S. e SCLIAR-CABRAL, L. Regularização do sistema verbal pela criança. SIMPÓSIO INTERNACIONAL LINGUAGENS E CULTURAS: HOMENAGEM AOS 40 ANOS DOS PROGRAMAS DE PÓS-GRADUAÇÃO EM LINGÜÍSTICA, LITERATURA E INGLÊS DA UFSC (SILC). Anais... Florianópolis, 2011. Disponível em: <http://pos40anos.cce.ufsc.br/?page_id=958>. Acesso em: mar. 2012. MACWHINNEY, B. Child Language Data Exchange System. 2003-2012. Disponível em: <http://childes.psy.cmu.edu/>. Acesso em: ago. 2012. SAID ALI, M. Gramática secundária e Gramática histórica da língua portuguesa. Brasília: Editora da UnB, 1964. SCLIAR-CABRAL, L. Depreensão de uma gramática automática do PB (Plataforma Childes). X CÍRCULO DE ESTUDOS LINGUÍSTICOS DO SUL (CELSUL), Universidade Estadual do Oeste do Paraná, Cascavel, 24 a 26 out. 2012. Anais... 2012. SCLIAR-CABRAL, L. Análise morfológica automática do português. Florianópolis: CAPESUFSC, 2009. SCLIAR-CABRAL, L. Codificação da morfologia do PB e análise da fala dirigida à criança. Fórum Lingüístico, Florianópolis, v.5, n.2, p.69-82, 2008. SCLIAR-CABRAL, L. Princípios do sistema alfabético do português do Brasil. São Paulo: Contexto, 2003. SCLIAR-CABRAL, L.; VASILÉVSKI, V. Análise automática da morfologia verbal do PB: Plataforma CHILDES. Revista da ABRALIN, v.10 eletr. 1ª. parte, n. espec., p.431-444, 2011a. 14 Anais do X Encontro do CELSUL – Círculo de Estudos Linguísticos do Sul UNIOESTE - Universidade Estadual do Oeste do Paraná Cascavel-PR | 24 a 26 de outubro de 2012 | ISSN 2178-7751 SCLIAR-CABRAL, L.; VASILÉVSKI, V. Descrição do português com auxílio de programa computacional de interface. II JORNADA DE DESCRIÇÃO DO PORTUGUÊS (JDP), Cuiabá, Brasil, 2011. Anais... 2011b. VASILÉVSKI, V. Descodificación automática de la lengua escrita de Brasil, basada en reglas fonológicas. Saarbrücken, Alemanha: LAP LAMBERT Acad. Publ. GmbH & Co.KG, 2012. VASILÉVSKI, V. O hífen na separação silábica automática. Revista do Simpósio de Estudos Lingüísticos e Literários - SELL, Uberaba, v.1, n.3, p.657-676, 2011a. VASILÉVSKI, V. Diferenças entre Input e Intake: evidências na aquisição de pronomes interrogativos. SIMPÓSIO INTERNACIONAL LINGUAGENS E CULTURAS: HOMENAGEM AOS 40 ANOS DOS PROGRAMAS DE PÓS-GRADUAÇÃO EM LINGÜÍSTICA, LITERATURA E INGLÊS DA UFSC (SILC). Anais... Florianópolis, 2011b. Disponível em: <http://pos40anos.cce.ufsc.br/?page_id=958>. Acesso em: mar. 2012. VASILÉVSKI, V. Divisão silábica automática de texto escrito baseada em princípios fonológicos. III ENCONTRO DE PÓS-GRADUAÇÃO EM LETRAS DA UFS (ENPOLE). Anais..., São Cristóvão, Sergipe, 2010. VASILÉVSKI, V. Construção de um programa computacional para suporte à pesquisa em fonologia do português do Brasil. 2008. Tese (Doutorado em Lingüística) – Universidade Federal de Santa Catarina, Florianópolis. VASILÉVSKI, V.; ARAÚJO, M. J. Tratamento dos sufixos modo-temporais na depreensão automática da morfologia dos verbos do português. Linguamática, v. 3, n. 2, p.107-118, dez. 2011. VASILÉVSKI, V.; ARAÚJO, M. J. Laça-palavras: sistema eletrônico para descrição do português brasileiro. LAPLE-UFSC: Florianópolis, 2010-2011. Disponível em: <https://sites.google.com/site/sisnhenhem/>. Acesso em: ago. 2012. VASILÉVSKI, V.; SCLIAR-CABRAL, L.; ARAÚJO, M. J. Automatic Analysis of Portuguese Verb Morphology: solving ambiguities caused by thematic vowel allomorphs. THE 10TH INTERNATIONAL CONFERENCE ON THE COMPUTATIONAL PROCESSING OF PORTUGUESE (PROPOR), Coimbra, Portugal. Proceedings of… 2012, p.12-23. WILKENS, R. e VILLAVICENCIO, A. I say have you say tem: profiling verbs in children data in English and Portuguese. EACL – WORKSHOP ON COMPUTATIONAL MODELS OF LANGUAGE ACQUISITION AND LOSS. Association for Computational Linguistics. Avinhão, França, 24 abr. 2012. Proceedings... 2012, p.38-42. 15