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".