Similaridade semântica e embeddings de sentenças
Sentence-BERT, similaridade cosseno para busca semântica e agrupamento de embeddings.
Similaridade semântica e embeddings de sentenças é uma aula grátis de Learn AI with Python no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Learn AI with Python, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Learn AI with Python inclui 4 aulas no total.
Frases, não apenas palavras
As representações vetoriais de palavras codificam palavras, mas muitas vezes precisamos comparar frases inteiras ou documentos. Calcular a média dos vetores de palavras faz perder nuances; queremos um único vetor que capture todo o significado.
O que são representações vetoriais de frases
As representações vetoriais de frases transformam uma frase inteira em um único vetor denso, para que frases com significado semelhante tenham vetores próximos, possibilitando a busca semântica e o agrupamento.
A biblioteca sentence-transformers
A biblioteca sentence-transformers facilita esse processo. Ela encapsula modelos de transformadores ajustados especificamente, que produzem diretamente vetores de frases de alta qualidade.
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("all-MiniLM-L6-v2")Por que usar all-MiniLM-L6-v2
all-MiniLM-L6-v2 é uma opção padrão popular: pequena, rápida e precisa, produzindo vetores com 384 dimensões. Ela equilibra bem velocidade e qualidade para a maioria das aplicações.
Codificando frases
model.encode transforma uma lista de frases em uma matriz de representações vetoriais, com uma linha por frase.
sentences = [
"The cat sits on the mat.",
"A feline rests on the rug.",
"I am learning machine learning.",
]
embeddings = model.encode(sentences)
print(embeddings.shape) # (3, 384)Medindo a similaridade
A similaridade de cosseno mede o ângulo entre dois vetores, ignorando sua magnitude. Valores próximos de 1 indicam significados muito semelhantes; valores próximos de 0 indicam que não estão relacionados.
from sentence_transformers import util
sim = util.cos_sim(embeddings[0], embeddings[1])
print(sim.item()) # high, both about a cat restingUsando cosine_similarity do sklearn
Também é possível usar diretamente o scikit-learn na matriz de representações vetoriais para obter uma matriz completa de similaridade entre cada par.
from sklearn.metrics.pairwise import cosine_similarity
matrix = cosine_similarity(embeddings)
print(matrix) # (3, 3) pairwise similaritiesIdeia da busca semântica
A busca semântica encontra documentos pelo significado, não por palavras-chave. Use encode na consulta e em todos os documentos e, em seguida, classifique os documentos pela similaridade de cosseno com o vetor da consulta.
Exemplo de busca semântica
Use encode no conjunto de documentos uma vez; depois, para cada consulta, calcule as similaridades e retorne as melhores correspondências.
from sentence_transformers import util
corpus = ["How to reset my password", "Refund policy details", "Track my order"]
corpus_emb = model.encode(corpus)
query_emb = model.encode("I forgot my login")
hits = util.semantic_search(query_emb, corpus_emb, top_k=2)
print(hits)Aplicações no mundo real
As representações vetoriais de frases possibilitam a correspondência de FAQ, a detecção de duplicatas, o agrupamento, a recomendação e a etapa de recuperação em sistemas RAG que fornecem contexto relevante a grandes modelos de linguagem.
Dicas para obter bons resultados
Escolha um modelo treinado para sua tarefa (busca semântica ou paráfrase). Normalize as representações vetoriais se sua métrica de similaridade exigir isso e, para grandes conjuntos de documentos, use um banco de dados vetorial para uma busca rápida pelos vizinhos mais próximos.
Verificação rápida
Teste seus conhecimentos sobre representações vetoriais de frases.
Resumo
Resumo: as representações vetoriais de frases codificam frases inteiras em vetores. Use SentenceTransformer("all-MiniLM-L6-v2") e model.encode(sentences) e, em seguida, compare usando a similaridade de cosseno. Isso possibilita a busca semântica: codifique a consulta e o conjunto de documentos e classifique-os por similaridade. É essencial para correspondência de FAQ, agrupamento e recuperação em RAG.
Aprenda Python com um tutor de IA — grátis
Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.
- Cursos
- 53
- Aulas
- 225
Perguntas Frequentes
A aula “Similaridade semântica e embeddings de sentenças” é grátis?
Sim — o texto completo de “Similaridade semântica e embeddings de sentenças” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Learn AI with Python, atualize para CoddyKit PRO. O curso de Learn AI with Python inclui 4 aulas no total.
O que vou aprender em “Similaridade semântica e embeddings de sentenças”?
Sentence-BERT, similaridade cosseno para busca semântica e agrupamento de embeddings. Você pratica Learn AI with Python com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Learn AI with Python?
Nenhuma experiência prévia é necessária. Learn AI with Python no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “Similaridade semântica e embeddings de sentenças”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Learn AI with Python?
Sim. Cada aula de Learn AI with Python inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Word2Vec: Skip-gram e CBOW
- Embeddings GloVe e FastText
- Classificação de texto com BERT
- Similaridade semântica e embeddings de sentenças