Ⅱ단원 · 4 / 5차시

자카드 유사도와 유클리드 유사도

두 텍스트 데이터가 얼마나 비슷한지를 수치화하는 유사도의 개념과, 집합을 이용한 자카드 유사도·벡터를 이용한 유클리드 유사도를 배웁니다.

학습목표

  • 유사도의 의미를 알고 자카드 유사도를 구하여 감성을 분석할 수 있다.
  • 벡터의 크기와 두 벡터 사이의 거리를 구할 수 있다.
  • 유클리드 유사도를 구하여 텍스트 데이터의 감성을 분석할 수 있다.

시간 배분

단계활동
도입유사도란 무엇일까?5분
활동1자카드 유사도로 리뷰 감성 분석하기20분
활동2벡터의 크기와 두 벡터 사이의 거리10분
활동3유클리드 유사도로 리뷰 감성 분석하기15분
정리확인하기 — 리조트 리뷰 분석5분
도입 · 5분

유사도란 무엇일까?

텍스트 데이터 사이의 유사한 정도를 수치화하여 나타낸 것을 유사도라고 합니다. '비슷한 정도'는 매우 주관적이므로 이를 정량화해야 하는데, 그 방법으로 집합을 이용하는 유사도(자카드 유사도)와 벡터를 이용하는 유사도(유클리드 유사도, 코사인 유사도)가 있습니다.

활동 1 · 20분

자카드 유사도로 리뷰 감성 분석하기

두 텍스트 데이터 $A, B$에 공통으로 포함된 단어 개수와 전체 단어 개수의 비를 자카드 유사도 $J(A,B)$라고 합니다.

$J(A,B)=\dfrac{n(A\cap B)}{n(A\cup B)}=\dfrac{n(A\cap B)}{n(A)+n(B)-n(A\cap B)}$

자카드 유사도는 0 이상 1 이하의 값을 가지며, 1에 가까울수록 유사, 0에 가까울수록 유사하지 않다고 판단합니다.

어느 음식점 리뷰의 긍정 단어 집합 $P$, 부정 단어 집합 $N$이 다음과 같다고 합시다.

$P=\{$청결하다, 편하다, 좋다, 친절, 빠르다, 맛있다, 많다, 알차다, 최고, 넓다$\}$
$N=\{$불결하다, 불편하다, 별로다, 불친절, 느리다, 맛없다, 적다, 빈약하다, 최악, 좁다$\}$

자카드 유사도 계산기 — 리뷰의 단어를 선택하세요
0.25
J(P, X)
0
J(N, X)
0
J(P,X) − J(N,X)
0
-
활동 2 · 10분

벡터의 크기와 두 벡터 사이의 거리

벡터 $\vec{a}=\overrightarrow{OA}=(a_1,a_2)$에서 시점과 종점 사이의 거리를 벡터의 크기 $|\vec{a}|$라 하고 $|\vec{a}|=\sqrt{a_1^2+a_2^2}$로 구합니다. 두 벡터 $\vec{a}=(a_1,a_2), \vec{b}=(b_1,b_2)$에 대하여 $\overrightarrow{AB}=\vec{b}-\vec{a}$의 크기, 즉 두 종점 사이의 거리는

$d(\vec{a},\vec{b})=|\vec{b}-\vec{a}|=\sqrt{(b_1-a_1)^2+(b_2-a_2)^2+\cdots+(b_n-a_n)^2}$

과 같이 구합니다. 이 거리가 유클리드 유사도이며, 값이 0에 가까울수록 두 데이터가 유사하다고 판단합니다.

활동 3 · 15분

유클리드 유사도로 리뷰 감성 분석하기

긍정 단어 $P=\{$청결하다, 빠르다, 맛있다, 많다$\}$, 부정 단어 $N=\{$불편하다, 별로다, 불친절, 최악$\}$이고 전체집합 $U=\{$청결하다, 빠르다, 맛있다, 많다, 불편하다, 별로다, 불친절, 최악$\}$일 때, 리뷰 X: "이 음식점은 매장이 청결하고 서비스도 빨랐지만, 음식이 별로고 직원들도 불친절해서 불편했습니다."의 유사도를 분석해 봅시다.

유클리드 유사도 계산기 — U에서 리뷰 X의 단어를 선택하세요
d(p, x)
0
d(n, x)
0
-

$d(\vec p,\vec x)=\sqrt5\approx2.24$, $d(\vec n,\vec x)=\sqrt3\approx1.73$이므로 $\vec x$의 종점이 $\vec n$의 종점에 더 가깝습니다. 따라서 리뷰 X는 부정 리뷰로 분류합니다.

정리 · 5분

확인하기 — 리조트 리뷰 분석

$U=\{$쾌적, 친절, 경치 좋음, 주차 공간 여유, 객실 좁음, 난방 안 됨, 방음 안 됨, 외짐$\}$이고 긍정 단어 $\vec p=(1,1,1,1,0,0,0,0)$, 부정 단어 $\vec n=(0,0,0,0,1,1,1,1)$일 때, 세 리뷰 $\vec a=(2,0,2,2,0,1,1,0)$, $\vec b=(1,0,1,1,0,1,1,0)$, $\vec c=(0,0,1,1,0,1,1,1)$의 감성과 서로 간의 유사도를 알아봅시다.

리뷰d(p, ·)d(n, ·)분류
A√6 ≈ 2.45√14 ≈ 3.74긍정
B√3 ≈ 1.73√5 ≈ 2.24긍정
C√5 ≈ 2.24√3 ≈ 1.73부정
리뷰 간 거리d(a, b)d(b, c)d(c, a)
√3 ≈ 1.73√2 ≈ 1.41√7 ≈ 2.65
흥미롭게도 감성이 서로 다르게 분류된 리뷰 B(긍정)와 C(부정)가 유클리드 유사도로는 가장 가깝습니다(거리 √2로 최소). 유클리드 유사도만으로는 감성의 극성과 다른 결과가 나올 수 있다는 뜻입니다. 다음 시간에는 이 문제를 코사인 유사도로 다시 살펴봅니다.

차시 예고

오늘은 자카드 유사도와 유클리드 유사도로 텍스트 데이터의 유사한 정도를 분석했습니다. 다음 시간에는 벡터의 방향을 이용하는 코사인 유사도를 배우고 Ⅱ단원을 정리합니다.

← 3차시 — TF-IDF로 중요한 단어 찾기 5차시 — 코사인 유사도와 단원 정리 →