Pipeline lexical offline sobre metadados do Spotify
Ambos os modos convergem para o mesmo layout em parquet, desacoplando o código do tamanho do corpus.
DuckDB faz os joins em runtime — sem carregar tudo em memória.
preprocess() é chamada igualmente em build e em query — garantia de consistência.
Também armazena doc_lengths[field][doc_id] — essencial para normalização do BM25.
Persistência via pickle — artefato reutilizável sem re-indexar.
Vetor é a contagem de termos.
Acerta nomes próprios, termos raros, match lexical.
Falha com sinônimo, paráfrase e descrição conceitual.
Vetor é uma representação semântica aprendida.
Acerta conceito, sinônimo, tradução, descrição.
Menos preciso em nomes próprios e termos OOV.
Os testes funcionam como especificação executável do motor — pequenos erros de fórmula geram resultados silenciosamente ruins.