Ciências Sociais
Arquitectura e Design
Arte e Entretenimento
|
Processamento da Linguagem Natural A linguagem é uma característica humana. Embora os outros animais sejam capazes de comunicar, tanto quanto sabemos nenhum possui uma linguagem (e se algum animal discorda disto, que o diga). Pode parecer antropocentrismo, como se disséssemos “linguagem é definida como sendo a comunicação humana,” mas a nossa linguagem tem de facto características que parecem não surgir na comunicação animal. Em particular, a linguagem é um sistema que consegue ser infinitamente produtivo. Qualquer um de nós consegue produzir uma frase nova, nunca antes dita, e tê-la entendida por outros. Sendo a linguagem uma característica tão humana, as implicações filosóficas de conseguir processá-la com uma máquina a um nível equiparável ao humano seriam imensas. Daí, quando nos referimos ao seu processamento por parte de um computador temos tendência a recorrer ao uso de aspas ao escrevemos coisas como: Queremos fazer com que o computador “entenda” a frase. Há uma experiência conceptual (Gedankenexperiment) famosa sobre este assunto: O Teste de Turing (Turing, 1950)[1]. Resumidamente, o Teste de Turing consiste em deixar uma pessoa entrar em conversação com um computador digital e com uma outra pessoa. Os três participantes estão isolados uns dos outros. Se a primeira pessoa não conseguir distinguir se o seu interlocutor é o computador ou a pessoa, considera-se que o computador passou o teste. Este exercício substitui a pergunta “Pode uma máquina pensar?” pela questão “Pode um computador digital passar o teste?”. A questão original requer que os termos “máquina” e “pensar” sejam definidos, o que já por si é complicado. A reformulação de Turing é mais precisa e, principalmente, providencia um método concreto para o realizar. Há já vários anos que o teste deixou de ser uma experiência meramente conceptual. Anualmente, vários sistemas competem, até agora sem sucesso, tentando serem os primeiros a passa-lo e ganhar o Prémio Loebner[2]. Em meados da década de 50, os investigadores que trabalhavam na recentemente criada área da Inteligência Artificial (IA) sentiam-se optimistas. O computador digital, desenvolvido poucos anos antes, parecia ser uma forma promissora para finalmente conseguir “mecanizar” a racionalidade e conseguir assim simular inteligência humana recorrendo a uma máquina. Na época, um dos ramos da IA mais activo era o Processamento da Linguagem Natural (PLN). O foco principal encontrava-se na tarefa de tradução automática, motivado em grande parte pela necessidade de se ter acesso rápido a documentos russos. Em 1954, com a intenção de assegurar financiamento para a área, a IBM e a Universidade de Georgetown realizaram uma demonstração pública da tecnologia de tradução automática (de russo para inglês). Apesar de o sistema ser bastante simples e de as frases a traduzir estarem restritas a um domínio específico (química orgânica), os resultados foram vistos como sendo bastante promissores, levando muitos a estimar que bastariam apenas mais alguns anos até que um sistema de tradução generalista fosse criado (Hutchins, 2004). (pausa dramática) Estavam errados. Os sistemas da época funcionavam sobre domínios muito limitados. Com tais restrições é possível criar sistemas de PLN que conseguem, de facto, ser bastante impressionantes. Por exemplo, nos finais dos anos 60, Terry Winograd criou o sistema SHRDLU. Este sistema operava sobre um “mundo de blocos”, no qual todas as interacções envolvem um conjunto limitado de objectos (cubos, cones, etc.) e de operações (pegar, mover, etc). A leitura da transcrição de um diálogo com o sistema SHRDLU pode levar-nos a vislumbrar as causas do excesso de optimismo na altura[3]. No entanto, o desempenho dos sistemas de PLN torna-se bastante pior quando aplicados a domínios não-restritos. Existe uma aparente contradição em PLN, e que surge também em muitos outros ramos da IA, como a visão computacional: Os computadores substituíram com grande sucesso os humanos[4] nas tarefas que estes últimos achavam extremamente complicadas, como o cálculo de trajectórias balísticas para mísseis e a criptografia. No entanto, aquilo que é fácil e natural para os humanos tende a ser extremamente difícil de fazer num computador. Entender linguagem é-nos de tal forma natural que nem temos consciência das enormes dificuldades inerentes a essa tarefa. Por exemplo, um dos maiores problemas com que os sistemas computacionais têm que lidar é com a ambiguidade, que surge nos mais diversos níveis do processamento. Quase todas as frases, por mais simples que sejam, possuem um certo grau de ambiguidade. Várias palavras são ambíguas em termos da sua categoria sintáctica (“a” pode ser um artigo definido, uma preposição ou um pronome clítico), e muitas palavras têm mais do que uma acepção, como “banco” (mobília vs. instituição). Mas, para além das palavras, as próprias estruturas sintácticas são ambíguas. No exemplo clássico “O João viu a Maria com o binóculo”, quem tem o binóculo? As primeiras abordagens ao PLN eram baseadas em regras. Por exemplo, um linguista, usando o seu conhecimento da língua, criava manualmente um conjunto de regras (uma gramática). Esta gramática era então usada por um computador para analisar frases. No entanto, perante uma situação ambígua, e não tendo qualquer razão para preferir uma alternativa à outra, o computador teria que considerar todas as análises possíveis. O potencial para ambiguidade tende a aumentar à medida que novas regras são acrescentadas à gramática para que esta lide com mais fenómenos linguísticos. Uma gramática computacional “a sério”, perante uma frase de tamanho médio (cerca de 20 palavras), pode muito bem produzir milhares de análises diferentes, todas elas gramaticalmente válidas. Parece óbvio, no entanto, que o nosso cérebro não gera todas as análises possíveis cada vez que ouvimos uma frase. De alguma forma, conseguimos constantemente filtrar hipóteses e escolher a análise mais plausível[5]. De alguma forma, conseguimos estar constantemente a integrar conhecimento do mundo real e senso comum para filtrar as análises implausíveis (se bem que gramaticalmente correctas). No exemplo anterior, a maioria das pessoas optará provavelmente pela leitura em que é o João quem tem os binóculos. Mas, para a frase “O João viu a Maria com as flores,” a outra leitura seria a preferencial pois, como é óbvio, não se podem usar flores para ver. Este facto não é de forma alguma “óbvio” para um computador, e a representação de senso comum tem sido um dos entraves à IA. As abordagens estatísticas (Manning & Schütze, 1999) ao PLN visam lidar com o problema da ambiguidade. Estas abordagens permitem, por exemplo, produzir a análise mais plausível de uma frase. Para decidir o que é plausível ou não, recolhem dados estatísticos de uma grande quantidade de textos[6]. Por essa razão, só começaram a ser usados extensivamente quando o aumento do poder computacional e a existência de textos em formato digital permitiu realizar tal recolha. A desvantagem destas abordagens é que as análises produzidas tendem a ser menos ricas (em termos da informação linguística que contêm) do que as análises produzidas por uma gramática construída manualmente. Uma solução natural parece então ser combinar os pontos fortes de ambas as abordagens. De facto, é esse o caminho que muitos investigadores estão a tomar: Combinar gramáticas construídas manualmente com um critério estatístico para, por exemplo, escolher a análise mais provável de entre todas as que são produzidas. Os sistemas mais avançados actuais ainda não conseguem passar o Teste de Turing, mas também não estão a tentar fazê-lo. Não temos ainda o HAL 9000, mas nenhum sistema está a tentar sê-lo. O facto de muitas das expectativas e promessas iniciais não terem sido cumpridas pode ter criado uma sensação de que PLN, de alguma forma, falhou, quando tal não é verdade. A tecnologia de PLN está presente em muitas aplicações, mas tal como muitas outras tecnologias, a sua ubiquidade torna-a quase imperceptível para quem a usa. O corrector ortográfico no processador de texto e o motor de busca que retorna documentos relevantes da Web são talvez os exemplos mais familiares, mas são também aqueles que tiram menos partido de algum tipo de PLN. Exemplos mais interessantes serão os sistemas de tradução automática, sendo um dos mais famosos o Google Translate, uma abordagem estatística à tradução que tira partido do acesso privilegiado que o Google tem a imensos dados multilingue. Um projecto recente, e potencialmente interessante para os leitores desta revista, é a iniciativa CLARIN[7]. A ideia deste projecto é criar uma infra-estrutura de recursos e ferramentas para a investigação na área de Humanidades. Tomemos como exemplo um historiador que deseja analisar documentos sobre o 25 de Abril, e como este foi relatado nos jornais portugueses e estrangeiros. Terá que começar por achar os documentos, que podem estar espalhados por diversos repositórios e em diferentes formatos (texto, digitalizações, registos audiovisuais, etc). Só este primeiro passo já é problemático, pois com a explosão do número de fontes, e em especial com a Web, chegámos a um ponto onde é possível achar demasiada informação. Os dados relevantes perdem-se entre a redundância e o ruído. Conseguindo achar os documentos, há que extrair a informação relevantes contida deles. As digitalizações podem requerer um processo de OCR (Optical Character Recognition) e os registos audiovisuais um processo de transcrição. Se os documentos estiverem em diferentes línguas, pode ser necessário traduzi-los ou, se forem demasiado longos, sumarizá-los. Embora existam ferramentas para cada uma destas tarefas, estas encontram-se espalhadas, e terá que ser o utilizador a obter cada uma, configurá-las, corrê-las sobre os dados, etc[8]. Depois disto, pode então “começar” a trabalhar. Com a infra-estrutura CLARIN montada, o nosso hipotético historiador faria uma busca do género “Referências ao 25 de Abril na imprensa europeia”. Um sistema de PLN processaria a questão e remeteria o pedido para um sistema de busca multilingue que acharia os documentos relevantes. Se o utilizador assim o desejasse, os documentos poderiam ser automaticamente traduzidos ou sumarizados. Podem parecer expectativas elevadas, como as dos anos 50, mas neste caso sabemos que as ferramentas para desempenhar estas tarefas existem. No entanto, encontram-se espalhadas por diferentes grupos de investigação em PLN. O projecto CLARIN visa então integrar os recursos e ferramentas já existentes. |
|||
|
||||
|
Share | © PROJECTO10 - 2010 . PROJECTO10 - Revista Digital Temática - 10 Números 10 Temas. |
||||