Como expresso relacionamentos sutis nos meus dados?


20

"A" está relacionado a "B" e "C". Como mostro que "B" e "C" também podem, por esse contexto, estar relacionados?

Exemplo:

Aqui estão algumas manchetes sobre uma peça recente da Broadway:

  1. Glengarry Glen Ross, de David Mamet, estrelado por Al Pacino, estréia na Broadway
  2. Al Pacino em 'Glengarry Glen Ross': O que os críticos pensaram?
  3. Al Pacino recebe críticas sem brilho pela Broadway
  4. Teatro Review: Glengarry Glen Ross está vendendo suas estrelas duro
  5. Glengarry Glen Ross; Ei, quem matou as luzes Klieg?

Problema:

A execução de uma correspondência de seqüência difusa sobre esses registros estabelecerá alguns relacionamentos, mas não outros, mesmo que um leitor humano possa selecioná-los do contexto em conjuntos de dados muito maiores.

Como encontro o relacionamento que sugere o item 3 relacionado ao item 4? Ambos podem ser facilmente conectados ao nº 1, mas não um ao outro.

Existe um nome (Googlable) para esse tipo de dados ou estrutura? Que tipo de algoritmo eu estou procurando?

Objetivo:

Dadas as 1.000 manchetes, um sistema que sugere automaticamente que esses 5 itens provavelmente são sobre a mesma coisa.

Para ser honesto, já faz tanto tempo desde que eu programei que não sei como articular adequadamente esse problema. (Eu não sei o que não sei, se isso faz sentido).

Este é um projeto pessoal e estou escrevendo em Python. Agradecemos antecipadamente por qualquer ajuda, conselhos e sugestões!


1
soa como análise de linguagem natural e / ou alguma outra técnica probabilística
jk.

2
Esta é uma grande pergunta!
Michael Brown

Acho que vi sistemas que podem fazer isso implementados no Prolog.
FrustratedWithFormsDesigner

1
@FrustratedWithFormsDesigner Suspeito que você esteja pensando em unificação na programação lógica ..?
Izkata

Respostas:



7

Você está entrando no mundo da semântica. Existem serviços públicos que analisam o texto e extraem os principais conceitos (uma rápida pesquisa da API Semântica apareceu alguns) que analisam um documento de formato livre e retornam os principais tópicos encontrados, incluindo pessoas, lugares, coisas, datas e conceitos . Alguns dos melhores retornarão em um formato conhecido como [RDF]

Se você deseja criar seu próprio sistema que possa fazer isso, o campo é Processamento de linguagem natural e essa é uma toca de coelho muito intrigante para mergulhar.


4

Se possível, adquira a história junto com o título. Às vezes, os títulos podem ficar "fofos" e fazer apenas referência tangencial ao que está sendo discutido. Isso funciona bem com humanos (porque eles têm contexto global ), mas não tão bem com a PNL.

Como mencionado na resposta de Karl Bielefeldt, agrupar é uma boa abordagem, mas o diabo está nos detalhes. Você não apenas precisa escolher uma abordagem de cluster que se adapte ao seu problema / espaço do usuário, mas também precisa descobrir o que está sendo clusterizado.

Minha formação é em Recuperação de Informação (IR) dos anos 80-90, e nos concentramos em pesquisa de similaridade e agrupamento baseado em centróides . Nossos documentos foram representados por vetores de atributos ponderados , que são basicamente uma lista de termos e sua importância relativa no documento. Essa abordagem pode funcionar (embora seja melhor com algumas coleções do que outras), mas tem problemas com manchetes curtas, porque faltam termos de vocabulário importantes para vincular as coisas. Mas se você usar todo o documento, obterá uma lista muito mais rica de termos (e provavelmente um melhor senso de importância), e essa lista de termos provavelmente facilitará a conexão (ou seja, computação) quando houver manchetes. "fofa".

Meu e-mail está no meu perfil se você quiser entrar em problemas de geração de vetores, etc.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.