Este é o resumo e minhas principais conclusões do
Declaração do problema:
Dada uma consulta de um usuário, busque o artigo de ajuda mais relevante do banco de dados.
Iteração 1: Solução Inicial
- Indexou todos os artigos de ajuda (documentos) no banco de dados usando Lucene Index . Resumindo, ele gera um dicionário invertido que mapeia os termos para todos os documentos em que apareceu.
2. A consulta fornecida é usada para buscar todos os documentos relevantes (ocorrências) usando a indexação Lucene.
3. Cada acerto é pontuado usando o algoritmo BM25F , que leva em consideração a estrutura do documento , dando os pesos mais altos aos acertos no Título , depois aos acertos nas Palavras -chave e depois no Corpo , e retorna uma pontuação ponderada.
4. Retorne os artigos com melhor pontuação.
Por que falhou
Como o sistema de recuperação de documentos é baseado em Termo ( sintática ), sem levar em conta a semântica , seguem-se dois exemplos de casos de falha:
Iteração 2: solução final
Etapa 1: normalização de texto
“ como cancelar minhas contas premium imediatamente” normalizado para “ cancelar conta premium”
Etapa 2: mapeamento de consultas
Pode acontecer que a consulta normalizada não tenha nenhuma palavra em comum com as palavras dos artigos. Portanto, cada consulta é mapeada para uma consulta mais representativa para preencher a lacuna entre a terminologia do usuário e a terminologia do artigo.
Feito nas duas etapas a seguir:
- Agrupamento de consultas: as consultas são agrupadas com base em métricas de similaridade
2. Mineração de Tópicos e Pontuação Rep: Para cada uma das consultas no grupo Query, um repScore é calculado e as K principais consultas são selecionadas como Rep Queries
sim(RQ, Q2) é a semelhança entre a consulta bruta e outra consulta no grupo
sim(Q2, título) é a similaridade máxima entre Q2 e um dos tópicos do título (da mesma forma para o corpo)
Etapa 3: classificação de intenção
Consultas de cauda longa podem não ter uma Consulta Rep, caso em que uma CNN é usada para classificar a Intenção da consulta.
Por exemplo: “Cancelar sua assinatura premium” e “Cancelar ou atualizar uma assinatura premium comprada em seu dispositivo Apple” são considerados como tendo a mesma intenção de “cancelar premium”.
Fluxo geral
Também publicado aqui