Esta entrevista integra uma série de entrevistas com profissionais de diferentes áreas que atuam em projetos de digitalização. Buscamos nas conversas tentar explorar as especificidades de cada parte envolvida no processo de trabalho. São bibliotecários/as, programadores/as, linguistas, acadêmicos/as e gerentes de projeto.
Conversaremos com Maria Clara Paixão, professora do Departamento de Letras Clássicas e Vernáculas da FFLCH-USP desde agosto de 2008 e colaboradora do programa de pós-graduação do Instituto de Estudos da Linguagem da Universidade Estadual de Campinas (IEL-Unicamp) desde 2005. Sua área de pesquisa central é a Teoria e Análise Lingüística, com ênfase em estudos da Mudança Gramatical. Estuda as alterações da língua portuguesa entre 1400 e 1600 com o objetivo de compreender a mudança linguística que origina o Português Brasileiro. Participa também de projetos voltados à digitalização de textos antigos e ao campo do processamento automático da linguagem, âmbitos relevantes para a vertente documental e metodológica das pequisas históricas. Ela coordena a equipe de pesquisa de OCR da Biblioteca Brasiliana Digital.
Nessa entrevista, buscamos indagar sobre a importância da linguística na digitalização de textos, em especial no uso de tecnologias de digitalização de textos e OCR (Optical Character Recognition, ou Reconhecimento ótico de caracteres). Atualmente, as tecnologias de processamento digital de textos, ao contrário do que o nome poderia dar a entender, utilizam também em larga escala elementos linguísticos, como por exemplo os através de dicionários (listas de palavras). Tais elementos linguísticos, combinados com o reconhecimento de glifos produzem níveis muito elevados de acerto. Mas justamente devido ao fato de se basearem em nesses critérios linguísticos que alguns problemas criam novas barreiras: são baseadas em regras de uma ou outra língua, sem considerar as variações de cada idioma. Além disso, há a questão das variações a que uma mesma língua está sujeita ao longo do tempo, como no caso dos textos dos séculos XVI e XVII. Pedimos também que fossem relatadas questões relativas aos softwares de reconhecimento e suas tarefas de treinamento.
Maria Clara Paixão
Para compreendermos a relação entre a linguística e a digitalização de acervos é preciso antes pensarmos: o que é “digitalização”, afinal? Para nossa pequena discussão, podemos trabalhar com uma definição bem simplificada: “digitalizar” é transformar informação não-digital em informação digital. Vamos pegar então o exemplo da digitalização de informação sob forma de imagens: nesses casos, a “digitalização” envolve dois passos básicos: a captura da informação original (por exemplo, por meio de uma câmara digital ou scanner) e sua tradução em informação digital. O primeiro passo consiste na aplicação de uma programação matemática para reconhecer informações visuais (linhas, pontos, cores…) e o segundo passo consiste na aplicação de uma programação que “traduza” essas informações visuais em informações matemáticas (ou seja, códigos armazenáveis e legíveis por máquinas). No caso das imagens, esses dois passos são tão simples que parecem ser um só: uma mesma tecnologia está envolvida na captura e transformação da informação.
No caso da informação em forma de texto, a transformação da informação envolve um passo adicional que é bastante complexo, e remete diretamente ao problema do processamento artificial da linguagem. Para entender isso vamos voltar à digitalização de imagens, procurando observar até que ponto a digitalização de um texto se assemelha à digitalização de uma imagem: na etapa da captura, o processo é o mesmo (ou seja, há uma programação que reconhece informações visuais – as “letras” de um texto, neste ponto tomadas como elementos gráficos desprovidos de sentido); e num primeiro momento da etapa de transformação da informação, o processo é também ainda o mesmo (ou seja, há uma outra programação, que traduz essas informações visuais em informações matemáticas). Pois bem: notemos que até este ponto a “digitalização” de um texto funciona exatamente como a digitalização de uma imagem. Na prática: todo texto “digitalizado”, em algum momento da sua vida, é uma imagem digital (um arquivo Jpeg, PNG, etc.).
Entretanto – e aqui entra a singularidade da digitalização dos textos – um arquivo com a imagem de um texto não é, propriamente, um texto digital. Ou seja, um arquivo Jpeg (por exemplo) que resulta da primeira captura de um scanner sobre uma página escrita de um livro não é nada mais que uma fotografia digital de uma página de livro – e naturalmente, só pode ser reconhecida como um “texto” por um leitor humano. Do ponto de vista computacional – ou seja: para fins de processamento automático – este objeto “imagem de uma página” tem exatamente o mesmo estatuto do objeto “imagem de uma cesta de frutas”.
Para podermos considerar um texto como “texto digital”, ele deve consistir em informações matematicamente codificadas como texto – basicamente, ele deve consistir em uma sequência de símbolos denominados caracteres. Os caracteres são unidades mínimas de significação em um texto: são os elementos que permitem, indiretamente, que a correspondência entre som e sentido seja estabelecida na leitura dos textos.
Então vamos voltar àquele objeto do nosso exemplo, uma fotografia digital da página de um livro. Este objeto contém caracteres? Sim, do ponto de vista humano: a um leitor humano alfabetizado, basta olhar a página para reconhecer as sequências de caracteres, por exemplo, “l-e-t-r-a-s”. Como o leitor humano faz isso? Associando determinadas imagens com determinado sentido (por exemplo, no caso da escrita alfabética, as unidades de imagem se associam a unidades de sons). O leitor humano, portanto, consegue reconhecer os desenhos das letras como símbolos, bastando para isso que ele receba informações de natureza visual. O computador não sabe fazer isso. No processamento artificial, para que as unidades sejam reconhecidas como caracteres (i.e., como símbolos), elas precisam estar codificadas artificialmente como símbolos. Isso significa que num texto digital, as sequências de caracteres estão codificadas de acordo com padrões previamente estabelecidos, ou seja, de acordo com tabelas de correspondência entre glifos (i.e., o “desenho” dos caracteres) e grafemas (i.e., as unidades mínimas dos sistemas de escrita – no nosso caso, os símbolos alfabéticos). É isso que os padrões como ASCII (American Standard Code for Information Interchang) ou UTF (Unicode Transformation Format) fazem: estabelecem correspondências entre códigos numéricos e glifos. Por exemplo, a codificação da sequência “letras”, em UTF, seria algo como: 006C – 0065 – 0074 – 0061- 0073.
Vimos, então, que para um objeto digital poder ser classificado efetivamente como um “texto digital”, ele precisa estar codificado como sequências de caracteres. Agora podemos entender aquele passo específico do processo de digitalização dos textos, que o distingue dos demais processos: em alguma etapa da transformação de um texto não-digital em um texto digital, será necessário que as informações visuais sejam codificadas como sequências numéricas que simbolizam caracteres. No nosso pequeno exemplo: em alguma etapa, a sequência “letras” vai precisar ser transformada em “006C – 0065 – 0074 – 0061- 0073.”
Essa transformação pode se dar de duas maneiras básicas. A primeira é manual e natural: um leitor humano capacitado pode simplesmente ler o texto original e “digitá-lo”, ou seja, reescrevê-lo num processador de texto qualquer – obtendo assim como resultado um texto digital (i.e., matematicamente codificado e processável). Essa técnica manual de transformação da informação visual em informação digital é usada em muitos repositórios digitais (o maior exemplo disso seria o Projeto Guttemberg). Trata-se, entretanto, de uma técnica altamente dispendiosa em termos de tempo e recursos humanos. E, a rigor, não se trata de uma tecnologia de digitalização – o texto criado pela digitação é justamente isto, um texto criado por digitação, e não o resultado de um tratamento computacional.
A segunda maneira de se transformar informações não-digitais em informações digitais é a utilização de programas de reconhecimento automático de caracteres – ou seja, programas capazes de reconhecer nos textos os símbolos de escrita e transformá-los em símbolos matematicamente codificados. É o que fazem os famosos programas de “OCR”, ou seja, de reconhecimento óptico de caracteres (Optical Character Recognition, em inglês).
Como resultado do processamento via digitação manual ou via reconhecimento automático, um texto se transforma efetivamente em “texto digital” – ou seja, em informação artificialmente processável. Agora este “texto” pode sofrer os mais variados tratamentos automáticos, incluindo aquele que é a finalidade básica do processamento de textos em repositórios digitais: a extração automática de informações. O texto, agora, pode ser percorrido por programações de busca, que num plano básico, funcionam de maneira a encontrar equivalências entre os códigos de caracteres da entrada e os códigos da saída (assim, uma busca por “letras” é na realidade uma busca por “006C – 0065 – 0074 – 0061- 0073”.
Bem, até este momento ainda não falamos da linguística. Vamos então atacar a questão original: Qual a importância da linguística na digitalização de acervos de textos? Agora podemos responder isso melhor, observando que a operação fundamental envolvida na “digitalização” de textos – ou seja, a transformação de informação naturais em informação artificial – é uma operação de processamento de linguagem. Qualquer programação que consiga reconhecer as “palavras” num texto e transformá-las em informações matematicamente codificadas envolve, em maior ou menor grau, o processamento artificial da linguagem. É interessante notar, neste ponto, que os programas mais antigos de reconhecimento de caracteres envolviam um grau muito baixo de inteligência linguística artificial – os programas originalmente desenvolvidos na década de 1950, de fato, procuravam apreender as informações dos textos muito mais como informações gráficas que propriamente linguísticas (daí herdamos o nome-padrão dos programas de reconhecimento, “OCR”, com o “O” de “Óptico” – embora hoje o elemento óptico propriamente dito seja já marginal nessas tecnologias). Naqueles primeiros programas, o fundamento do reconhecimento era efetivamente a natureza gráfica dos glifos. Nos programas mais modernos, a apreensão da informação visual é balizada pela aplicação de informações linguísticas. Por exemplo, os programas contemporâneos trabalham com dicionários (na realidade, listas de palavras) embutidos para cada língua, que permitem um reconhecimento muito mais eficiente do que os antigos, fundados isoladamente na aparência dos glifos. A pesquisa de ponta nesta área hoje contempla a inclusão de informações linguísticas ainda mais precisas, tais como regras de formação de palavras em cada língua, entre outros.
Hoje, portanto, os bons programas de reconhecimento de caracteres são os que combinam boas programações de reconhecimento de imagens com boas programações de processamento automático da linguagem. Entre eles está o programa que usamos na Brasiliana Digital, da família Abbyy Finereader ©. Entretanto, aí entra a segunda parte do problema. Como os programas atuais são fundados em informações linguísticas específicas para cada língua a ser reconhecida (como mencionamos, por exemplo, listas de palavras, regras morfológicas), surge a questão da dependência dos programas a uma língua particular em que será aplicado. Os programas funcionam melhor, naturalmente, para as línguas diante das quais foram treinados e aperfeiçoados. Isso significa que um programa de reconhecimento pode ser excelente para o Inglês contemporâneo (por exemplo), mas bem menos eficiente para textos em outras línguas. Isso já é um problema para o trabalho com reconhecimento de caracteres em textos em língua portuguesa em geral – mas se torna um problema ainda maior para o trabalho com reconhecimento de caracteres em textos mais antigos da língua portuguesa, como é o caso de muitos dos itens do acervo na Brasiliana Digital.
Atualmente, temos uma equipe de pesquisadores investigando caminhos para o aperfeiçoamento do programa Abbyy Finereader 10.0 ©, com vistas a torná-lo mais eficiente no reconhecimento de caracteres nestes textos portugueses mais antigos. Esse trabalho tem duas frentes principais: a primeira é o treinamento do programa para o reconhecimento dos caracteres mais antigos, hoje em desuso. Exemplo disso seria o chamado “s longo” ou “carolíngeo”, “ſ”, muito frequente nos impressos dos séculos XVI e XVII, ou o problema do uso de diacríticos, como o til, sobre caracteres que hoje já não o suportam, como “ũ”. Existem códigos para quase todos estes caracteres nas tabelas do UTF, mas os programas de OCR não conseguem associar esses glifos a seus códigos, pois não foram treinados para isso. Então, por exemplo, codificam o “ſ” como um “f”, que seria a forma mais próxima, no inventário a que o programa está acostumado (com isso, uma palavra como “aſim” – modernamente, “assim” – é reconhecida como “afim”).
Uma segunda frente é a formação de um “banco de palavras” do português dos séculos XVI a XIX, a ser embutido na programação do OCR. Isso é particularmente importante, porque a língua portuguesa escrita nesta época apresenta a característica de uma variação extremamente ampla (e em boa medida idiossincrática) na grafia das palavras. Para os programas artificiais, é bastante difícil lidar com esse tipo de variação (de modo que, naturalmente, cada grafia diferente de uma palavra constitui uma nova palavra para o programa). No momento temos já uma lista de cerca de 140.000 itens, e a lista irá crescer bastante até o final do semestre.
Com isso, estamos prevendo que a taxa de acertos irá subir consideravelmente. Até este ponto, com três meses de treinamento, o reconhecimento melhorou bastante, chegando a uma taxa aceitável em alguns textos (baixando de 23% de erros para 2% de erros), mas ainda está inadequado em outros textos (passando de 22% para 6% de erros).
Este primeiro experimento com reconhecimento automático de caracteres na Brasiliana Digital pode apontar já alguns caminhos para o futuro das pesquisas nesta área dentro do projeto, que idealmente poderiam ser discutidos em âmbitos maiores de formação de acervos digitais. Vamos primeiro avaliar os aspectos negativos do experimento – podemos reconhecer dois problemas principais. O primeiro deles é a natureza do programa de reconhecimento que estamos usando, o Abby Finereader 10 ©, que é um software proprietário. Essa característica acarreta o problema fundamental da difusão futura dos progressos que venhamos a obter com os experimentos na Brasiliana: não poderemos, como seria ideal, transferir esta tecnologia a outros grupos de pesquisa, a não ser que eles viessem a adquirir o mesmo programa – ficando a transferência, assim, contingenciada às possibilidades orçamentárias de cada grupo. Uma das nossas vertentes futuras neste sentido deverá ser, portanto, a investigação sobre caminhos para a democratização e difusão desta experiência. A importância disso fica mais evidente quando consideramos o segundo aspecto problemático do experimento: ele é bastante dispendioso em termos de tempo e recursos humanos. Podemos avaliar que este investimento de recursos só tem sentido se a experiência puder ser multiplicada por outros grupos dedicados à digitalização de textos em português, antigos ou contemporâneos. Se essa difusão se tornar possível, creio que teremos cumprido melhor nossos objetivos de pesquisa no grupo.
Agora lembramos os aspectos positivos da experiência: o mais imediato deles é que, caso o sucesso do treinamento continue a crescer como vem crescendo, em breve teremos condições de oferecer aos leitores da Brasiliana Digital textos efetivamente processáveis por buscas automáticas (das mais simples às mais estruturadas). Com o resultado “limpo” das digitalizações, combinado com o recurso do banco de palavras em variação, o universo de pesquisas possível em torno dos textos do acervo é imenso. Por exemplo, um historiador poderá consultar rapidamente todas as obras em que determinado personagem da história é citado (independente, por exemplo, de seu nome aparecer no texto como “D. João IV”, “Dom Ioam iv”, “dom ioaõ iiii”,… etc.). Se, além disso, implementarmos sistemas de anotação linguística minimamente sofisticados aos textos, será possível, por exemplo, criar automaticamente um índice onomástico de cada texto e do acervo inteiro – pois é possível codificarmos automaticamente todas as palavras e expressões que designam nomes próprios. A criação de um dicionário onomástico é apenas um exemplo – como dito, as possibilidades para pesquisa serão imensas num acervo desta natureza com textos efetivamente processáveis, limpos e linguisticamente anotados.
Podemos vislumbrar, neste último aspecto, a importância desse tipo de tecnologias para a consolidação de políticas públicas para acervos digitais. A possibilidade de processamento automático efetivo pode elevar o a utilidade do acervo para a comunidade de leitores em geral, e para a pesquisa acadêmica em particular – pensemos, neste ponto, nas possibilidades de buscas automáticas simples e estruturadas, que já mencionamos acima. Mas a codificação linguística dos textos, da forma como está sendo realizada nos nossos primeiros experimentos na Brasiliana Digital, tem ainda um resultado paralelo interessante: ela possibilita que versões modernizadas de cada texto sejam colocadas à disposição dos leitores. Isso pode significar uma contribuição para o aumento do alcance do acervo – pois a leitura dos textos mais antigos pode ser adaptada de modo a ser acessível a um público não especializado, mas interessado na leitura dos textos mais antigos. Nesse sentido a pesquisa linguística e seu fruto mais palpável – os textos limpos e processáveis – pode ter impactos na própria democratização do Acervo, o que seria um resultado altamente desejável.
Tags: abbyy, linguística, ocr, reconhecimento de caracteres