TF와 IDF를 이용하여 문서의 집합(document collection)에서 사용자의 질의(query)에 대해 연관성의 정도에 따라 순서를 매겨 관련 문서를 보여주는 작업을 하고자 한다. 다음과 같은 몇 가지 용어를 가정한다.
N : 문서 집합내의 문서의 개수 이때, 다음과 같은 수식을 정의할 수 있다. idf w 이것을 응용하여 다음과 같은 8개의 문서로 구성된 문서 집합에서 "agent", "retrieval", "filtering", "information"의 4 단어에 대한 빈도수를 다음과 같이 구하였다고 가정하자. 질의와 각 문서간의 유사값 (similarity measure)은 간단한 계산을 위해 벡터의 내적 (inner product)를 이용한다. 즉, 질의 Q의 벡터가 <q 위의 가중치 공식을 이용하여 사용자가 "information retrieval agent"라고 질의를 했을 때, 관계되는 문서를 찾아 질의와 가장 유사값이 높은 문서부터 낮은 순서로 결과를 보여주려고 한다. 이때, 유사값을 구하는 진행과정을 보이고 질의에 대한 결과를 구하시오. 답) 우선 각 단어에 대한 DF 값을 구한다. agent의 경우 모든 문서에 나타나고, retrieval은 D d IDF값은 위의 공식을 이용하면 다음과 같다. idf 이를 이용하여 가중치를 구할 수 있고 각 문서를 가중치 벡터로 표현하면 다음과 같다. D D D D D D D D 질의가 "information retrieval agent"이므로 질의 Q에 대한 가중치 벡터는 다음과 같다. Q = <1, 3, 0, 2> 이제 Q와 각 문서 D와의 유사성 값을 Sim(Q,D) = Sim(Q,D Sim(Q,D Sim(Q,D Sim(Q,D Sim(Q,D Sim(Q,D Sim(Q,D Sim(Q,D Sim(Q,D)의 값이 높을 수록 더 관련이 있는 문서이므로 출력 순서는 다음과 같다. D
d
idf
f
w
=
(N/d
)+1
= f
idf
문서 1 (D ) : agent 2번, retrieval 3번, filtering 0번, information 5번
문서 2 (D ) : agent 4번, retrieval 0번, filtering 3번, information 3번
문서 3 (D ) : agent 3번, retrieval 2번, filtering 0번, information 0번
문서 4 (D ) : agent 6번, retrieval 0번, filtering 0번, information 4번
문서 5 (D ) : agent 8번, retrieval 0번, filtering 5번, information 0번
문서 6 (D) : agent 7번, retrieval 0번, filtering 0번, information 0번
문서 7 (D ) : agent 7번, retrieval 0번, filtering 0번, information 3번
문서 8 (D ) : agent 4번, retrieval 0번, filtering 0번, information 0번
각 문서는 가중치의 벡터로 표현된다고 가정한다. 예를 들어, 문서 D 은 <
,
,
,
>로 나타낸다. 질의의 경우는 각 단어의 TF값이 최대 1이므로 4 개의 단어 중 질의에 나타나는 단어는 가중치가 그 단어의 IDF값이 되고, 그렇지 않은 단어는 0이 된다. 따라서 질의 Q가 "filtering information"이라면 Q에 대한 벡터는 <0, 0, idf
, idf
>가 되고, Q가 "information retrieval agent"이면 벡터는 <idf
, idf
, 0, idf
>가 된다. (여기서 IDF값을 구할 때, Q는 N에 포함시키지 않기로 하며 결과적으로 위의 문서 8개를 대상으로 구한 IDF값과 같아진다.)
, q
, q
, q
>이고, 문서 D의 벡터가 <d
, d
, d
, d
>라면, 유사값 Sim(Q,D)는 Sim(Q,D) =
q
d
의 공식에 의해 계산하고 Sim(Q,D)값이 클수 록 유사성이 높다고 가정한다.
, D
에, filtering은 D
, D
에, 그리고 information은 D
, D
D
, D
에 나타난다. 따라서, DF값은 다음과 같이 구해진다.
= 8, d
= 2, d
= 2, d
= 4
=
(8/8)+1 = 1
idf =
(8/2)+1 = 3
idf =
(8/2)+1 = 3
idf =
(8/4)+1 = 2
= <2, 9, 0, 10>
= <4, 0, 9, 6>
= <3, 6, 0, 0>
= <6, 0, 0, 8>
= <8, 0, 15, 0>
= <7, 0, 0, 0>
= <7, 0, 0, 6>
= <4, 0, 0, 0>
q
d
를 이용하여 구하면 다음과 같다.
) = 2+27+0+20 = 49
) = 4+0+0+12 = 16
) = 3+18+0+0 = 21
) = 6+0+0+16 = 22
) = 8+0+0+0 = 8
) = 7+0+0+0 = 7
) = 7+0+0+12 = 19
) = 4+0+0+0 = 4
> D
> D
> D
> D
> D
> D
> D
'컴퓨터' 카테고리의 다른 글
웹표준을 검사하려면 (0)
2007/04/24
인터넷 사용시 Flash9.ocx 오류해결 방법 (0)
2006/12/22
윈도우의 최대절전모드 (0)
2006/12/12
비유사성(dissimilarity)의 측정 (0)
2006/10/30
데이터마이닝 기법 : 군집분석 (0)
2006/10/30
TF-IDF (0)
2006/10/27
상호정보척도 Mutual Information (0)
2006/10/27
정규표현식 (0)
2006/10/23
JSP, PHP, ASP, CGI 비교 (0)
2006/10/16
웹 프로그래밍 언어 비교 : Perl, ASP, PHP, JSP (0)
2006/10/16
최대 절전 모드의 시작과 끝 (0)
2006/10/02