Automatizando a Confecção de Exercícios Cláudio C. Gonçalves1 (UnB) Resumo: Este artigo apresenta um software aplicativo cuja finalidade é elaborar automaticamente exercícios gramaticais para uso em ensino de língua estrangeira. Sua implementação usa técnicas de processamento de linguagem fundadas nos pressupostos teóricos da estatística bayesiana, técnicas de linguística de corpus e de aplicativos de busca de dados. O aplicativo busca sentenças em um corpus elaborado a partir de conteúdo de portais da internet, armazena e analisa gramaticalmente o conteúdo linguístico desses portais e organiza-os de acordo com os pontos gramaticais que exibem para depois transformá-los em exercícios. Palavras-chave: aplicativo, língua estrangeira, exercícios gramaticais. Abstract: This article presents an application which automatically elaborates grammatical exercises for use in foreign language education. It uses techniques from statistical natural language processing, corpus linguistics and from search applications. It searches for sentences in a corpus of sentences scraped from selected websites, stores and analyses their contents grammatically. It then organizes its sentences according to their grammatical features and relates them to items in the syllabus to which those features are interesting. The sentences are presented to the learner/user after being transformed into exercises. Palavras-chave: software, foreign language, grammatical exercises. 1 Cláudio C Gonçalves. Professor Doutor Universidade de Brasília Departamento de Letras Estrangeiras e Tradução. [email protected] Universidade Federal de Pernambuco NEHTE / Programa de Pós Graduação em Letras CCTE / Programa de Pós Graduação em Ciências da Computação -1- Introdução Este artigo descreve um software aplicativo cuja finalidade é elaborar automaticamente exercícios gramaticais para uso em ensino de língua estrangeira. Esse aplicativo tem como finalidade servir como um livro de exercícios eletrônico seja para uso durante um curso de língua estrangeira (como livro de tarefa, de exercícios extras ou, em sala, em um quadro interativo, por exemplo), seja para uso independente (por autodidatas etc.). Sua atual implementação só processa sentenças em língua inglesa e, consequentemente, oferece exercícios para aprendizes para língua inglesa. Está prevista a inclusão de suporte para outras línguas seguindo o mesmo modelo em extensões futuras. Entre os fatores que motivaram o empreendimento de elaborar esse gerador automático de exercícios está a constatação que aprendizes motivados de línguas estrangeiras sempre estão interessados em mais oportunidades de interação na língua estrangeira. Uma dessas formas de interação se dá através de exercícios gramaticais. No entanto, a elaboração de tais exercícios demanda planejamento, tempo e dinheiro. Assim, o aprendiz que deseja ter exercícios além daqueles que já adquiriu com seu livro didático frequentemente precisa procurar aqueles que são mais adequados ao seu currículo e incorrer em novos gastos para adquiri-los. Por outro lado, constata-se que a disseminação do uso da rede mundial de computadores tornou público um volume sempre crescente de exemplares de uso de línguas naturais e que, nos últimos 20 anos, o processamento de línguas naturais tem progredido a passos largos. Temos, então, uma condição onde há de um lado o aprendiz com necessidades e de outros recursos brutos (língua em uso) que, mediante atividades de curadoria e tratamento, potencialmente poderiam suprir esse tipo de necessidade. Nasceu da observação dessa condição a pergunta: como seria possível Universidade Federal de Pernambuco NEHTE / Programa de Pós Graduação em Letras CCTE / Programa de Pós Graduação em Ciências da Computação -2- usar os recursos linguísticos disponibilizados pela rede mundial de computadores para suprir aprendizes de língua estrangeira com exercícios? Escolheu-se tentar uma resposta prática e concreta a essa pergunta na forma de: 1. Linguística de corpus e Processamento de linguagem; 2. Tecnologia de busca de dados; para o tratamento e curadoria dos dados da língua em uso e transformação desses dados em exercícios passíveis de correção pelo próprio sistema. O restante do artigo está dividido da seguinte maneira. Na seção ‘Metodologia e Implementação’ descrevemos a arquitetura geral do sistema fazendo paralelo com a arquitetura geral de sistemas de busca de dados (inglês, search engines). Na seção seguinte, apresentamos as diferenças entre os sistema gerador de exercícios e o gerador de exercícios enquanto ilustramos exemplarmente o percurso de processamento de dados linguísticos desde o formato bruto em HTML em um página da web até o formato de exercício. Na seção final, comentamos sobre o potencial do uso de ferramentas nos moldes da que apresentamos e algumas limitações da presente implementação. Metodologia e Implementação Para descrever a arquitetura geral do sistema, vamos partir de uma analogia com o uso de um exercício por um aprendiz de língua estrangeira. Vamos tentar descrever sistematicamente o processo que vai da concepção de um exercício gramatical até sua disponibilização ao aprendiz de língua estrangeira em livro. Ou seja, no esquema “tradicional”, fora do mundo digital. Esse modelo serve como guia para a elaboração da ferramenta geradora para o mundo digital. Primeiro, Podemos dividir o processo de confecção em dois subprocessos menores: aquele de elaboração do exercício e aquele de busca/escolha. Tipicamente, quando se trata de exercícios em livros, a elaboração é feita por Universidade Federal de Pernambuco NEHTE / Programa de Pós Graduação em Letras CCTE / Programa de Pós Graduação em Ciências da Computação -3- autores e a busca e escolha por professores ou pelo próprio aluno. Vejamos cada um deles. O processo da elaboração dos exercícios pode ser desdobrado em quatro fases: seleção 2, análise, organização e transformação de sentenças-fonte. Onde entendemos como sentenças-fonte sentenças que ocorrem em um corpus, passíveis de fornecerem elementos (itens lexicais ou sintagmas) que venham a ser transformados em exercícios. Vista a elaboração, resta a fase de busca e escolha. Em livros didáticos, exercícios são escolhidos também pelos autores que os inserem como atividades em uma unidade do livro, isso trivializa a tarefa de busca e escolha para alunos e professores. O aluno faz os exercícios da unidade em que se encontra. Mas, frequentemente, professores de línguas estrangeiras e/ou os próprios aprendizes escolhem exercícios em outras fontes, por exemplo, no caso do inglês, séries como a English Grammar in Use, Murphy (20XY). É importante observar que, em ambos os casos, a escolha e busca é guiada pelo programa de curso. Ou seja, o motivo pelo qual um autor insere um exercício em uma unidade, o motivo pelo qual um aluno ou professor busca e escolhe um exercício em outra fonte é suscitada por sua pertinência a um ponto do programa pedagógico. Aceitando uma sistematização nos moldes dos processos descritos acima, a elaboração de um aplicativo que entregue os mesmos produtos - exercícios gramaticais - depende de uma maneira de descrever esses mesmos processos algoritmicamente. Na verdade, há tipos de sistemas de uso muito difundido cuja descrição em alto nível é bastante parecida com a descrição que fizemos do processo de disponibilização de exercícios: trata-se dos aplicativos de busca, populares na internet. Por exemplo, aqueles oferecidos por Google, Yahoo e Bing além de muitos outros de menor escala oferecidos por portais de jornais, universidade entre outros. Nesses serviços, o usuário faz uma consulta (query) e o 2 Poderia também ser o caso que a sentença fonte fosse inventada e não escolhida de um repositório de ocorrências. Mas dada a maneira como formulamos o problema, esse caso não nos interessa no momento. Universidade Federal de Pernambuco NEHTE / Programa de Pós Graduação em Letras CCTE / Programa de Pós Graduação em Ciências da Computação -4- sistema devolve documentos relacionados a essa consulta. Para explicitar o paralelo entre o processo de busca e a disponibilização de exercícios, vejamos a arquitetura de um aplicativo de busca genérico. Figura 1: Arquitetura de um aplicativo de buscas genérico Em um aplicativo de busca, tipicamente temos dois lados. Um lado recolhe conteúdo de algum repositório e o armazena. O outro lado tem acesso a esse conteúdo armazenado mediante consultas. O sistema que executa a busca avalia a adequação dos documentos armazenados aos termos da busca efetuada pelo usuário. Para tanto, usa uma métrica de relevância pré-definida. Os resultados são exibidos para o usuário a partir do documento com maior pontuação de relevância em ordem decrescente de pontuação. Vejamos agora, algumas particularidades que um sistema gerador de exercícios teria em relação ao um motor de busca geral. Essas particularidades são resultantes da tentativa de adaptar a arquitetura de motores de busca ao que Universidade Federal de Pernambuco NEHTE / Programa de Pós Graduação em Letras CCTE / Programa de Pós Graduação em Ciências da Computação -5- descrevemos acima chamando de processo “tradicional” de disponibilização de exercícios. Há basicamente três diferenças em relação aos motores de busca tradicionais. Primeiramente, a consulta não é feita pelo usuário final (o/a aprendiz de língua estrangeira) nem tampouco são livres os termos aceitos em consultas. Em segundo lugar, os itens recuperados na busca serão sentenças ao invés de o conteúdo total de um documento. Terceiro, a medida de relevância dos itens recuperados a uma consulta efetuada não leva em conta o número de ocorrências dos termos da consulta em cada um desses itens. Comentamos cada uma dessas diferenças nos parágrafos seguintes. Em serviços gerais de busca, a fase que chamamos de busca e organização tem como escopo o conteúdo total das páginas da rede mundial de computadores (ou algum subconjunto delas). Em um serviço de geração de exercícios, o escopo da busca e organização se restringe ao conteúdo de linguístico de portais selecionados. Em serviços gerais de busca, a consulta é feita por um usuário, por exemplo, digitando alguns termos em um campo de texto como o do Google. No gerador de exercício, a busca não será feita pelo usuário. Ao invés disso, será disponibilizada uma lista de nomes de termos de busca. Esses itens correspondem aos termos de busca aceitos pelo sistema. O usuário pode escolher um desses itens ao que o sistema responderá exibindo o resultado dessa busca, que terá sido feita previamente à requisição do usuário. Note que isso se espelha na busca e escolha do processo “tradicional” de disponibilização de exercícios que descrevemos acima. Lá, ressaltamos que a busca e escolha de exercícios era determinada pela lista de pontos do programa de curso. Além disso, vimos que, em motores de busca genéricos, para se medir a relevância conta-se o número de ocorrências, nos documentos armazenados, dos termos da consulta feita pelo usuário. A disponibilização dos documentos recuperados se dá na ordem decrescente da pontuação obtida nessa métrica. No Universidade Federal de Pernambuco NEHTE / Programa de Pós Graduação em Letras CCTE / Programa de Pós Graduação em Ciências da Computação -6- entanto, a quantidade de ocorrências de uma determinada propriedade gramatical em um documento, ou em uma sentença, não significa necessariamente que ele/ela sejam mais relevantes. Na verdade, em muitos casos pode mesmo ser o contrário: que um número alto de ocorrências torne o documento ou sentença menos relevante. Uma vez que a finalidade de exercícios gramaticais é familiarizar e habituar um aprendiz com alguma propriedade estrutural da língua, parece ser desejável que cada sentença apresentada tenha uma única ocorrência da propriedade em questão para maior clareza e simplicidade. Resta então como métrica de relevância que a propriedade estrutural ocorra da maneira mais próxima à sua descrição efetuada na consulta. A disponibilização de exercícios e a busca de dados na web podem ser vistos agora como diferentes formas de uma mesma tarefa de buscar de dados que, por sua vez, consiste de dois subsistemas, um de busca e organização dos dados propriamente ditos e outro de consultas (queries). O percurso do HTML ao exercício estrutural A seção anterior sugeriu que uma possível resposta à nossa pergunta inicial – como automatizar a confecção de exercícios? – é seguir a arquitetura de motores de busca. Nesta seção vamos mostrar como os componentes de cada um dos subsistemas da arquitetura geral de motores de busca precisam ser adaptados para a tarefa de confeccionar exercícios automaticamente. Universidade Federal de Pernambuco NEHTE / Programa de Pós Graduação em Letras CCTE / Programa de Pós Graduação em Ciências da Computação -7- Figura 2 – Busca para gerador de exercícios Na Figura 2 vemos a arquitetura básica do gerador de exercícios como uma modificação da arquitetura do motor de busca (Figura 1). A diferença mais significativa é que a consulta não tem interface para o usuário, mas para um sistema de regras de busca baseado no conteúdo de um curso. Nos parágrafos seguintes comentamos com um pouco mais de detalhe o que ocorre em cada uma das fases do processamento. A obtenção de conteúdo da web, na implementação atual, funciona visitando (crawling) página de websites copiadas (scraped) por uma ferramenta independente do sistema: HTTrack Website Copier. Efetivamente, o q o HTTrack faz é copiar um site inteiro para dentro de um HD. Esses sites são então armazenados como pastas de arquivos. A fase de estruturação3 do conteúdo começa pela eliminação de HTML, Javascript, conteúdos gráficos, em áudio ou em vídeo de cada página. O objetivo é que cada página seja reduzida a textos em língua natural. Além disso, há também de se excluir ocorrências linguísticas não interessantes, por exemplo, aquelas que se repetem em todas as páginas de um portal, como slogans comerciais. O próximo 3 Nas seções anteriores, por questão do objetivo generalista deste artigo e de espaço, não discutimos a estruturação de dados feita por motores de busca. Ela é muito diferente do que esboçamos aqui para o gerador de exercícios. Os/As interessados/as encontrarão o assunto em detalhes no primeiro capítulo de Manning,Raghavan & Schütze (2008). Universidade Federal de Pernambuco NEHTE / Programa de Pós Graduação em Letras CCTE / Programa de Pós Graduação em Ciências da Computação -8- passo da estruturação é segmentar esses arquivos em sentenças. Embora seja trivial para uma pessoa, essa tarefa exige alguma sofisticação computacional. A fase de análise em um aplicativo gerador de exercícios consiste em analisar linguisticamente as sentenças de cada página. Para se analisar essas sentenças usam-se técnicas de processamento estatístico de línguas naturais. As sentenças são passadas a um anotador de classes gramaticais. Ou seja, um programa que recebe palavras, decide a que classe gramatical pertencem e as associa à (ou as anota com) às respectivas classes. Previamente à sua execução, o anotador é treinado no corpus de Brown. O corpus de Brown é um repositório de textos em inglês cujas sentenças tiveram suas palavras rotuladas com as respectivas classes por pessoas com grau de conhecimentos gramaticais adequados à tarefa. O treinamento do anotador no corpus de Brown consiste na inspeção, pelo programa anotador, de cada rótulo atribuído a cada palavra do corpus de Brown e no armazenamento dessa informação. Ao receber novas sentenças para análise, a cada nova palavra, o anotador consultará a(s) classe(s) gramatical(is) associada a essa palavra no corpus de Brown. Então decidirá por atribuir a anotação mais provável dentre as anotações candidatas4. As sentenças anotadas com classes gramaticais são indexadas para que, quando posteriormente recuperadas, possa ser identificada a página de onde foram extraídas e sua posição no texto a que pertencem. O banco de dados de sentenças anotadas pode agora ser objeto de consulta. Nos parágrafos seguintes descrevemos o processo de consulta em linhas gerais. Como foi dito acima, a consulta do gerador de exercício não é feita por usuários do sistema e está limitada a itens do programa de um curso. Para efetuar essas consulta o gerador de exercícios possui uma lista dos pontos gramaticais dos cursos para os quais serão oferecidos exercícios. 4 Para mais detalhes sobre rotulação de classe gramatical, ver o caoítulo 5 de Bird, Klein & Loper (2009). Universidade Federal de Pernambuco NEHTE / Programa de Pós Graduação em Letras CCTE / Programa de Pós Graduação em Ciências da Computação -9- As buscas devem recuperar sentenças relevantes aos pontos gramaticais dos cursos, para isso, na presente implementação estabeleceu-se uma lista de tipos de termos de busca que devem ser especificados. O primeiro item da lista especifica um critério mínimo que as sentenças devem cumprir para que sejam recuperadas. Os demais itens reduzem esse conjunto de sentenças recuperadas adicionando novos critérios. A lista estabelece uma sequência de buscas. A seguir listamos os principais e explicamos brevemente a função de cada um. Identificação da construção gramatical: A identificação da construção gramatical é feita em duas fases. A primeira tenta reconhecer o tipo de construção buscada pelas palavras que nela ocorrem. A segunda tenta reconhecê-las pelas anotações gramaticais que o gerador deve procurar. É usado o mesmo padrão de anotações usado pelo anotador de classes gramaticais. Contexto sintático: Uma vez encontradas ocorrências de palavras e/ou das classes gramaticais que potencialmente identifiquem o ponto gramatical desejado, a consulta deve verificar o contexto sintático em que essas palavras ocorrem. Isso é feito estabelecendo um padrão de anotação gramatical das palavras que ocorrem à esquerda e à direita da construção gramatical buscada. O contexto sintático também instrui o buscador onde segmentar a sentença recuperada, fazendo que na prática sejam recuperados sintagmas ao invés de sentenças inteiras. Extensão: por motivos práticos, a busca limita também o número de palavras dos sintagmas em que a construção gramatical buscada ocorre. Isso evita sintagmas excessivamente longos que causem problemas de visualização. Exemplo de Funcionamento Nesta seção ilustramos o processo seguido pelo gerador de exercícios com um simples. Suponhamos um curso para iniciantes que aborde, por exemplo, a conjugação do presente do verbo to be. Nossa finalidade é recuperar sentenças que Universidade Federal de Pernambuco NEHTE / Programa de Pós Graduação em Letras CCTE / Programa de Pós Graduação em Ciências da Computação - 10 - possam ser apresentadas para o usuário em forma de exercícios de lacuna para praticar a conjugação desse verbo. Queremos recuperar sentenças em que ocorrem a forma am, are ou is. Em (1) temos um exemplo do que encontramos em páginas web (com a complexidade tanto do HTML quanto língua natural drasticamente simplificada). A partir do acesso ao conteúdo de (1), a tarefa seria limpar o HTML e estruturar o conteúdo em sentenças para a forma que vemos em (2). (1) <html> <p> Mary has a little lamb and it’s cute and cuddly. </p> <p> Mary is a little lamb but doesn’t know about it. </p> <p> Mary saw a little lamb, then she ate it. </p> <p> Mary’s little lamb lives in a farm. </p> </html> Em (2) vemos o conteúdo linguístico da página já separado em sentenças com índices para identificação. Uma vez que o objetivo é encontrar ocorrências de is, o primeiro critério que a sentença tem de cumprir para ser selecionada pelo algoritmo de busca é ter uma ocorrência dessa forma verbal. Isso exclui a sentença s3. Note que, erradamente, a sentença s4 não teria sido excluída nesta fase. Nessa sentença ‘s não é uma contração de is, mas uma marca de genitivo. No entanto não há como o sistema enxergar isso sem análise linguística. (2) [s1]Mary has a little lamb and it’s cute and cuddly. [s2]Mary is a little lamb but doesn’t know about it. [s3]Mary saw a little lamb, then she ate it. [s4]Mary’s little lamb lives in a farm. Universidade Federal de Pernambuco NEHTE / Programa de Pós Graduação em Letras CCTE / Programa de Pós Graduação em Ciências da Computação - 11 - As três sentenças restantes agora são anotadas com as classes gramaticais às quais o anotador treinado no corpus de Brown decidiu que pertencem. No exemplo as abreviações não correspondem àquelas usadas no corpus de Brown. Note que s4 agora pode ser excluída, uma vez que o ‘s foi anotado como genitivo devido ao contexto sintático em que ocorre. (3) [s1] Mary/N has/V3P a/ART little/ADJ lamb/N and/CC it/PPR ’s/V3P cute/ADJ and/CC cuddly/ADJ. [s2] Mary/N is a/ART little/ADJ lamb/N but/CC does/V3P n’t/* know/BV about/PRP it/PPR. [s4] Mary/N ’s/GEN little/ADJ lamb/N lives/V3P in/PRP a/ART farm/N. Restam as sentenças s1 e s2. A especificação de contexto sintático para essa busca especificaria como contexto sintático desejável para ‘s e is a posição entre um elemento pronominal (PPR) ou nominal (N) a esquerda e um elemento adjetival ou um elemento nominal acompanho de um adjetival à direita. (4) [s1] Mary/PN has/HZ a/DT little/ADJ lamb/N and/CC [ it/PPR [’s/ [ [ cute/ADJ] and/CC cuddly/ADJ . [s2] [ Mary/PN is a/DT little/ADJ lamb/N ] but/CC does/DOZ n’t/* know/V about/PRP it/PPR . O resultado final da busca seriam então os sintagmas s1_1 e s2_2. A substituição das formas do verbo be neles encontradas seriam substituídas com base na identificação das formas com aquelas especificadas na busca. Entre os parênteses, estão as respostas que seriam aceitas para cada sintagma. Universidade Federal de Pernambuco NEHTE / Programa de Pós Graduação em Letras CCTE / Programa de Pós Graduação em Ciências da Computação - 12 - (5) [s1_1] it ___ cute (is, ‘s) [s2_1] Mary __ a little lamb (is, ‘s) A busca dos demais tipos de sentenças que iriam compor o ponto gramatical, ou seja aquelas com a demais formas do presente do verbo be, se dariam nos mesmos moldes. Os resultados de cada uma delas seriam misturados para compor sequências de exercícios. Imagens do gerador em funcionamento As figuras seguintes mostram fotos de tela de uma versão do sistema gerador de exercícios que alimenta um portal em fase exeperimental. A figura 3 mostra a página com a lista de pontos gramaticais. Cada uma delas correspondendo a uma busca feita anteriormente. Figura 3: Página com a lista de pontos gramaticais de um curso Universidade Federal de Pernambuco NEHTE / Programa de Pós Graduação em Letras CCTE / Programa de Pós Graduação em Ciências da Computação - 13 - Uma vez escolhido um item da lista, a página exibe uma série de exercícios. Na próxima figura vemos uma série de exercícios que foi corrigida automaticamente. Figura 4: Página com série de exercícios corrigidos Na figura 5 vemos uma nova requisição de exercícios do mesmo ponto gramatical. Note que o exercício errado na série anterior é retornado e que os demais são diferentes dos oferecidos anteriormente. Universidade Federal de Pernambuco NEHTE / Programa de Pós Graduação em Letras CCTE / Programa de Pós Graduação em Ciências da Computação - 14 - Figura 5: Página com nova série de exercícios Conclusão Neste artigo apresentamos um sistema para geração automática de exercícios. Por buscar sentenças-fonte na rede mundial de computadores e usar processamento automático de linguagem, esse sistema pode oferecer uma grande quantidade de exercícios gramaticais suprindo em parte a necessidade de exposição à língua estrangeira que seus aprendizes têm. A principal limitação do sistema no momento é sua limitação a aspectos gramaticais das línguas. Referências BIRD, Steven; KLEIN, Ewan; LOPER, Edward. Natural Language Toolkit. Sebastopol: O’Reilly Media, 2009. MANNING, Christopher; SCHÜTZE, H. Foundations of statistical natural language processing. Cambridge (MA): MIT Press, 1999. Universidade Federal de Pernambuco NEHTE / Programa de Pós Graduação em Letras CCTE / Programa de Pós Graduação em Ciências da Computação - 15 - McCANDLESS, M.; ; Lucene in action. Stamford: Manning, 2010. MURPHY, Raymond. English grammar in use. Cambridge: Cambridge University Press, 2012. PUSTEJOVSKY, James ; AMBER, Stubb. Natural language annotation. Sebastopol: O’Reilly Media, 2012. Universidade Federal de Pernambuco NEHTE / Programa de Pós Graduação em Letras CCTE / Programa de Pós Graduação em Ciências da Computação - 16 -