Aquivo do autor: Pedro Saleiro

Verbetes

O Verbetes é um projeto desenvolvido no Labs Sapo UP e tem como objectivo identificar e extrair, de forma totalmente automática, pequenas biografias de personalidades mencionadas nas notícias. Visto que este processo é isento de qualquer intervenção humana, é imperativo garantir que os dados extraídos tenham o menor erro possível. A abordagem utilizada pelo Verbetes passa assim pelo uso e aplicação de padrões linguísticos. Estes padrões linguísticos são tipicamente construídos a partir de regras aplicadas a uma determinada estrutura lexical. Estas regras são necessariamente suportadas em técnicas de Processamento da Linguagem Natural.

São três as razões essenciais que corroboram a utilização destes padrões linguísticos e a reduzida taxa de erros resultante: (i) os padrões linguísticos são construídos especificamente para a extracção de nomes e cargos/profissões de textos noticiosos, garantindo assim um elevado grau de especificidade e consequentemente uma taxa de erros reduzida; (ii) dado que as notícias são textos com um estilo linguístico muito próprio e bem definido, é uma mais valia tirar partido desta homogeneidade. A aplicação de padrões linguísticos vai beneficiar deste facto no sentido de mais uma vez garantir uma taxa de erros reduzida; (iii) o uso de padrões linguísticos permite que cargos e profissões extraídos tenham maior granularidade, isto é, sejam mais completos e informativos, tal como “líder da bancada parlamentar do Partido Socialista” e não demasiado genéricos e abstractos como “político” ou “presidente”. Exemplos de padrões linguísticos incluem:

  • “O ex-primeiro-ministro, José Sócrates, (…)”

  • “Rui Machete é o novo ministro dos Negócios Estrangeiros (…)”

Estes padrões são aplicados a cada uma das frases da notícia e visam criar as fronteiras entre o nome e o cargo ou profissão a extrair. Um exemplo de padrão pode ser interpretado da seguinte forma: (i) a frase deve ser iniciada com um artigo definido masculino ou feminino singular; (ii) é opcionalmente seguida de um modificador (exemplo: ex, antigo, novo, vice, anterior, etc.); (iii) é seguida por um cargo ou profissão; (iv) é seguida por um nome próprio (simples ou composto por várias palavras e/ou partículas de ligação como “de” ou “e”) que deve ser precedido e sucedido de vírgulas; (v) e por fim o restante conteúdo da frase. Note-se que para a execução deste ou outro dos padrões linguísticos usados, são necessários recursos externos como analisadores morfológicos e listas de modificadores.

Para cada nome e respetivo cargo ou profissão extraído, é atribuído um intervalo temporal. Desta forma, é possível balizar os cargos das personalidades com base na data da notícia em que foi inicialmente identificado e na data da notícia em que foi extraído pela última vez. Esta informação é um bom indicador da data de início e fim do cargo ou profissão, contribuindo desta forma para a construção automática de biografias de personalidades referidas nas notícias.

Para além dos cargos ou profissões, o Verbetes extrai também nomes alternativos. Estes nomes correspondem a variações lexicais de uma entidade, muito frequentes nas notícias. Por exemplo, o nome “Aníbal Cavaco Silva” tem como nomes alternativos “Cavaco Silva” e “Cavaco”.

O projeto POPSTAR tira partido do Verbetes no sentido em que tem à disposição uma vasta lista de personalidades mencionadas nas notícias portuguesas e as suas varições lexicais (nomes alternativos). Com base nesta informação, é assim possível calcular, por exemplo, o buzz de “Pedro Passos Coelho” nas notícias. Adicionalmente, pelo facto de existirem várias personalidades com o mesmo nome mas cargos ou profissões distintas, o Verbetes é uma forma adicional de apoiar a desambiguação de menções a personalidades em notícias.

Mais informações sobre o projeto disponíveis em: http://labs.sapo.pt/2011/02/verbetes/

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.