estudo do uso de frequência de palavras para qualificação de entidades pessoa

O Objetivo desse artigo é apresentar a seguinte idéia:

Dado o nome de uma pessoa com presença na web. Seria possível descobrir suas principais características através de textos da própria web? ou seja, é possivel utilizar textos da web para analisar textos da web? Ainda melhor: seria possivel extrair essa informação de resumos de resultados do google sem ter de processar todos os link?

Para tentar responder essa pergunta eu utilizei algumas premissas:

  1. Analisar somente entidades do tipo pessoa.
  2. Existem homonimos, logo, analisar atraves de um nome é incorrer em casos de desambiguação.
  3. Utilizar um dicionário de negação para aquilo que uma pessoa não pode ser, ao menos literalmente.
  4. Não normalizar o texto.
  5. Utilizar uma fonte de dados que me desse resumos da localização do nome.

Para esse experimento escolhi o nome  “Roberto Carlos“. O procedimento deste experimento segue a ordem abaixo:

1Pesquisar Roberto Carlos no google:
Screenshot 2014-02-28 12.31.35

2 – Extrair os textos e links dos resultados
Utilizei um arquivo de texto para armazenar os links e textos que copiei manualmente somente da primeira página de resultado do google.

Aqui é onde mora a idéia central da proposta: Quando você procura um texto no google ele entrega um resultado que mostra o valor pesquisado em um contexto, logo, o texto pesquisado aparece cercado por um texto que o contextualiza.
E vem a pergunta: Essa contextualização é capaz de me dizer algo sobre o que procurei(para um ser humano é claro que sim) atravésde uma análise simples?

3 – Retirar toda pontuação
Elimiar a pontuação destroi o sentido mas gera tokens limpos.

4 – Tokenizar
Em termos de programção, tudo que fiz aqui foi
tokens = data.text.split(” “);

5 – Eliminar Números

Eliminei os números pq realmente só estou interessado nas palavras, pessoas não podem ser números para o caso que desejo abordar.

6 – Aplicar o dicionário de “O que uma pessoa não pode ser”
Para efeito de teste da idéia, retirei do próprio texto resultante da pesquisa as palavras desse dicionário, e de maneira manual. Fiz a negação de palavras como “born, album, Wikipedia, Shots,Discography”.

7- Contar Frequencia

Os tokens resultantes tiveram sua frequencia contada, como segue:

{ Roberto: 21,  Carlos: 21,  Brazilian: 7,  former: 1,  singer: 6,  composer: 2,  ‘Wikipedia,’: 1,  free: 2,  Silva: 1,  Rocha: 1,  retired: 1,  coach: 2,  Braga: 1,  winning: 1,  great: 1,  success: 1,  artist: 1,  roberto: 2,  carlos: 2,  ‘songs,’: 1,  artists: 1,  Latin: 1,  pop: 1,  superstar: 1,  players: 1,  Men: 1,  finishers: 1,  consistent: 1,  robertolange: 1,  ‘pentacampeão’: 1,  ‘técnico’: 1,  RobertoCarlos: 1,  people: 1,
player: 1 }

Ordenando, temos que:
Quando se olha somente os tokens com frequencia maior que 1.
Roberto Carlos é Brasileiro, cantor, compositor, livre, e treina alguma coisa.

Brazilian: 7 ocorrências
singer: 6
composer: 2
Free: 2
coach: 2

Ignorei Roberto e Carlos pq uma pessoa pode ser ela mesma. Creio que não preciso destacar isso.

Conclusão:
Esta análise foi feita a partir dos textos que apresentam a relevancia de um resultado do google para uma pesquisa. Pequenos resumos contextualizados.
Ela apontou para algumas caracteristicas interessantes de Roberto Carlos que refletem o conhecimento geral sobre Roberto Carlos.

Acredito que aumentar o número de resumos, ou seja, agregar mais páginas de resultado do google pode trazer mais riqueza e assertividade.
Isso valida a idéia de que um simples algoritmos de contagem de frequencia pode fazer emergir informação sintetizada e relevante sobre entidades pessoa ao utilizar resumos da busca do google ao invés de conteúdo dos links.

links:
Pesquisa sobre Roberto Carlos

Arquivo de texto com resultados do experimento

RuleSet em JS usado para extrair os tokens

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s