Pergunta

Eu vi alguns sites que lista relacionada pesquisas quando você executar uma pesquisa, ou seja, eles sugerem outras consultas de pesquisa que você pode estar interessado em.

Eu estou querendo saber a melhor maneira de modelar isso em um site de tamanho médio (tráfego não o suficiente para confiar em estatísticas de visitantes para inferir relações). Meu pensamento inicial é para armazenar o top 10 resultados para cada consulta única, então quando uma nova pesquisa é realizada para encontrar todas as pesquisas históricas que correspondem alguma quantidade dos 10 melhores resultados, mas idealmente não correspondem todos eles (combinando todos eles podem sugerir uma pesquisa equivalente e, portanto, não tão útil como uma sugestão).

Eu imagino que algumas pessoas têm feito essa funcionalidade antes e pode ser capaz de fornecer algumas idéias de diferentes maneiras de fazer isso. Eu não estou necessariamente procurando por uma ideia vencedora já que a solução será sem dúvida variam substancialmente dependendo do tamanho e da natureza do site.

Foi útil?

Solução

você já pensou em uma matriz de com palavras-chave em 1 eixo documentos vs. no outro eixo. Depois de encontrar o conjunto de vetors que representam as palavras-chave, encontrar conjuntos de palavra-chave (s) encontrados em seu conjunto de resultados inicial e, em seguida, encontrar uma maneira para classificar as outras palavras-chave por quantos documentos que fazem referência ou quantas vezes eles interset o conjunto de resultados intial .

Outras dicas

Eu tentei um número de diferentes abordagens para isso, com vários graus de sucesso. No final, acho que a melhor abordagem é altamente dependente do domínio / temas que está sendo procurado, e como os usuários fazem consultas.

O seu pensamento sobre o armazenamento de pesquisas anteriores parece razoável para mim. Eu seria curioso para ver como ele funciona na prática (quero dizer que da maneira mais sincera - há muitas nuances que podem causar essas técnicas a falhar no "mundo real", especialmente quando os dados são escassos).

Aqui estão algumas técnicas que eu usei no passado, e visto na literatura:

  1. Thesaurus abordagens:. Index em um dicionário de sinônimos para cada termo que o usuário tenha usado, e depois usar alguns heurística para filtrar os sinônimos para mostrar ao usuário como possíveis termos de pesquisa
  2. -tronco e pesquisa em que: Haste os termos de pesquisa (por exemplo: com a Porter Stemming Algoritmo e, em seguida, usar os termos em vez das consultas previstas inicialmente resultou, e dado ao usuário a opção de procurar exatamente os termos que eles especificados (ou fazer o oposto, procure os termos exatos primeira e uso decorrentes para encontrar os termos que estaminais para a mesma raiz. Esta segunda abordagem, obviamente, tem alguns pré-processamento de um dicionário conhecido, ou você pode coletar termos como termo de indexação encontra-los.)
  3. Encadeamento: analisar os resultados encontrados por termos de consulta e principais extrato do usuário a partir dos resultados de topo N ( KEA é uma biblioteca / algoritmo que você pode olhar para as técnicas de extração de palavras-chave.)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top