Processamento de Linguagem Natural

Processamento de Linguagem Natural

Em muitas das áreas que estudam e empregam o uso de Inteligência Artificial, este é um recurso que vem sendo pouco estudado e empregado devido a diversos problemas e dificuldades que há, não somente na própria tarefa, como na utilização de forma adequada, bem como na relação custo x benefício.
A fim de entendermos do que se trata o processamento de linguagem natural, precisamos inicialmente estudar o que significa compreender, conceito-base para a interpretação de suas funcionalidades.

Definição de Compreensão

A compreensão é o ato de transformar uma forma de representação em outra que seja significativa para o ambiente em questão e que permita o mapeamento para um conjunto de ações apropriadas.
Estamos compreendendo algo quando vemos certa cena e processamos quais os acontecimentos ocorridos na mesma. Da mesma forma, estamos compreendendo algo quando interpretamos o significado de algo lido ou ouvido, tanto para fins de armazenamento da informação, quanto para a tomada de algum tipo de decisão.
Uma grande dificuldade existente na compreensão de uma informação é quanto à forma de representar o objeto a ser compreendido e à interpretação do mesmo.
Por exemplo, dada uma fotografia, como identificar os elementos que devem ser considerados importantes? Como representar tais informações?

Riscos de ambiguidade/má interpretação na compreensão

Rabuske (1995), em sua obra Inteligência Artificial, lembra-nos que há várias possíveis formas de mapear, isto é, de relacionar, objetos e seus possíveis significados. Os mapeamentos mais comuns são:

  • Um-para-um – acontece quando um dado objeto somente admite um único significado. Um exemplo disso seria a expressão matemática a = b*c + d, que possui somente uma forma de ser interpretada;
  • Um-para-vários – ocorre quando um dado objeto admite vários significados, isto é, temos várias possíveis interpretações para uma expressão. Um exemplo poderia ser a frase “eles estão no avião”, que não deixa claro, por exemplo, se o avião encontra-se no chão ou no ar, bem como não descreve o que “eles” estão fazendo no avião;
  • Vários-para-um – ocorre quando vários objetos apresentam um mesmo significado. É o caso de palavras sinônimas, onde várias palavras podem ser definidas como assumindo o mesmo significado ou significado similar.

Quando se fala de Processamento de Linguagem Natural, sabe-se que o mapeamento “um-para-vários” representa um desafio a ser vencido, pois enquanto que cada palavra pode ter mais de um significado, em uma frase as mesmas geralmente admitem somente um possível uso e cabe ao algoritmo identificar qual o correto uso.
O Que é Ruído?

Ruído é qualquer interferência capaz de alterar o objeto a ser compreendido de uma forma indesejada, podendo levar inclusive à incapacidade de compreensão do mesmo.

Geralmente, quando se busca compreender algo primeiro tenta-se eliminar possíveis ruídos. Um ruído pode ser facilmente isolado ou estar tão inserido na mensagem que sua remoção leva inevitavelmente à perda de parte da informação.

O Que é Processamento de Linguagem Natural?

É a compreensão de uma informação falada ou escrita por meio de regras equivalentes àqueles existentes na comunicação lingüística humana.
Os mesmos problemas existentes na compreensão em geral encontram-se aqui, no processamento de linguagem natural (PLN), devendo-se reforçar os cuidados quanto à ambigüidade da informação bem como na interpretação de dados dependentes do contexto.

Aplicações do Processamento da Linguagem Natural

Uma vez que PLN lida diretamente com mensagens possíveis de serem geradas por seres humanos sem grandes dificuldades (desde que estes estejam aptos à fala e/ou escrita em mesma linguagem que a empregada), esse tipo de técnica possui grande utilidade em sistemas que necessitem de grande interação com os usuários.
Um exemplo disso são aplicações de chatting, ou seja, que lidam com conversas com seres humanos. Esse tipo de aplicações geralmente é conhecido como chatbot, chatterbot ou mesmo chatting robot.
Essas aplicações de chatting podem ser usadas de diversas formas, desde um serviço de atendimento ao consumidor automatizado a um sistema de identificação e tratamento de problemas de saúde. E não podemos esquecer da possibilidade de emprego também na educação, por meio de um possível tutor inteligente, por exemplo, e nos jogos, oferecendo um ambiente com maior interação com o jogador.

Fases do Processamento de Linguagem Natural

A fim de compreendermos melhor como se dá o processamento de uma informação textual, tomemos como exemplo a frase “Eu quero imprimir o arquivo .init do Mário”, que deve ser processada e atendida pelo computador. As cinco fases (ou etapas) que o programa deverá executar a fim de atender corretamente são:

Análise Morfológica

Cada palavra é analisada e classificada isoladamente, levando em consideração a sua própria estrutura. Analogamente ao estudo da língua portuguesa, equivaleria a classificar cada palavra segundo sua classificação morfológica (adjetivo, substantivo, verbo, etc).

Palavras cuja estrutura (grafia, por exemplo) estejam incorretas podem ser ignoradas/descartadas neste ponto.

No exemplo dado, deve-se separar cada parte da expressão morfologicamente. A expressão “do Mário”, por exemplo, tornar-se -á preposição “de” mais artigo “o” mais substantivo próprio “Mário”.

“.init” deve ser reconhecido como um adjetivo qualificando a extensão de um arquivo.

Análise Sintática

Analisa-se uma sequência linear de palavras a fim de analisar o seu relacionamento e emprego na frase.Comparando com o estudo da gramática portuguesa, equivaleria a classificar cada expressão segundo seu emprego (análise sintática) na frase, como sujeito, predicado verbal, etc.

Sequências de palavras criadas/organizadas de forma errônea podem ser rejeitadas aqui, como: “Carro o meu azul é”, que apesar de ser correta morfologicamente (cada palavra está escrita corretamente), não satisfaz as regras gramaticais sintáticas.

Abaixo, uma imagem de como seria a árvore da análise sintática para a frase em questão, segundo Elaine Rich & Kevin Knight:

Análise sintática de um texto

Análise sintática do texto "Eu quero imprimir o arquivo .init do Mário"

No processamento sintático (etapa correspondente à transformação da frase plana em estrutura hierárquica das unidades de significado da frase), também conhecido como parsing, geralmente encontramos dois componentes principais:

  • Uma gramática, que é a representação declarativa dos fatos sintáticos da linguagem, isto é, que é capaz de reconhecer e validar todas as regras sintáticas (bem como os elementos morfológicos) da linguagem em questão;
  • Um analisador, que se trata de um procedimento que compara a gramática com as frases de entrada a fim de produzir corretamente as estruturas a serem analisadas.

Análise Semântica

Neste passo, as estruturas criadas pelo analisador sintático recebem significado, mapeando assim cada estrutura sintática a um objeto no domínio da tarefa.

Novamente, caso não seja possível fazer um mapeamento adequado, uma estrutura pode ser descartada. Rich & Knight citam Chomsky, ao exemplificar a construção frasal “Ideias verdes sem cor dormem furiosamente”, que apesar de bem construída sintaticamente, pode ser considerada semanticamente anômala.

Duas coisas devem ser feitas aqui (mais uma vez, segundo Rich & Knight):

  • Mapear palavras isoladas para objetos apropriados na base de conhecimentos ou na base de dados. Este processo é conhecido como processamento léxico e é responsável por identificar o significado de cada palavra em um dicionário, resolvendo problemas de ambiguidade por meio de alguma das técnicas possíveis. Wilks (1972), por exemplo, sugere o emprego da semântica de preferência;
  • Criar estruturas corretas que correspondam ao modo como os significados das palavras isoladas combinam entre sim. Esta etapa é denominada processamento em nível de frase, e várias são as abordagens aqui possíveis, como  gramáticas semânticas, gramáticas de casos, análise conceitual e interpretação semântica aproximadamente conceitual.

Aqui, deve-se ter uma base de conhecimentos suficiente para que possamos associar cada expressão/palavra a fim de determinar o relacionamento entre elas.

Integração de Discurso

Geralmente, o significado de uma frase é melhor compreendido (às vezes, somente pode ser compreendido) a partir da interpretação da mesma junto com todas as frases antecedentes e sucessoras a ela. Esta parte pode ser comparada à interpretação do texto, onde a compreensão do todo é importante para que se possa compreender cada parte.

No exemplo dado, precisamos determinar quem são os usuários “Eu” e “Mário” a fim de saber quem está requisitando e quem é o proprietário do arquivo requisitado. Isso pode ser determinado por meio de análise de frases anteriores, bem como numa verificação do sistema (verificando quais os usuários chamados Mário existem no sistema, por exemplo).

Análise Pragmática

Finalmente, a estrutura frasal é reinterpretada a fim de determinar o que se disse (se uma solicitação, pergunta, afirmação, etc.) a fim de determinar melhor qual deverá ser a reação do programa.

Um exemplo disso seria a frase “Qual é o seu nome?” que deve, ao final, ser interpretada como uma solicitação para que o programa responda com o seu “nome”.

No exemplo dado, a resposta dada será a execução do comando:

lpr /wspires/coisas.init

Onde lpr é o comando para impressão e /wspires/coisas.init é o arquivo .init do Mário.

Bibliografia Sugerida

Quem desejar aprofundar-se no assunto, pode procurar pelos livros:

  • INTELIGÊNCIA ARTIFICIAL, de Renato Antônio Rabuske – possui linguagem bastante didática e de muito fácil compreensão, aconselhando-se então principalmente para início de estudos;
  • INTELIGÊNCIA ARTIFICIAL, de Elaine Rich e Kevin Knight – um pouco mais aprofundado e detalhado, descrevendo muito dos conceitos aqui apresentados. Aliás, este e o anterior foram tomados como referências bibliográficas para a elaboração deste artigo;
  • INTELIGÊNCIA ARTIFICIAL UTILIZANDO LINGUAGEM C – um pouco diferente dos anteriores, este aqui é um pouco mais prático, apresentando algoritmos e código-fonte em C para aqueles que gostam de ver “um pouco mais de perto” como as coisas funcionam.

A obra de Rich & Knight são geralmente muito bem indicadas e deve estar presente em sua leitura!

[Conteúdo pertencente ao Material do curso de Inteligência Artificial]

Share and Enjoy

  • Facebook
  • Twitter
  • Delicious
  • LinkedIn
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS
 

Leave a Reply

Your email address will not be published. Required fields are marked *

Email
Print