10차시. 벡터저장소 이해
퀴즈 2 — 거리 점수를 기준과 바르게 비교하기
거리 점수(작을수록 가까움)를 관련 있음으로 바꾸지 말고, 임계값 이하인지 반환하세요.
빈칸 코드에서 시작합니다.
def close_enough(distance, max_distance):
pass결과 보기 (예시 풀이)
# 퀴즈 2. 거리 점수가 기준 이하인지 확인하기
# similarity_search_with_score가 주는 값은 "거리"입니다. 작을수록 가깝습니다.
def close_enough(distance, max_distance):
# 거리이므로 "이하(<=)"로 비교합니다. 유사도였다면 ">="를 썼을 것입니다.
return distance <= max_distance
MAX_DISTANCE = 0.5 # 예시로 정한 거리 기준
# with_score 결과를 흉내 낸 (본문, 거리) 목록입니다.
results = [("환불은 상품 수령 후 7일 이내", 0.3),
("불량품 교환은 30일 이내", 0.5),
("벽면에서 30cm 이상 떨어진 곳에 설치", 0.9)]
# 확인 1: 0.3은 "점수가 낮다"가 아니라 "아주 가깝다"입니다 → True
# 확인 2: 기준과 같은 0.5는 포함 → True
# 확인 3: 0.9는 너무 멀어서 → False
for text, d in results:
print(f"거리 {d}: {close_enough(d, MAX_DISTANCE)} {text}")
# 가까운 것만 남기기
kept = [text for text, d in results if close_enough(d, MAX_DISTANCE)]
print("남긴 조각 수:", len(kept))
실행 결과
거리 0.3: True 환불은 상품 수령 후 7일 이내
거리 0.5: True 불량품 교환은 30일 이내
거리 0.9: False 벽면에서 30cm 이상 떨어진 곳에 설치
남긴 조각 수: 2채점 기준: 유사도 점수라면 >= 를 써야 한다. 이 문제는 거리다.
관련 교안: 10차시 「5. 실습 ③ — 점수까지 확인하는 검색」 › 5-1) 두 가지 함수의 차이 (매우 중요!)