Classificação do sentimento da avaliação
Agora que você calculou os embeddings, é hora de calcular as distâncias de cosseno e extrair o rótulo mais semelhante.
Você fará isso definindo uma função chamada find_closest()
, que pode ser usada para comparar os embeddings entre um vetor e vários outros e retornar a distância mais próxima e seu índice. Em seguida, você percorrerá as avaliações e usará o site find_closest()
para encontrar a distância mais próxima para cada avaliação, extraindo o rótulo classificado usando o índice.
Os objetos class_embeddings
e review_embeddings
que você criou no último exercício estão disponíveis para uso, assim como os objetos reviews
e sentiments
.
Este exercício faz parte do curso
Introdução aos embeddings com o OpenAI API
Instruções do exercício
- Defina uma função chamada
find_closest()
que retorna a distância e o índice da incorporação mais semelhante àquery_vector
. - Use o site
find_closest()
para encontrar a distância mais próxima entre as incorporações de cada análise e o siteclass_embeddings
. - Use o
'index'
declosest
para fazer um subconjunto desentiments
e extrair o'label'
.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# Define a function to return the minimum distance and its index
def find_closest(query_vector, embeddings):
distances = []
for index, embedding in enumerate(embeddings):
dist = distance.cosine(____, ____)
distances.append({"distance": dist, "index": index})
return ____(distances, key=lambda x: x["distance"])
for index, review in enumerate(reviews):
# Find the closest distance and its index using find_closest()
closest = ____(review_embeddings[____], ____)
# Subset sentiments using the index from closest
label = ____
print(f'"{review}" was classified as {label}')