Sobes.tech
Middle — Senior

O que é pesquisa semântica vs pesquisa lexical?

sobes.tech IA

Resposta da IA

A pesquisa lexical (lexical search) baseia-se na correspondência exata de palavras ou frases no texto. Ela procura documentos que contenham exatamente as palavras indicadas na consulta, sem considerar o significado ou o contexto. Por exemplo, uma busca por palavras-chave em uma base de dados ou uma filtragem simples por linhas.

A pesquisa semântica (semantic search) tenta entender o significado da consulta e dos documentos, usando modelos que levam em conta o contexto, sinônimos e relações entre palavras. Ela permite encontrar resultados relevantes mesmo que não haja correspondências exatas de palavras. Por exemplo, ao procurar por "automóvel", a pesquisa semântica pode retornar documentos com "carro" ou "transporte".

Assim, a pesquisa lexical é uma busca por correspondência literal, enquanto a semântica busca por correspondência de significado.

Exemplo usando Python e uma biblioteca para busca semântica:

from sentence_transformers import SentenceTransformer, util

model = SentenceTransformer('all-MiniLM-L6-v2')

corpus = ["Gosto de dirigir meu carro", "O clima hoje está ensolarado", "Os automóveis têm várias marcas"]
corpus_embeddings = model.encode(corpus, convert_to_tensor=True)

query = "automóvel"
query_embedding = model.encode(query, convert_to_tensor=True)

hits = util.semantic_search(query_embedding, corpus_embeddings, top_k=2)

for hit in hits[0]:
    print(corpus[hit['corpus_id']], f"(pontuação: {hit['score']:.4f})")

Este código encontrará frases próximas em significado à palavra "automóvel".