Na Inteligencia Artificial, e comum identificarmos duas formas principais de se trabalhar: tentar simular o funcionamento da inteligencia humana ou apenas focar na realizacao de uma tarefa de forma inteligente.Imitar o funcionamento do cerebro humano pode nao ser tao util quanto parece a primeira vista. Vejamos a aritmetica. Imagine, se em vez de realizar todos os bilhoes de calculos por segundo de que e capaz, um computador emulasse uma mente humana calculando. Nao parece uma boa ideia, mesmo que o procedimento de multiplicacao para um computador envolva decompor um numero em sinais binarios e calcular funcoes logicas em cima deles.Quando tratamos de coisas relacionadas a lingua, simular o pensamento humano parece bem interessante... mas normalmente e inviavel: simplesmente nao sabemos explicar como nos mesmos, seres humanos, realizamos a maioria das tarefas linguisticas.Por exemplo: escrever um pequeno resumo de um texto longo. Voce saberia explicar precisamente suas decisoes sobre o que mencionar num resumo? Descrever as informacoes mais relevantes parece obvio para nos, mas a questao continua: como achar a informacao relevante?Responder como funcionam os mecanismos mentais que tomam esse tipo de decisao vai bem alem da Inteligencia Artificial e da Linguistica; e principalmente um problema de Neurociencia. Apesar de achar um tema fascinante, conheco muito pouco a respeito, por isso vou deixa-lo de lado.Voltemos ao problema do resumo de um texto. Trabalhos que automatizam essa atividade podem ser guiados por algumas heuristicas - isto e, chutes sobre o que pode ser importante - e observacoes estatisticas sobre a distribuicao das palavras no texto. Palavras que ocorrem com muita frequencia (sem contar artigos, preposicoes, verbos comuns como ser e ter, etc.) tendem a ser mais relacionadas com o assunto tratado, e possivelmente as frases em que aparecem sao mais importantes.Essa abordagem parece razoavel do ponto de vista humano. Mas mesmo assim, pode cometer erros que um humano dificilmente cometeria (como falar de detalhes do texto sem trazer a informacao principal).Ate mesmo algo que parece regido por regras solidas, como a gramatica, nao e tao simples assim. Exemplifico. A identificacao de classes gramaticais (dizer se uma palavra e um substantivo, verbo, adjetivo, etc.) e uma tarefa importante para o PLN, que ajuda na realizacao de outras coisas mais complexas, mas que computadores realizam de forma mirabolante.O que se costuma fazer para tratar de classes gramaticais e treinar um sistema com os chamados n-gramas. Funciona basicamente assim: o programa e treinado com um texto onde todas as palavras tem suas classes gramaticais ja previamente informadas. Quando for identificar as classes das palavras num texto novo, o programa olha as palavras de duas em duas ou de tres em tres, e tenta prever as classes delas baseado nas sequencias de palavras que viu durante seu treinamento. Se ele encontra muitas palavras novas, tende a errar mais. Essa abordagem que pode parecer super esquisita (o que diria um aluno do ensino fundamental sobre esse metodo numa aula de portugues??) funciona muito bem na pratica. Sistemas em varias linguas conseguem acertar as classes gramaticais de mais de 95% das palavras de um texto com este metodo.Por fim, um