spaCy로 Span 유사도 계산하기
의미적 유사도를 판단하면 미리 정해 둔 범주로 텍스트를 분류하거나, 관련 텍스트를 탐지하거나, 중복 콘텐츠를 표시하는 데 도움이 됩니다. 이 연습 문제에서는 문서의 여러 구간(Span)을 주어진 문서와 비교해 의미적 유사도를 계산해 보겠습니다. 목표는 canned dog food와 관련성이 가장 높은 세 토큰짜리 Span을 찾는 것입니다.
canned dog food 카테고리는 category에 저장되어 있어요. 텍스트 문자열은 이미 text 객체에 저장되어 있고, en_core_web_md 모델은 nlp로 로드되어 있습니다. 또한 text의 Doc 컨테이너는 이미 생성되어 document에 저장되어 있습니다.
이 연습은 강의의 일부입니다
spaCy로 배우는 자연어 처리
연습 안내
category에 대한Doc컨테이너를 생성하여category_document에 저장하세요.- 주어진
Span과category_document의 유사도 점수를 소수 셋째 자리까지 반올림하여 출력하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Create a Doc container for the category
category = "canned dog food"
category_document = nlp(____)
# Print similarity score of a given Span and category_document
document_span = document[0:3]
print(f"Semantic similarity with", document_span.text, ":", round(document_span.____(____), 3))