processamento de linguagem natural - …homes.dcc.ufba.br/~leotavo/index.html/artigo2.pdf ·...

4
UNIVERSIDADE FEDERAL DA BAHIA DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO INTELIGÊNCIA ARTIFICIAL PROCESSAMENTO DE LINGUAGEM NATURAL Danilo Martins, Karina Kataoka e Leonardo Trindade {lilobmm, karikataoka, leotavo}@gmail.com Salvador, Bahia, Julho de 2010. 1. Introdução O que vem à cabeça quando se ouve falar em robôs? À muitos vem a imagem daqueles robôs de desenho animado ou dos filmes de ficção científica onde os humanos conversavam e interagiam com eles e eles com os humanos. Eles entendiam cada palavra dita pelo homem e respondiam facilmente à qualquer pergunta. E como eles conseguiam essa tal interação, se para o próprio homem o aprendizado da linguagem é gradual e complexo? Como os robôs tinham todo esse conhecimento da linguagem humana? Claro que eram filmes de ficção científica, porque para um robô compreender e processar essa linguagem não é tão fácil como parece. Os estudos para entender a mente (intelecto, pensamento, entendimento) e a inteligência (aprendizado, compreensão, percepção) humana é tão complexo que existe uma ciência voltada só para isso e que abrange não só a neurociência como também a psicologia, filosofia, inteligência artificial e a linguística. [CHIORO] Esta é a Ciência Cognitiva, é ela quem tenta entender, descrever e explicar as principais capacidades de cognição humana: a linguagem, o raciocínio, a percepção, a coordenação motora, etc. E usa como método para escrever programas que reproduzam essas capacidades cognitivas humana procurando elaborar uma réplica da inteligência destes. O resultado desses estudos em conjunto com outras áreas da inteligência artificial, como as redes neurais, leva a uma outra área da IA, a área de pesquisa ligada ao Processamento de Linguagem Natural, o tema deste artigo. 2. Histórico O desejo pela interação entre o homem e a máquina vem desde os primórdios do computador. Quando no fim da Segunda Guerra Mundial, e com o início da Guerra Fria, os americanos tiveram o interesse em traduzir automaticamente informações soviéticas da maneira mais rápida possível. E foram com calculadoras científicas que continham dados suficientes para traduzir palavra por palavra que o inglês Booth e o americano Warren Weaver, iniciaram os estudos pela tradução automática. Mas essas calculadoras não consideravam as questões linguísticas, como a sintaxe ou morfologia, apenas faziam a tradução de palavras-chave do inglês para o russo. [ALFARO] Em 1948 o inglês Richens introduziu, nesse programa desenvolvido por Booth e Weaver, informações relativas à análise gramatical da lingua russa. Além de proporcionar ao leitor informações mais precisas sobre a função da palavra na sentença, esse processo causou a diminuição de entradas no dicionário, o que acelerou a consulta automática.[ALFARO] Já em 1954, na Universidade de Georgetown, foi realizada uma experiência de tradução automática, a primeira até então, do russo para o inglês usando um computador como processador - ao invés das calculadoras científicas. O vocabulário continha 250 palavras e seis regras sintáticas. Nos anos 60, segundo [OLIVEIRA], os computadores já possuíam a habilidade de aceitar e responder questões em inglês relacionadas a vários assuntos - álgebra, medicina, relações de parentesco, entre outras, e podiam conduzir uma pesquisa psiquiátrica, a nível rudimentar, em inglês e alemão. Esse novo grupo de programas marcou o início do trabalho, em Inteligência Artificial, sobre o entendimento da linguagem natural. [MIRANDA] Em 1966, no Massachusetts Institute of Technology (MIT), o cientista da computação Joseph Weizenbaum criou o ELIZA, um programa pequeno e simples, usando técnicas de Inteligência Artificial que simulava o diálogo entre um paciente e psicólogo, utilizando as próprias frases do paciente para formular novas perguntas. ELIZA é considerada uma das primeiras "máquinas pensantes". ELIZA não entendia sobre psicologia, ela apenas fazia a análise semântica das frases dita pelo paciente e respondia de acordo com o seu banco de dados. 3. Processamento de Linguagem Natural (PLN) Como em toda linguagem o sistema de processamento de linguagem natural necessita conhecer e manter informações morfológicas, sintáticas, semânticas e um conjunto de palavras suportadas por tal linguagem. Normalmente os computadores estão aptos a compreender instruções escritas em linguagens de computação como Java, C, Pascal, etc., mas requerem mais aprofundamento quando se trata da linguagem humana. Isso se deve ao fato de que as linguagens de computação são precisas, com regras fixas e estruturas lógicas bem definidas, que permitem ao computador saber como proceder a cada comando. Já na linguagem natural uma simples frase normalmente contém ambiguidades e interpretações que dependem do contexto, do conhecimento do mundo, de regras gramaticais, culturais e de conceitos abstratos. Os níveis de entendimento da linguagem natural são os seguintes: . Fonético: relacionamento das palavras com os sons da língua do ponto de vista da articulação e da recepção auditiva; · Morfológico: construção das palavras a partir unidades de significado primitivas e de como classificá-las em categorias morfológicas; · Sintático: relacionamento das palavras entre si, cada uma com o seu papel estrutural nas frases, a construção de frases; · Semântico: relacionamento das palavras com seus significados e de como eles são compostos para que a frase tornem-se compreensíveis; · Pragmático: uso de frases e sentenças em diferentes contextos, afetando o significado. A maioria do sistemas que processam a linguagem natural não atendem a todos esses itens, por sua dificuldade na implementação completa e correta. Trataremos nesse artigo os níveis relacionados à fonética, com o reconhecimento de voz, ao morfológico, sintático, semântico e pragmático com a análise textual. 4. Reconhecimento e Síntese de Voz Desde cedo, o reconhecimento de voz na computação tem sido um assunto de ficção científica. Quem não se lembra de Mister Spok em "Jornadas nas Estrelas" dando comandos para o computador em voz alta. Ou do computador HAL, personagem fictício imortalizado na adaptação pro cinema da série "Uma Odisséia no Espaço", de 1968, capaz de falar naturalmente, reconhecer a voz humana, e ainda fazer leitura labial. Nas pesquisas, ainda não chegou-se a esse ponto, mas houve uma grande evolução nos últimos anos no desenvolvimento de aplicações para reconhecimento de voz, e com certeza, há ainda muito que evoluir. [LINGUATEC, 2001] [WOOD, 2000] Os sistemas existentes hoje em dia funcionam como uma espécie de memorizadores de palavras. Estes associam frases ou palavras pré-determinadas em suas bases de dados, faladas por determinada pessoa, a uma certa ação também pré-estabelecida. [WOOD, 2000]. Esse tipo de técnica possui grande utilidade em sistemas que necessitem de grande interação com os usuários. Aplicações estas, geralmente conhecidas como chatbot ou ainda 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 sem deixar de mencionar a possibilidade do emprego delas na educação, por meio de um possível tutor inteligente. Entre outras aplicações mais comuns temos também aquelas utilizadas em sistemas de segurança, que utilizam o reconhecimento de voz de uma pessoa específica para controle de acesso, levando em consideração o timbre, entonação entre outras características. [Barton] Apesar de parecer simples, reconhecer a voz humana não requer apenas um bom conhecimento computacional ou algorítimico, mas também de Fonética, Linguística, Reconhecimento de Padrões, e outras áreas da IA. [linguatec, 2001] 4.1. Breve Histórico: Final da década de 1950: Primeiras pesquisas tecnológicas para o reconhecimento de voz. 1964: IBM apresenta um sintetizador de voz para a fala de dígitos. 1978: A Texas Instruments lançou o primeiro chip dedicado à síntese de voz. 1984: IBM desenvolve um sistema capaz de trabalhar com mais de 5000 palavras, todavia, o processo de cálculo levava sempre vários minutos. 1986: IBM desenvolve o protótipo "Tangora 4" para a língua inglesa. Sistema em tempo real, utilizando trigramas (modelos probabilísticos para prever a próxima letra ou palavra em determinada fala ou texto). 1993: Utilizando as tecnologias testadas no sistema Tangora, a IBM lança o primeiro software comercial para reconhecimento de voz, o IBM Personal Dictation System, para OS/2, com valor na época em torno de R$ 1000,00, e disponível para computadores pessoais. 1993: Apple apresenta conjunto de rotinas para Mac, para reconhecimento e síntese de voz. 1993: Universidade Federal do Rio de Janeiro desenvolve Dosvox, com síntese de voz em português, para deficientes visuais usarem PC's com DOS. 1994: Dragon Systems apresenta o Dragon Dictate para ditados. 1996: IBM apresenta o MedSpeak/Radiology, primeiro produto para reconhecimento da fala contínua em tempo real. 1996: OS/2 Warp é o primeiro sistema a embutir comandos de voz.

Upload: lyhanh

Post on 13-Nov-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PROCESSAMENTO DE LINGUAGEM NATURAL - …homes.dcc.ufba.br/~leotavo/index.html/artigo2.pdf · universidade federal da bahia departamento de ciÊncia da computaÇÃo inteligÊncia artificial

UNIVERSIDADE FEDERAL DA BAHIA

DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO

INTELIGÊNCIA ARTIFICIAL

PROCESSAMENTO DE LINGUAGEM NATURAL

Danilo Martins, Karina Kataoka e Leonardo Trindade

{lilobmm, karikataoka, leotavo}@gmail.com

Salvador, Bahia, Julho de 2010.

1. Introdução

O que vem à cabeça quando se ouve falar em robôs? À muitos vem a imagem daqueles robôs de desenho animado ou dos filmes de ficção científica onde os humanos conversavam e interagiam com eles e eles com os humanos. Eles entendiam cada palavra dita pelo homem e respondiam facilmente à qualquer pergunta. E como eles conseguiam essa tal interação, se para o próprio homem o aprendizado da linguagem é gradual e complexo? Como os robôs tinham todo esse conhecimento da linguagem humana? Claro que eram filmes de ficção científica, porque para um robô compreender e processar essa linguagem não é tão fácil como parece.

Os estudos para entender a mente (intelecto, pensamento, entendimento) e a inteligência (aprendizado, compreensão, percepção) humana é tão complexo que existe uma ciência voltada só para isso e que abrange não só a neurociência como também a psicologia, filosofia, inteligência artificial e a linguística. [CHIORO] Esta é a Ciência Cognitiva, é ela quem tenta entender, descrever e explicar as principais capacidades de cognição humana: a linguagem, o raciocínio, a percepção, a coordenação motora, etc. E usa como método para escrever programas que reproduzam essas capacidades cognitivas humana procurando elaborar uma réplica da inteligência destes.

O resultado desses estudos em conjunto com outras áreas da inteligência artificial, como as redes neurais, leva a uma outra área da IA, a área de pesquisa ligada ao Processamento de Linguagem Natural, o tema deste artigo.

2. Histórico

O desejo pela interação entre o homem e a máquina vem desde os primórdios do computador. Quando no fim da Segunda Guerra Mundial, e com o início da Guerra Fria, os americanos tiveram o interesse em traduzir automaticamente informações soviéticas da maneira mais rápida possível. E foram com calculadoras científicas que continham dados suficientes para traduzir palavra por palavra que o inglês Booth e o americano Warren Weaver, iniciaram os estudos pela tradução automática. Mas essas calculadoras não consideravam as questões linguísticas, como a sintaxe ou morfologia, apenas faziam a tradução de palavras-chave do inglês para o russo. [ALFARO]

Em 1948 o inglês Richens introduziu, nesse programa desenvolvido por Booth e Weaver, informações relativas à análise gramatical da lingua russa. Além de proporcionar ao leitor informações mais precisas sobre a função da palavra na sentença, esse processo causou a diminuição de entradas no dicionário, o que acelerou a consulta automática.[ALFARO]

Já em 1954, na Universidade de Georgetown, foi realizada uma experiência de tradução automática, a primeira até então, do russo para o inglês usando um computador como processador - ao invés das calculadoras científicas. O vocabulário continha 250 palavras e seis regras sintáticas.

Nos anos 60, segundo [OLIVEIRA], os computadores já possuíam a habilidade de aceitar e responder questões em inglês relacionadas a vários assuntos - álgebra, medicina, relações de parentesco, entre outras, e podiam conduzir uma pesquisa psiquiátrica, a nível rudimentar, em

inglês e alemão. Esse novo grupo de programas marcou o início do trabalho, em Inteligência Artificial, sobre o entendimento da linguagem natural. [MIRANDA]

Em 1966, no Massachusetts Institute of Technology (MIT), o cientista da computação Joseph Weizenbaum criou o ELIZA, um programa pequeno e simples, usando técnicas de Inteligência Artificial que simulava o diálogo entre um paciente e psicólogo, utilizando as próprias frases do paciente para formular novas perguntas. ELIZA é considerada uma das primeiras "máquinas pensantes". ELIZA não entendia sobre psicologia, ela apenas fazia a análise semântica das frases dita pelo paciente e respondia de acordo com o seu banco de dados.

3. Processamento de Linguagem Natural (PLN)

Como em toda linguagem o sistema de processamento de linguagem natural necessita conhecer e manter informações morfológicas, sintáticas, semânticas e um conjunto de palavras suportadas por tal linguagem.

Normalmente os computadores estão aptos a compreender instruções escritas em linguagens de computação como Java, C, Pascal, etc., mas requerem mais aprofundamento quando se trata da linguagem humana. Isso se deve ao fato de que as linguagens de computação são precisas, com regras fixas e estruturas lógicas bem definidas, que permitem ao computador saber como proceder a cada comando. Já na linguagem natural uma simples frase normalmente contém ambiguidades e interpretações que dependem do contexto, do conhecimento do mundo, de regras gramaticais, culturais e de conceitos abstratos.

Os níveis de entendimento da linguagem natural são os seguintes:

. Fonético: relacionamento das palavras com os sons da língua do ponto de vista da articulação e da recepção auditiva;

· Morfológico: construção das palavras a partir unidades de significado primitivas e de como classificá-las em categorias morfológicas;

· Sintático: relacionamento das palavras entre si, cada uma com o seu papel estrutural nas frases, a construção de frases;

· Semântico: relacionamento das palavras com seus significados e de como eles são compostos para que a frase tornem-se compreensíveis;

· Pragmático: uso de frases e sentenças em diferentes contextos, afetando o significado.

A maioria do sistemas que processam a linguagem natural não atendem a todos esses itens, por sua dificuldade na implementação completa e correta.

Trataremos nesse artigo os níveis relacionados à fonética, com o reconhecimento de voz, ao morfológico, sintático, semântico e pragmático com a análise textual.

4. Reconhecimento e Síntese de Voz

Desde cedo, o reconhecimento de voz na computação tem sido um assunto de ficção científica. Quem não se lembra de Mister Spok em "Jornadas nas Estrelas" dando comandos para o computador em voz alta. Ou do computador HAL, personagem fictício imortalizado na adaptação pro cinema da série "Uma Odisséia no Espaço", de 1968, capaz de falar naturalmente, reconhecer a voz humana, e ainda fazer leitura labial. Nas pesquisas, ainda não chegou-se a esse ponto, mas houve uma grande evolução nos últimos anos no desenvolvimento de aplicações para reconhecimento de voz, e com certeza, há ainda muito que evoluir. [LINGUATEC, 2001] [WOOD, 2000]

Os sistemas existentes hoje em dia funcionam como uma espécie de memorizadores de palavras. Estes associam frases ou palavras pré-determinadas em suas bases de dados, faladas por determinada pessoa, a uma certa ação também pré-estabelecida. [WOOD, 2000]. Esse tipo de técnica possui grande utilidade em sistemas que necessitem de grande interação com os usuários. Aplicações estas, geralmente conhecidas como chatbot ou ainda 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 sem deixar de mencionar a possibilidade do emprego delas na educação, por meio de um possível tutor inteligente. Entre outras aplicações mais comuns temos também aquelas utilizadas em sistemas de segurança, que utilizam o reconhecimento de voz de uma pessoa específica para controle de acesso, levando em consideração o timbre, entonação entre outras características. [Barton]

Apesar de parecer simples, reconhecer a voz humana não requer apenas um bom conhecimento computacional ou algorítimico, mas também de Fonética, Linguística, Reconhecimento de Padrões, e outras áreas da IA. [linguatec, 2001]

4.1. Breve Histórico:

Final da década de 1950: Primeiras pesquisas tecnológicas para o reconhecimento de voz.

1964: IBM apresenta um sintetizador de voz para a fala de dígitos. 1978: A Texas Instruments lançou o primeiro chip dedicado à síntese de voz. 1984: IBM desenvolve um sistema capaz de trabalhar com mais de 5000 palavras, todavia, o processo de cálculo levava sempre vários minutos. 1986: IBM desenvolve o protótipo "Tangora 4" para a língua inglesa. Sistema em tempo real, utilizando trigramas (modelos probabilísticos para prever a próxima letra ou palavra em determinada fala ou texto). 1993: Utilizando as tecnologias testadas no sistema Tangora, a IBM lança o primeiro software comercial para reconhecimento de voz, o IBM Personal Dictation System, para OS/2, com valor na época em torno de R$ 1000,00, e disponível para computadores pessoais. 1993: Apple apresenta conjunto de rotinas para Mac, para reconhecimento e síntese de voz. 1993: Universidade Federal do Rio de Janeiro desenvolve Dosvox, com síntese de voz em português, para deficientes visuais usarem PC's com DOS. 1994: Dragon Systems apresenta o Dragon Dictate para ditados. 1996: IBM apresenta o MedSpeak/Radiology, primeiro produto para reconhecimento da fala contínua em tempo real. 1996: OS/2 Warp é o primeiro sistema a embutir comandos de voz.

Page 2: PROCESSAMENTO DE LINGUAGEM NATURAL - …homes.dcc.ufba.br/~leotavo/index.html/artigo2.pdf · universidade federal da bahia departamento de ciÊncia da computaÇÃo inteligÊncia artificial

1997: Dragon Systems lança o primeiro programa de uso geral para reconhecimento da fala contínua em inglês. 1997: IBM lança o ViaVoice, para fala contínua. 1998: IBM lança ViaVoice em português. 1998: MicroPower lança DeltaTalk, sintetizador de voz em português. 1999: Philips lança FreeSpeech 2000, com reconhecimento da fala em português. 1999: Lotus e Corel acrescentam recursos de voz a seus pacotes de aplicativos. 2000: L&H adquire Dragon Systems e lança L&H Dragon NaturallySpeaking 5.0. 2001: Telemar lança Vocall, primeiro serviço de voz aberto ao público, com síntese e reconhecimento da fala, para e-mails e agenda. 2001: L&H é colocada à venda, por se encontrar em grave crise financeira. 2001: Microsoft acrescenta recursos de voz (para ditados e comandos) ao Office XP. Na versão em português, essa facilidade está ausente.

4.2. Conceitos:

O processamento pode ser aplicado, basicamente, em quatro áreas: comandos por voz; fala natural; síntese de voz e autenticação de voz.

- Comandos por voz (ou reconhecimento de palavras) - Processamento de um trecho da fala digitalizada, para indicar uma ação a ser tomada. Bastante utilizado em centrais telefônicas automatizadas, handhelds, celulares ou PC's. Permite que um usuário acesse diretamente uma função sem a necessidade de percorrer as outras opções, em um menu muito extenso, por exemplo. - Fala natural (ou contínua) - Envolve a produção de texto a partir de frases faladas que tenham algum sentido semântico. A aplicação mais comum dessa tecnologia é o ditado de documentos em processadores de textos, planilhas ou envio de e-mails. - Síntese de Voz - Processo inverso do reconhecimento da fala. A entrada é um texto em formato digital. A aplicação transforma o texto em sons (ondas sonoras) perceptíveis ao ouvido humano. Este tipo de tecnologia é bastante útil quando o usuário não pode desviar a atenção para ler algo, ou não tem acesso ao texto escrito (fora de seu alcance, ou por questões de acessibilidade). - Autenticação por voz - Usa a idéia de uma voz única por pessoa, logo passível de associação e identificação. Esses sistemas podem ser usados para controle de acesso, ou função, por um usuário, substituindo os tradicionais "login" e "senha".

4.3 O processador de voz:

O computador não entende a linguagem humana. É preciso transformar a fala em algo que possa ser armazenado, processado e compreendido pela máquina.

Quando falamos em um microfone de PC, por exemplo, nossa voz é convertida em um sinal analógico que alimenta a entrada de uma placa de som. A placa contém um conversor analógico-digital que cria uma sequência de bits, estes sim interpretador por um software. A

forma como essa digitalização do som é feita depende muitas vezes da aplicação escolhida, mas a aplicação tem pelo menos dois componentes básicos: o modelo acústico e o linguístico.

No modelo acústico, primeiramente, são eliminados os ruídos e informações desnecessárias, as alterações de volume, e são feitos alguns cálculos matemáticos, onde os dados são reduzidos a um determinado espectro de frequência. Essa é a preparação para que os dados possam ser então, analisados e convertidos em fonemas, ou melhor, em representação digital desses fonemas.

Ex: "O Brasil não levou o hexa." => Fonemas: o-b-r-a-z-i-u-n-ã-o-l-ê-v-ô-u-o-é-c-i-s-á

O segundo componente, o modelo linguístico, analisa a combinação de fonemas, e compara com uma base de dados pré-determinada (dicionário), para associar um conjunto de fonemas a uma determinada palavra.

Num sistema de reconhecimento de comandos por voz, o modelo linguístico é bem mais simples, pois o dicionário já deve prever praticamente todas as formas de pronunciar determinado comando, ou dar uma resposta negativa, caso não haja um comando associado àquele conjunto de fonemas. Já na fala contínua, há a necessidade de uma base dados bastante extensa, logo, necessidade também de maior poder de processamento e algoritmo mais eficiente.

Mas, a simples análise fonética não é suficiente para que uma aplicação identifique corretamente o sentido de frase, pois há muitas palavras com pronúncia semelhante ou equivalente, onde sua correta identificação é sensível ao contexto. Uma técnica utilizada para resolver este problema são os trigramas, modelos estatísticos que usam uma distribuição de probabilidades para "adivinhar" o sentido correto da fala. Uma estratégia utilizada seria por exemplo, na dúvida de identificação de determinada palavra, analisar as palavras que estão entre ela.

Ex: Vou à UFBA. (fonema 'a' = à, há ou a ???, vou = verbo transitivo indireto, UFBA = lugar, verbo regido por preposição. Conclusão = à).

Ou seja, o reconhecimento da fala contínua envolve também outras temas, como Gramática, Sintaxe, Ortografia, etc.

Além disso é preciso fazer o agrupamento correto das palavras. Podemos ter as seguintes construções: "Vou à UFBA" - "Voua UFBA" - "Vou à ufiba". Por isso é vidente a necessidade de um bom modelo gramatical. A maioria dos pacotes atuais de reconhecimento de fala contém dicionários com cerca de 150 mil verbetes em português. Número próximo também ocorre no idioma inglês.

4.4. Síntese de voz:

Converter palavras em fonemas também é outro grande desafio. É preciso atentar, por exemplo, para a duração e a tonalidade de cada fonema. Cada sílaba tem sua intensidade. Pode ser desagradável ouvir um texto numa voz visivelmente mecânica, quando o que ser quer é simular a voz humana. Os sistemas de síntese de voz tentam reduzir ou eliminar essa percepção mecânica e "robotizada". Podemos nos deparar com palavras homógrafas (mesma

grafia e pronúncias distintas). Voltamos então a necessidade de um modelo gramatical confiável, que permita ao aplicativo pronunciar adequadamente certa palavra.

Para tornar a produção da voz o mais natural possível, também é necessário impor um ritmo de leitura, respeitar a pontuação e uma correta entonação. Esse modelo de entonação ainda é um dos principais desafios quando tratamos desta tecnologia. Esse modelo pode ser algorítmico ou baseado em amostras. O modelo algorítmico tende a ser incompleto pois além de prever as regras, é preciso prever as exceções, o que aumenta a complexidade do algoritmo da solução utilizada. O modelo baseado em amostras contém vários tipos de textos lidos, e se fundamenta em um modelo "mais" matemático ou estatístico.

4.5. Alguns desafios/dificuldades:

- uma mesma palavra pode ser falada de maneira mais curta ou extensa por diferentes pessoas, ou diferentes momentos, ou até mesmo, pelo instrumento utilizado para captação do som. - linguagem culta x linguagem coloquial/informal - palavras homófonas, homógrafas. - a influência de determinados sons sobre outros (eliminação de ruído). Um humano pode facilmente diferenciar, mas e um computador? - Produção de texto. Letras Maiúsculas ou minúsculas. - o surgimento de novos termos, exige constante evolução das aplicações. - estrangeirismos - processador veloz, muita memória, bom microfone e placa de som. [Linguatec] [Richter] 4.6. O futuro: A tecnologia e reconhecimento de produção de voz é bastante complexa, e ainda não muito popularizada. Mas o que se pode perceber é que o caminho natural é o aperfeiçoamento de mais aplicações voltadas para a automatização de tarefas, eliminação de digitação, de necessidade de leitura de textos, e também uma maior acessibilidade. A vasta área de aplicação desta tecnologia pode justificar o alto investimento e o surgimento de mais e mais sistemas que facilitem nossas atividades diárias. Sistemas esses que possam interagir e responder de forma mais humana. A alta quantidade de erros ainda torna o uso dessas aplicações um pouco restritas, mas com a crescente pesquisa e recursos computacionais cada vez mais poderosos, poderemos chegar a uma realidade próxima do que já estamos acostumados a ver em certos filmes de ficção científica.

5. Reconhecimento de Escrita

Ao mesmo tempo em que os sistemas de reconhecimento de voz foram se desenvolvendo, o reconhecimento de escrita também foi estudado e desenvolvido. [MÜLLER]

O reconhecimento de escrita atua em dois ítens, a que reconhece letras impressas (ou de forma) e as letras cursivas, a manual.

É um projeto considerado típico de redes neurais (como a equipe colega explicou).

As arquiteturas de processamento dos sistemas de reconhecimento de escrita tanto cursiva quanto impressa são similares. Existe a entrada de dados, seja ela por meio do escaneamento ou por escrita manual em algum dispositivo, seguido da extração dos atributos, que tenta eliminar as variações dos caracteres, deixando ao classificador o papel de reconhecedor da letra apresentada. O classificador faz o mapeamento dos valores que os atributos possuem e verificam em seu banco de dados a correspondência com a letra conhecida. E por fim tem-se a resposta, a letra reconhecida que concatenadas formam-se as palavras, frases, textos, etc. [SILVA & RACZ & CUNHA & COSTA]

Fig. 1.: Arquitetura de Reconhecimento para sistemas de reconhecimento de escrita.

5.1. Reconhecimento de letras impressas

Scanners copiam os textos e geralmente fazem esse reconhecimento de escrita. Posteriormente os programas analisam cada caractere e comparam com padrões de fontes já existentes no banco de dados.

5.2. Reconhecimento de letras cursivas

Com a popularização dos dispositivos móveis e consequentemente com a não utilização de teclados como dispositivo de entrada o estudo dessas técnicas de reconhecimento cresceu.

Fig. 2.:Diagrama da arquitetura do sistema de reconhecimento de escrita manual através de dispositivo portátil.

Page 3: PROCESSAMENTO DE LINGUAGEM NATURAL - …homes.dcc.ufba.br/~leotavo/index.html/artigo2.pdf · universidade federal da bahia departamento de ciÊncia da computaÇÃo inteligÊncia artificial

7. Análise de Texto

A área de estudo do Provessamento de Linguagem Natural mais importante, complexa e por sua vez, a principal é a análise textual, e tem sua maior aplicação. Veremos posteriormente exemplos de ferramentas que utilizam a análise de texto como principal aplicação.

A fim de entender melhor 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 serão:

7.1. 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.

7.2. 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, seria equivalente 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]:

Fig. 3. 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.

7.3. 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 e, mais uma vez, 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 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.

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

7.4. Integração de Discurso

Geralmente, o significado de uma frase será melhor compreendido, ou somente será compreendido a partir da interpretação da mesma juntamente com as frases antecedentes e/ou sucessoras a ela. Esta parte pode ser comparada à interpretação do texto, onde a compreensão do todo é importante para que se possa entender 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, através do login, por exemplo).

7.5. 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.

A análise pragmática leva em conta que, palavras iguais podem possuir diferentes significados, dependendo do contexto em que está inserida. O significado não se encontra nas palavras em si, mas em sua interpretação [MIRANDA]. Um exemplo disso seria a frase “Você tem horas?”. Se ela for interpretada pelo lado sintático/semântico, somente, a resposta obtida será Sim ou Não. Já levando em conta a análise pragmática, que é como se espera que faça, já que a resposta desejada não é Sim/Não, a frase, ao final, ser interpretada como uma solicitação para que o programa responda qual é a hora naquele exato momento da pergunta. [MIRANDA]

Sob a ótica pragmática, conforme [LACERDA], a pesquisa em Processamento de Linguagem Natural possui três implicações importantes:

  o significado de uma mensagem expressa de forma oral é representado somente parcialmente pelo conteúdo da mensagem. O receptor deve ser perceptivo quanto às intenções do emissor ao produzir a mensagem;

  a atribuição das intenções do emissor é componente integral no processo de compreensão do receptor;

  a teoria da compreensão da linguagem deveria determinar o âmbito para o qual as estratégias utilizadas pelas pessoas para chegar a explicações razoáveis sobre o

comportamento físico das outras pudessem ser empregados na compreensão dos atos da fala.

8. Ferramentas

Muitas ferramentas hoje utilizam o processamento da linguagem natural como aplicação.

Alguns exemplos:

  DOSVOX: Sistema em português que se comunica com o usuário através da síntese de voz, viabilizando o uso do computador por deficientes visuais dando a eles mais independência. [Ver Anexo Fig. 4]   A.L.I.C.E. (Artificial Linguistic Internet Computer Entity): É um chatterbot, ou seja, um programa que tenta simular uma conversa humana. Ele responde as perguntas, em inglês, de forma a dar impressão de estar conversando com outra pessoa. [Ver Anexo Fig.5]   SETEZOOM: Outro exemplo de chatterbot mas em português. [Ver Anexo Fig. 6]   ELIZA: Primeiro programa ou chatterbot de simulação de diálogo humano. Simulava o diálogo entre um paciente e o psicólogo.

9. Referências

[ALFARO] Alfaro, C.: "Descobrindo, Compreendendo e Analisando a Tradução Automática". Departamento de Letras. Pontifícia Universidade Católica do Rio de Janeiro. Rio de Janeiro, Rio de Janeiro, 1998.

[CHIORO] Chioro, R. "Ciência Cognitiva". http://an.locaweb.com.br/Webindependente/CienciaCognitiva/ciencia_cognitiva.htm

[LACERDA] Lacerda, J. N. de. “Generalização de fatos na compreensão de textos em linguagem natural”. Universidade Federal de Santa Catarina. Florianópolis, Santa Catarina, 1996. [LINGUATEC] Linguatec Sprachtechnologien GmbH: “Grundlagen der spracherkennung”. http://www.spracherkennung.de/service/sebuch.htm , 2001.

[MIRANDA] Miranda, E. M. de; Santiago, R.; Fernandes, A. M. da R.; Dazzi, R. L. S.: "Utilização de Processamento de Linguagem Natural para auxiliar na avaliação de algoritmos". Centro de Ciências Tecnológicas da Terra e do Mar. UNIVALI – Universidade do Vale do Itajaí. Itajaí, Santa Catarina.

[OLIVEIRA] Oliveira, F. A. D. de: "Processamento de linguagem natural: princípios básicos e a implementação de um analisador sintático de sentenças da língua portuguesa”. Universidade Federal do Rio Grande do Sul. Porto Alegre, Rio Grande do Sul.

[RICH] E. e [KNIGHT] K.: "Inteligência Artificial". Makron Books, 1993.

[RICHTER] Richter, N.:"Spracherkennung - Informationen, Test und Produkte". http://www.diktatstarten.de/ 2001

Page 4: PROCESSAMENTO DE LINGUAGEM NATURAL - …homes.dcc.ufba.br/~leotavo/index.html/artigo2.pdf · universidade federal da bahia departamento de ciÊncia da computaÇÃo inteligÊncia artificial

[MÜLLER] Müller, D. H.: "Processamento de Linguagem Natural". Universidade Federal do Rio Grande do Sul. Porto Alegre, Rio Grande do Sul, 2003. [SCHNEIDER] Schneider, M. O.: "Processamento de Linguagem Natural (PLN)". Pontifícia Universidade Católica de Campinas. Campinas, São Paulo, 2001.

[SILVA] Silva, V. F.; [RACZ] Racz, A.; [CUNHA] Cunha, A. R.; [COSTA] Costa, A. H. R.: "Reconhecimento de Escrita Baseado em Redes Neurais Artificiais Utilizando B-SPLINES e TDF". Escola Politécnica da Universidade de São Paulo. São Paulo, São Paulo. Publicado em: VI Simpósio Brasileiro de Automação Inteligente. Bauru, setembro de 2003.

[WOOD] Wood, L.: "Intro to Voice Recognition Software" http://www.weeno.com/art/1099/183.html, 2000.

Anexo de Figuras

Fig.4. DOSVOX

http://intervox.nce.ufrj.br/dosvox/intro.htm

Fig.5. A.L.I.C.E

http://alice.pandorabots.com/

Fig.6. SETEZOOM

http://www.inbot.com.br/sete/