Resolver a ambiguidade no Twitter

Utilizar o Twitter para tentar recolher tweets escritos por utilizadores com certas características, nomeadamente utilizadores portugueses, e que falem sobre certos tópicos/entidades no meio de tantos tweets publicados por minuto,  é uma tarefa complexa. Dada a natureza do Twitter é comum encontrarmos tweets que são escritos por ro(bots) como por exemplo, tweets automáticos de apps autorizadas, ou tweets de jornais como @Público. Outro problema, são as menções ambíguas como “portas, “passos, ou “seguro”. Neste post vamos  vamos assumir que temos uma lista de tweets escritos por humanos e em língua portuguesa. Queremos seleccionar automaticamente tweets que mencionem explicitamente Pedro Passos Coelho. Exemplos:

“o que é feito do passos? Já voltou do méxico?”

“fui ao Passos Manuel e não te vi lá!”

“Passos afirma que OE pode gerar conflito de expectativas.”

“de irrevogável em irrevogável, passos lá se aguenta -__-”

“fiquei a 2 passos mas não consegui :(

Estes exemplos ajudam-nos a explicar a complexidade da tarefa. A linguagem no Twitter é bastante informal e o limite de 140 carácteres faz com que grande parte dos utilizadores escrevam uma menção simples “Passos” em vez de “Passos Coelho” ou “Pedro Passos Coelho”. Muitas vezes nem sequer é utilizado o nome com letra maíuscula. Para complicarmos ainda mais a situação, há a questão da ambiguidade do nome. A palavra “seguro” refere-se a António José Seguro ou ao seguro automóvel? “Jerónimo” é o líder do PCP ou é uma referência à empresa Jerónimo Martins? “Cavaco”, “Passos” e “Portas” são outros exemplos típicos de menções ambíguas quando queremos seguir tweets sobre políticos nacionais.

No âmbito do POPSTAR criámos um filtro de desambiguação no qual são aplicadas técnicas de processamento de linguagem natural, recuperação de informação e aprendizagem computacional. Estudámos um grande número de características (ou pistas) que utilizámos para ensinar o computador a perceber a relação entre uma dada entidade (por exemplo AJS) e  um tweet. Este grupo de características inclui 1) todas as palavras dos tweets, similaridades de palavras do tweet e a página da Wikipédia da entidade ou páginas web oficiais da entidade; 2) a relevância de certas palavras no tweet quando comparado com todas as palavras na lista de tweets (TF-IDF é uma técnica típica dos motores de pesquisa); 3) hashtags e conteúdo das páginas apontadas por URLs nos tweets.

Uma vez extraídas as características mencionadas anteriormente e utilizando o conjunto de tweets anotados manualmente (abordagem supervisionada), podemos treinar algoritmos típicos de aprendizagem computacional (e.g. SVM, Random Forest, Naive Bayes) para ensinar o computador a distinguir tweets ambíguos.

A equipa do POPSTAR aplicou esta abordagem na competição de Filtering do RepLab 2013 tendo obtido o primeiro lugar com 91% de acerto em mais de 140000 tweets sobre 61 entidades diferentes. Mais detalhes na nossa estratégia de resolução de nomes ambíguos no Twitter, aqui.

Deixar uma resposta