Pesquisa Semântica vs. Pesquisa Lexical vs. Pesquisa de Texto Completo
No mundo digital em que vivemos hoje, os mecanismos de busca se tornaram parte integrante de nossas vidas, ajudando-nos a acessar informações de forma rápida e fácil. No centro desses mecanismos de busca estão os algoritmos de recuperação de informações, que determinam como as informações são recuperadas.
Há vários algoritmos de recuperação de informações disponíveis, que vão desde métodos tradicionais, como busca de texto completo e lexical, até técnicas mais avançadas, como busca semântica. Cada um desses algoritmos tem suas próprias vantagens e desvantagens; portanto, é crucial escolhermos o melhor algoritmo de recuperação de informações que se adeque ao nosso caso de uso.
Este artigo discutirá esses algoritmos de recuperação de informações, com foco específico em buscas lexicais, de texto completo e semânticas. Vamos começar pelo mais simples: a busca lexical.
Busca Lexical
A busca lexical, também conhecida como busca por palavras-chave, refere-se a um algoritmo de busca baseado na análise de texto em nível de palavra (daí o nome). Esse algoritmo de recuperação de informações corresponde os termos da consulta exatamente como aparecem no texto. Por exemplo, se nossa consulta de busca for “run,” o algoritmo retornará todas as instâncias do termo “run” em um documento.
A busca lexical é o algoritmo de recuperação de informações mais básico disponível, pois retorna apenas aqueles termos em um documento que contêm uma correspondência exata com nossa consulta. Isso torna a busca lexical particularmente útil quando precisão e especificidade são necessárias, como ao encontrar documentos ou registros que contenham uma string ou palavra específica.
Figura: Ilustração de uma busca lexical simples.
No entanto, a simplicidade da busca lexical também leva a várias desvantagens. Primeiro, ela não tolera erros de digitação em nossa consulta. Por exemplo, se inserirmos por engano “ron” em vez de “run,” não obteremos os resultados que estamos procurando. Segundo, a busca lexical não leva em conta sinônimos, stemming ou lematização. Consequentemente, buscar por “run” não corresponderá a palavras semelhantes em formas diferentes, como “ran” ou “running.”
Além disso, a busca lexical pode não ser a melhor opção se estivermos procurando os registros mais relevantes com base em nossa consulta. Os documentos ou registros que contêm nosso termo de consulta não têm nenhuma noção de ordem ou classificação, tornando difícil avaliar a relevância dos resultados retornados pela busca lexical.
Como você pode ver, a busca lexical definitivamente tem limitações significativas ao considerar as demandas da maioria dos casos de uso de recuperação de informações. Além disso, os usuários frequentemente exigem mais flexibilidade em relação aos termos incluídos nos resultados, algo que a busca lexical também não oferece. É aí que entra a busca de texto completo.
Busca de Texto Completo
Uma busca de texto completo opera de forma semelhante a uma busca lexical, procurando encontrar registros que contenham os termos em nossa consulta. No entanto, a busca de texto completo oferece capacidades mais amplas e avançadas do que a busca lexical, abordando os problemas associados à busca lexical.
A implementação da busca de texto completo frequentemente incorpora técnicas populares de Processamento de Linguagem Natural (PLN), como stemming e lematização. Isso significa que, quando buscamos pelo termo “run,” todos os documentos ou registros com palavras semelhantes em formas diferentes, como “ran” ou “running,” também serão incluídos nos resultados.
Figura: Ilustração do avanço da busca de texto completo em comparação com a busca lexical tradicional.
Para ordenar os resultados de busca com base na relevância, também podemos implementar algoritmos como TF-IDF e BM25. Vamos falar mais sobre esses dois algoritmos.
Fundamentos de TF-IDF e BM25
Frequência do Termo-Frequência Inversa do Documento (TF-IDF) usa um método estatístico simples para determinar a relevância de um documento ou registro para um determinado termo ou consulta. Ele consiste em dois componentes:
Frequência do Termo (TF): Isso calcula o número de ocorrências do termo da consulta em um documento. Portanto, quanto mais frequentemente o termo da consulta aparecer em um documento, maior será a pontuação TF para esse documento.
Frequência Inversa do Documento (IDF): Isso calcula a proporção de documentos em toda a coleção que contêm o termo da consulta.
O principal objetivo do componente IDF é penalizar termos comuns e menos significativos, como “um,” “uma,” “o,” e “e,” que tendem a aparecer em quase todos os documentos. Por exemplo, se nosso termo de consulta for “mix and match,” queremos que os documentos mais relevantes contenham muitas instâncias de “mix” e “match”, em vez de numerosas ocorrências de “and”. Finalmente, a pontuação TF-IDF final para um documento é obtida multiplicando as pontuações TF e IDF.
Uma desvantagem principal do TF-IDF é que ele não considera o comprimento do documento ao calcular a relevância. Na realidade, documentos mais longos têm maior probabilidade de conter nosso termo de consulta com mais frequência. Por exemplo, se nosso termo de consulta aparece 10 vezes em um documento de 1.000 palavras (Documento A), enquanto aparece apenas 5 vezes em um documento de 50 palavras (Documento B), poderíamos argumentar que o Documento B pode ser mais relevante apesar de ter menos ocorrências.
BM25 aborda essa limitação do TF-IDF introduzindo termos adicionais e expandindo a equação do TF-IDF para levar em conta o comprimento do documento.
Ao fazer isso, o BM25 elimina o viés em direção a documentos mais longos ao medir a relevância de um documento para qualquer consulta dada.
O Conceito de Embedding Esparso
Tanto TF-IDF quanto BM25 podem ser representados como embeddings esparsos. Um embedding esparso é um vetor n-dimensional, em que a dimensionalidade depende do número de termos únicos em nosso corpus ou coleção de documentos.
Por exemplo, digamos que temos 10 documentos contendo um total de 10.000 palavras únicas. Cada documento seria então transformado em um vetor de 10.000 dimensões, com cada dimensão representando a importância de um termo específico nesse documento.
Figura: Ilustração da transformação de documento em embedding esparso.
Como a dimensionalidade do vetor é determinada pelo número de termos únicos no corpus, frequentemente acabamos com vetores de enorme dimensionalidade. Além disso, como um documento normalmente contém apenas uma pequena fração dos termos disponíveis, a grande maioria dos elementos desses vetores será zero, como você pode ver na imagem acima. É por isso que esses vetores são comumente chamados de embeddings esparsos.
Agora que todos os documentos estão representados como embeddings, podemos calcular a similaridade entre quaisquer dois embeddings usando algoritmos comuns como similaridade de cosseno ou distância Euclidiana. A intuição é que dois documentos com termos semelhantes de alta importância terão alta similaridade.
Apesar das vantagens dos embeddings esparsos na busca de texto completo, há uma desvantagem significativa: eles não levam em conta o significado semântico dos termos da consulta. Por exemplo, se nossa consulta for “dispositivo Apple”, documentos que contêm muitas ocorrências de “apple” (a fruta) podem ter classificação mais alta do que documentos de tecnologia que são mais relevantes para nossa consulta, mas não contêm o termo “Apple” (a empresa).
Figura: Exemplos de consultas que exigem compreensão semântica e contexto.
Quando incluir resultados com significados semânticos semelhantes é um requisito para nosso caso de uso, a busca de texto completo pode não ser o melhor algoritmo de recuperação de informações a usar. É aqui que a busca semântica entra em cena.
Busca Semântica
Busca semântica é uma abordagem útil quando queremos resultados de busca que levem em conta o significado semântico. Usando o exemplo mencionado na seção anterior, quando digitamos uma consulta como “dispositivo Apple”, na verdade não estamos procurando documentos ou registros que contenham a palavra “apple”. Em vez disso, buscamos documentos que discutam tecnologias, preferencialmente dispositivos Apple. Nesse caso, a busca de texto completo produziria resultados indesejados, tornando a busca semântica a melhor opção.
O Conceito de Embedding Denso
A busca semântica funciona utilizando modelos sofisticados de IA para transformar nossos documentos e termos de consulta em embeddings. No entanto, os embeddings produzidos por esses modelos, frequentemente chamados de embeddings densos, diferem dos embeddings esparsos discutidos anteriormente.
Em embeddings densos, os valores em cada dimensão do vetor raramente são exatamente zero, e a dimensionalidade em si depende do modelo usado. No entanto, a dimensionalidade dos embeddings densos é muito menor do que a dos embeddings esparsos.
Figura: Ilustração da transformação de documento em embedding denso.
Embeddings densos contêm informações semanticamente ricas sobre o conteúdo que representam. Portanto, para determinar o quão semanticamente semelhantes dois embeddings densos são, podemos simplesmente usar algoritmos de similaridade populares como similaridade de cosseno ou distância euclidiana.
O Papel dos Bancos de Dados Vetoriais na Busca Semântica
Em aplicações reais de recuperação de informações, é provável que lidemos com milhões ou até bilhões de embeddings densos. Portanto, é impraticável armazenar todos esses embeddings na memória do nosso computador; e precisamos de um sistema de banco de dados capaz de armazená-los com eficiência.
Um banco de dados vetorial é um sistema que nos permite armazenar grandes quantidades de embeddings densos com eficiência, empregando métodos avançados de indexação, como vizinhos mais próximos aproximados (ANN) e mundo pequeno navegável hierárquico (HNSW). Ele também fornece funcionalidade para realizar operações de busca vetorial para encontrar os documentos semanticamente mais relevantes para nossa consulta usando algoritmos de similaridade populares como similaridade de cosseno e distância euclidiana.
Figura: Fluxo de trabalho da realização de uma operação de busca vetorial.
Além disso, bancos de dados vetoriais populares como Milvus oferecem recursos avançados, como busca híbrida, que nos permite realizar buscas vetoriais combinando os pontos fortes de embeddings densos e esparsos. Discutiremos isso mais a fundo nas seções seguintes.
Busca Lexical vs. Busca de Texto Completo vs. Busca Semântica
Agora que temos uma compreensão detalhada de busca lexical, de texto completo e semântica, vamos comparar seus mecanismos de correspondência, complexidade, exemplos de casos de uso e desempenho.
| Busca Semântica | Busca Lexical | Busca de Texto Completo | |
|---|---|---|---|
| Mecanismo | Contexto e intenção | Correspondência exata | Palavra-chave e relevância |
| Complexidade | Alta | Baixa | Média |
| Desempenho | Mais lenta | Rápida | Moderado |
| Casos de Uso | Sistemas baseados em NLP, geração aumentada por recuperação (RAG), aplicações impulsionadas por LLM, sistemas de recomendação | Busca simples | Sistemas com muitos documentos |
Tabela: Busca Lexical vs. Busca de Texto Completo vs. Busca Semântica
Em termos do mecanismo de correspondência, a busca lexical é a mais simples das três, pois corresponde a termos exatos na consulta. A busca de texto completo melhora a busca lexical ao examinar documentos inteiros em busca de ocorrências dos termos da consulta, permitindo-nos classificar os resultados com base em sua relevância para a consulta. Enquanto isso, a busca semântica corresponde os termos da consulta a uma coleção de documentos com base no significado semântico e no contexto, utilizando modelos avançados de aprendizado profundo e técnicas de NLP.
Quanto à complexidade, a busca lexical também é a opção mais simples. A busca de texto completo é ligeiramente mais complexa devido à introdução de algoritmos como TF-IDF ou BM25, que transformam textos em embeddings esparsos. A busca semântica é a mais complexa porque emprega modelos avançados de aprendizado profundo para converter textos em embeddings densos.
Por exemplo, a busca lexical é uma ótima escolha quando a correspondência exata é crítica, como localizar um nome de variável em buscas de código ou encontrar um ID de produto em um documento. A busca de texto completo é adequada para aplicações quando se trata de encontrar documentos com termos ou conceitos especiais na consulta, como pesquisar bancos de dados acadêmicos ou repositórios jurídicos. A busca semântica é ideal para casos de uso em que compreender o contexto é a prioridade, como chatbots de suporte ao cliente, sistemas de recomendação e descoberta de conteúdo.
Em termos de desempenho, as buscas semântica e de texto completo são relativamente mais lentas devido à sua complexidade, enquanto a busca lexical é mais rápida por causa de sua abordagem direta.
O Conceito de Busca Híbrida
Considerando a diversidade e os prós e contras de cada algoritmo de recuperação de informações, escolher o melhor não é fácil e pode não atender realmente a todos os seus requisitos. Em casos de uso práticos, podemos até precisar empregar mais de um algoritmo para atender a várias necessidades dentro da nossa aplicação, pois sistemas eficazes de recuperação de informações devem fornecer tanto compreensão semântica quanto correspondência exata de palavras-chave para os usuários. A busca híbrida é um conceito projetado para enfrentar esse desafio.
Busca híbrida nos permite combinar dois algoritmos de busca diferentes, mais comumente a combinação de busca semântica com busca de texto completo ou lexical. No entanto, implementar uma busca híbrida apresenta desafios devido aos diferentes sistemas envolvidos. Especificamente, precisamos de um banco de dados vetorial como o Milvus para armazenar embeddings densos e realizar buscas semânticas e de um mecanismo de busca como o Elasticsearch para realizar buscas de texto completo.
No entanto, usar dois sistemas separados para acomodar diferentes algoritmos de recuperação introduz novas complexidades. Isso significa lidar com configurações e tarefas de manutenção separadas, o que pode levar a problemas de integração no futuro. Essa abordagem também pode dobrar nossos custos ao exigir armazenamento de dados em duas infraestruturas.
Figura: Elasticsearch vs Milvus na busca híbrida.
Uma solução melhor é usar um sistema unificado capaz de facilitar tanto buscas semânticas quanto buscas de texto completo/lexicais. O Milvus é um banco de dados vetorial de código aberto perfeito para esse caso, pois oferece suporte à implementação de buscas híbridas semânticas e de texto completo. Além disso, o Milvus também oferece suporte a busca com filtragem de metadados, busca por intervalo, e reclassificação para obter os resultados mais precisos.
Com o Milvus, podemos armazenar todos os dados necessários para vários tipos de buscas, incluindo embeddings densos, embeddings esparsos e metadados. Isso nos permite realizar buscas híbridas — como buscas semânticas e de texto completo ou lexicais. Graças aos seus métodos avançados de indexação, o Milvus também é altamente otimizado para operações de busca vetorial, acelerando significativamente o processo de recuperação de informações em comparação com o Elasticsearch.
Conclusão
A escolha do algoritmo de recuperação de informações desempenha um papel importante na determinação da eficiência e relevância dos resultados de busca em nossa aplicação. A busca lexical oferece correspondência exata de termos, o que a torna ideal para cenários em que correspondências exatas são essenciais. A busca de texto completo introduz avanços à busca lexical ao incorporar técnicas como stemming, correspondência aproximada e ranqueamento por relevância com algoritmos como TF-IDF e BM25, tornando-a adequada para aplicações com muitos documentos. Enquanto isso, a busca semântica fornece capacidades para compreender contexto e intenção, tornando-a altamente útil para sistemas complexos baseados em PLN, como chatbots de atendimento ao cliente.
No entanto, à medida que cresce a demanda por sistemas de busca flexíveis e eficientes, a busca híbrida se torna uma solução prática para aplicar os pontos fortes de múltiplos algoritmos de recuperação. Ao integrar tanto a busca semântica quanto a busca de texto completo/lexical, o Milvus oferece flexibilidade e uma experiência do usuário aprimorada. Confira este tutorial para experimentar nossas buscas semânticas e de texto completo com o Milvus.
Recursos relacionados
Continue lendo

Zilliz Cloud Now Available in Azure North Europe: Bringing AI-Powered Vector Search Closer to European Customers
The addition of the Azure North Europe (Ireland) region further expands our global footprint to better serve our European customers.
Milvus/Zilliz + Surveillance: How Vector Databases Transform Multi-Camera Tracking
See how Milvus vector database enhances multi-camera tracking with similarity-based matching for better surveillance in retail, warehouses and transport hubs.

Introducing DeepSearcher: A Local Open Source Deep Research
In contrast to OpenAI’s Deep Research, this example ran locally, using only open-source models and tools like Milvus and LangChain.


