terça-feira, 1 de março de 2016

Treinando modelos do parser de Stanford

O Stanford CoreNLP é um conjunto de ferramentas para o processamento de línguas naturais bastante utilizado por pesquisadores e desenvolvedores. Modelos treinados para inglês para todas as funcionalidades do CoreNLP estão disponíveis para download, além de modelos para outras línguas com algumas funcionalidades. Neste post, vou mostrar como treinar um POS Tagger e um parser de dependências para o português.

sábado, 27 de abril de 2013

Palavras como vetores no espaço

Uma técnica relacionada ao Processamento de Língua Natural que tem me interessado bastante nos últimos tempos são os chamados modelos vetoriais. Sua ideia é considerar cada palavra como um vetor num espaço multi-dimensional. Na prática, significa que cada palavra pode ser entendida como uma sequência de números.

Isso pode gerar várias perguntas: Para que serve um vetor multi-dimensional? Por que usar números? De onde eles saem? 

As respostas são simples, apesar do conceito poder parecer estranho. Primeiro, explico a motivação. Esse tipo de técnica começou a ser usado já há algumas décadas, com o objetivo de facilitar técnicas de recuperação de informação, como a busca do Google ou de qualquer site da Internet. A ideia é a seguinte: para ter uma busca mais inteligente, quando se procura por uma determinada palavra, o sistema não deve buscar somente por ela, escrita exatamente da mesma forma. Em vez disso, é interessante buscar palavras relacionadas.

terça-feira, 29 de maio de 2012

Explorando a Wikipédia

A Wikipedia é um projeto admirável. Iniciada em 2001, sua versão original em inglês hoje inclui quase 4 milhões de artigos sobre os mais diversos temas. Já me ajudou em diversas ocasiões em que precisava saber alguma coisa sobre algum assunto em particular ou simplesmente matar curiosidades.

Mas além de servir para ser consultada por pessoas, a Wikipedia também tem auxiliado pesquisas em Processamento de Língua Natural. Como? Em primeiro lugar, oferecendo uma quantidade enorme de textos bem escritos (na maioria das vezes). Só isso já é útil para algumas aplicações, como os modelos de língua, que tentam determinar se uma sequência de palavras parece compor um texto real ou não. Para alcançar esse objetivo, um modelo de língua precisa ser treinado com textos. (Se você estiver se perguntando para que serve isso na prática, a resposta mais fácil é tradução automática: sistemas tradutores normalmente geram diversas versões do texto traduzido e exibem a que for melhor avaliada pelo seu modelo de língua. Mas isso já é outro assunto.) 

quarta-feira, 25 de janeiro de 2012

Involução das Línguas

Um tema relativamente comum em ficção científica são povos com tecnologias superevoluídas que viveram num passado distante e sumiram deixando apenas vestígios.

Este tema parece atrair bastante atenção dentro do gênero provavelmente por parecer irreal: normalmente a humanidade evolui em ciência e tecnologia, e não retrocede. Mas fugindo um pouco da ideia de tecnologias futurísticas, acredito que as línguas humanas se encaixam bem nessa descrição.

sábado, 19 de novembro de 2011

Curso de PLN gratuito em Stanford

Recentemente fiquei sabendo que a universidade de Stanford vai oferecer um curso de Processamento de Língua Natural online e de graça para todo o mundo.


O curso deve seguir nos moldes do de Inteligência Artificial, que foi dado esse semestre: o conteúdo é exatamente o mesmo das aulas para os alunos regulares da universidade, que são gravadas e disponibilizadas na Internet. Os alunos externos também fazem exercícios, provas, participam do forum de discussão e ainda podem ter feedback sobre seu progresso.

sexta-feira, 19 de agosto de 2011

Simulando Capacidades Linguísticas

Na Inteligência Artificial, é comum identificarmos duas formas principais de se trabalhar: tentar simular o funcionamento da inteligência humana ou apenas focar na realização de uma tarefa de forma inteligente.



Imitar o funcionamento do cérebro humano pode não ser tão útil quanto parece à primeira vista. Vejamos a aritmética. Imagine, se em vez de realizar todos os bilhões de cálculos por segundo de que é capaz, um computador emulasse uma mente humana calculando. Não parece uma boa ideia, mesmo que o procedimento de multiplicação para um computador envolva decompor um número em sinais binários e calcular funções lógicas em cima deles.

terça-feira, 2 de agosto de 2011

Anotação de Papéis Semânticos: Experimentos

Na minha última postagem, falei sobre a dificuldade de se definir um conjunto de papéis semânticos. Falei também sobre os papéis definidos em frames, que possuem aplicações reais, mas a maioria dos trabalhos de identificação automática usa as definições do PropBank.