Extração Inteligente de Palavras-Chave

Aqui na Vetta Labs desenvolvemos algumas tecnologias baseadas no processamento de linguagem natural, como já comentei em outro artigo. Hoje vou falar de uma nova aplicação que produzimos recentemente, que tem duas características bem interessantes: uma é suportar tanto textos em inglês quanto em português (o que é bastante incomum, já que as particularidades de nossa língua nem sempre são compatíveis com as técnicas mais conhecidas); a outra é que os resultados produzidos são muito fáceis de serem utilizados na prática, de forma simples, em por exemplo blogs e portais de conteúdo.

É comum sites associarem aos seus artigos frases ou palavras-chave relacionadas ao conteúdo. Essas palavras-chave podem funcionar como resumos do que é discutido, levar o usuário a outros artigos que tratam dos mesmos assuntos e também ajudar na categorização e indexação dos textos. Normalmente essas frases ou palavras-chave são escolhidas pelo próprio autor, ou então definidas pelos visitantes, de forma colaborativa (o que exige um grande número de visitas e “votos” para evitar resultados de baixa qualidade ou sem sentido).

O problema é que muitas vezes já temos uma grande coleção de textos sem palavras-chave definidas, e escolhê-las manualmente  é uma tarefa extremamente árdua.  Existem algumas ferramentas simples para detecção automática de palavras-chave, mas praticamente todas elas usam uma abordagem ingênua que dificilmente funciona bem: são usados dicionários, tabelas com palavras-chave pré-definidas, e  a aplicação simplesmente verifica se a palavra-chave na lista aparece no artigo. Essa alternativa é inútil se os artigos em questão são sobre assuntos pouco comuns, ou se as palavras-chave que desejamos são termos menos conhecidos.

Esse exatamente era o problema de dois dos nossos clientes: a h+ Magazine, uma revista eletrônica sobre trans-humanismo, singularidade e outras tendências tecnológicas e culturais, e o Ceticismo Aberto, um dos maiores sites do Brasil sobre ceticismo e divulgação científica.

Keywords through cyberspace (Digital Composite)

A solução que desenvolvemos utiliza técnicas de processamento estatístico de linguagem natural e aprendizado de máquina para extrair automaticamente frases e palavras-chave de milhares de artigos desses sites. As palavras-chave encontradas incluem neologismos, expressões, nomes próprios e termos obscuros que jamais apareceriam nos resultados de uma abordagem baseada em listas, e são automaticamente inseridas nos sistemas de gestão de conteúdo dos sites (baseados em WordPress e Drupal), permitindo seu uso imediato.

Nosso sistema inicialmente identifica frases ou palavras-chave candidatas criando sequências de até três ou quatro palavras. Cada candidata então é analisada, extraindo-se características como:

  • frequência no uso geral (palavras extremamente comuns não são importantes)
  • frequência no texto (palavras repetidas no artigo têm peso maior)
  • posição no texto (palavras no início ou no final do texto costumam ser mais representativas)
  • categoria gramatical (substantivos têm mais peso que preposições, por exemplo)
  • função sintática (frases sintaticamente incorretas ou incompletas são rejeitadas)
  • entidades ou lugares representados (o sistema identifica nomes próprios como Albert Einstein, Zumbi dos Palmares, Belo Horizonte ou São Luís do Paraitinga)

Note que combinar todas as essas informações extraídas e decidir se determinada candidata é ou não uma frase ou palavra-chave é uma tarefa complicadíssima. Para resolver esse problema, usamos um método de aprendizado supervisionado: utilizamos um pequeno número de artigos (em torno de 50 ou 100) que já tinham suas palavras-chave definidas manualmente pelos autores como exemplos positivos. Um algoritmo de aprendizado supervisionado analisa as informações acima dos exemplos positivos dados e aprende a identificar as palavras-chave, automaticamente. O interessante é que o modelo obtido é capaz de generalização, ou seja, apesar de ter aprendido “estudando” apenas 100 artigos ele é capaz de aplicar de forma correta as mesmas regras para artigos inéditos.

E os resultados são surpreendentes – às vezes é difícil convencer as pessoas de que as palavras-chave foram escolhidas automaticamente e não por uma pessoa capaz de ler e interpretar cada um dos artigos!

Notas

A nova versão do Ceticismo Aberto, já com as palavras-chave extraídas pelo sistema da Vetta Labs, entrou no ar no domingo 21 de Fevereiro, e a versão em inglês, para a h+ Magazine, deve ser disponibilizada publicamente em breve.

O projeto foi desenvolvido por Fabrício Aguiar (que já fez com a gente outras aplicações interessantes baseadas em linguagem natural), a partir de código escrito por Murilo Queiroz (que também coordenou o desenvolvimento) e diversos projetos de software livre, incluindo o WekaKEAOpenNLP, CoGrooRembrandt e OpenCalais.

Os arquivos de treinamento usados na versão para português foram criados  por Kentaro Mori, do Ceticismo Aberto, e muitas das idéias foram sugeridas inicialmente pelo Dr. Ben Goertzel.

Inteligência Artificial, Linguagem Natural 7 Comentários

1 Star2 Stars3 Stars4 Stars5 Stars (2 votes, average: 5,00 out of 5)