¿Qué es la búsqueda semántica frente a la búsqueda léxica?
sobes.tech AI
Respuesta de la IA
La búsqueda léxica (lexical search) se basa en la coincidencia exacta de palabras o frases en el texto. Busca documentos que contienen exactamente las palabras indicadas en la consulta, sin tener en cuenta el significado o el contexto. Por ejemplo, la búsqueda por palabras clave en una base de datos o un filtrado simple por cadenas.
La búsqueda semántica (semantic search) intenta entender el significado de la consulta y los documentos, utilizando modelos que consideran el contexto, los sinónimos y las relaciones entre palabras. Permite encontrar resultados relevantes incluso si no hay coincidencias exactas de palabras. Por ejemplo, al buscar "automóvil", la búsqueda semántica puede devolver documentos con "coche" o "transporte".
De este modo, la búsqueda léxica es una búsqueda por coincidencia literal, y la semántica por correspondencia de significado.
Ejemplo usando Python y una biblioteca para búsqueda semántica:
from sentence_transformers import SentenceTransformer, util
model = SentenceTransformer('all-MiniLM-L6-v2')
corpus = ["Me gusta conducir mi coche", "El clima hoy es soleado", "Los automóviles tienen diferentes marcas"]
corpus_embeddings = model.encode(corpus, convert_to_tensor=True)
query = "automóvil"
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"(puntuación: {hit['score']:.4f})")
Este código encontrará frases similares en significado a la palabra "automóvil".