Quais são algumas maneiras padrão de calcular a distância entre consultas de pesquisa individuais?

8

Fiz uma pergunta semelhante perguntando sobre a distância entre "documentos" (artigos da Wikipedia, notícias, etc.). Fiz uma pergunta separada, porque as consultas de pesquisa são consideravelmente menores que os documentos e são consideravelmente mais barulhentas. Portanto, não sei (e duvido) se as mesmas métricas de distância seriam usadas aqui.

Métricas de distância lexical de baunilha ou métricas de distância semântica de última geração são preferidas, com maior preferência por esta última.

Matt
fonte
2
As consultas de pesquisa não são mais barulhentas (há muito poucas palavras em uma consulta que não estejam realmente relacionadas à pesquisa), mas podem conter erros de ortografia, ambiguidade, gíria e outras coisas com as quais você precisa lidar separadamente. Além desses problemas, consultas e documentos podem ser processados ​​praticamente da mesma maneira.
ffriend 06/07
talvez você possa extrair vetores de palavras-chave de consultas e, em seguida, calcular a distância entre esses vetores e como a semelhança é definida, acho que essa ainda é uma pergunta em aberto :) #
3977
1
Ambas as suas perguntas são amplas, subjetivas e exigirão manutenção significativa para evitar obsoletos. Como a comunidade aprecia esse tipo de pergunta, manter uma delas pode ser razoável - mas certamente não as duas, quando essa discussão é um subconjunto adequado da outra. Revise que tipos de perguntas devo evitar fazer?
Air
Obrigado, AirThomas! O post de ffriend certamente parece indicar que esta é claramente uma duplicata. Vou ver o que posso fazer sobre isso.
Matt

Respostas:

4

Pela minha experiência, apenas algumas classes de consultas podem ser classificadas em recursos lexicais (devido à ambiguidade da linguagem natural). Em vez disso, você pode tentar usar resultados de pesquisa booleanos (sites ou segmentos de sites, não documentos, sem classificação) como recursos de classificação (em vez de palavras). Essa abordagem funciona bem nas classes em que há uma grande ambiguidade lexical em uma consulta, mas existem muitos sites relevantes para a consulta (por exemplo, filmes, músicas, consultas comerciais e assim por diante).

Além disso, para classificação offline, você pode executar o LSI na matriz do site de consulta. Consulte o livro "Introdução à recuperação de informações" para obter detalhes.

Alx49
fonte
Em uma nota relacionada, encontrei este documento relevante .
Matt
4

A métrica de similaridade de cosseno faz um bom trabalho (se não perfeito) de controlar o comprimento do documento, portanto, comparar a semelhança de 2 documentos ou 2 consultas usando a métrica de cosseno e os pesos tf idf para as palavras deve funcionar bem em ambos os casos. Eu também recomendaria fazer o LSA primeiro em pesos tf idf e depois calcular as semelhanças da distância do cosseno.

Se você estiver tentando criar um mecanismo de pesquisa, eu recomendaria o uso de um mecanismo de pesquisa de código aberto gratuito, como solr ou elastic elastic, ou apenas as bibliotecas lucene brutas, pois elas fazem a maior parte do trabalho para você e possuem métodos incorporados para manipulando a consulta para documentar o problema de similaridade.

Simon
fonte