'Information Retrieval'에 해당되는 글 2

  1. 2007/08/08 1.1 정보검색문제의 예 - .1 (1)
  2. 2007/08/07 1. Boolean Model을 이용한 정보검색(Information Retrieval)
 

1.1 정보검색문제의 예 - .1

Information Retrieval | 2007/08/08 20:45 | Posted by gruter



많은 사람들이 가지고 있는 장서들중 하나는 세익스피어전집이다. "Brutus AND Ceasar AND NOT Calpurnia" 라는 단어들을 찾기위해 이들을 포함하는 세익스피어의 작품을 찾는다고 가정해보자. 그중 한가지 방법은 처음부터 끝까지 모든 텍스트들을 읽는것인데 이경우 "Brutus" 와 "Caesar"를 포함하거나 "Calpurnia"를 포함하지 않는지를 고려하지 않고 모든 작품을 읽어야 한다. 문서검색을 하는 심플한 형태는 컴퓨터가 모든 문서를 선형적으로 스캔하게 하는 것이다. 이러한 프로세스는 텍스트를 "grepping"하는 것으로 주로 알려진, Unix 명령어인 grep같은 것이 이것을 수행한다. 문서를 grepping하는 것은 특히 현대컴퓨터들의 빠른 속도하에서 매우 효과적인 프로세스가 될수 있고, "정규표현식"을 사용하는 와이들카드 패턴매칭을 위한 유용한 도구를 제공한다. 현대 컴퓨터에게는 단순한 쿼리들에 대해서는 grep 외에는 필요하지 않을 수 있다.(세익스피어의 전집에서 사용되는 것은 기껏해야 100만단어 미만이다.)

그러나 많은 목적을 위해서는 더 많은 것들이 필요하다:
1.많은 수의 문서콜렉션들을 빨리 처리하기 위해서: 온라인 데이터의 수는 컴퓨터의 속도만큼이나 빨리 증가하고 있고 현재 우리는 수십억에서 수백억의 단어들을 처리해야 한다.

2.좀더 유연한 매칭처리를 허용해야 한다. :예를 들어 "5단어들 이내에" 혹은 "동일 문단에서"라는 조건으로 "Romans NEAR countrymen"이란 쿼리를 grep 처리하는 것은 비현실적이다.

3. 랭킹된 검색을 허용하기 위해서 필요하다.: 많은 경우에 있어 특정단어를 포함하는 수많은 문서들 중에서  좀더 나의 답을 제공하는 결과를 원할수 있다.

미리말하자면 각 쿼리에 대해 문서를 선형적으로 스캐닝하는 것을 피하는 방법은 문서들을 "인덱스"하는 것이다. 세익스피어 전집으로 돌아가서 Boolean 검색모델을 설명해보자. 각 문서들에 대하여 - 여기서는 세익스피어 작품- 세익스피어가 사용한 모든 단어들 가운데(세익스피어는 약 32,000정도의 단어를 사용했다.) 각 문서가 사용했던 안했던 간에 그 문서들을 기록한다고 가정해보자. 도 1.1에서 보듯이 그 결과는 쌍으로 이루어진 term-document "출현 매트릭스"로 된다. 여기서 "term"은 "단어"를 의미하는데 정보검색연구에서는 "term"이란 단어를 주로 선호한다. 이 매트릭스의 행이나 열을 살펴보면 각 텀에 대해 벡터값을 가질수 수있는데 이것은 해당 텀이 나타나는 문서들을 보여주는 것이고, 각 문서에 대한 벡터값을 가질수도 있는데 이것은 해당 문서에서 출현하는 텀들을 보여준다.

사용자 삽입 이미지
도 1-1. 텀-문서 출현 매트릭스. (i,j)의 값은 해당 칼럼으로 표현되는 작품 j가 행으로 표현되는 단어 i를 포함하면 "1"이 되고 그렇지 않으면 "0"이 된다.


"Brutus AND Casesar AND NOT Calpurnia"라는 쿼리에 답하기 위해 Brutus, Caesar와 ㅡCalpurnia에 대한 벡터값들을 취할수 있는데 이때 AND에 대한 비트연산을 수행한다.
 110100 AND 110111 AND 101111 = 100100
따라서 이 쿼리에 대한 답은 "Anthony and Cleopatra and Hamlet"이 되게 된다(도1-2)

사용자 삽입 이미지
도1-2."Brutus AND Casesar AND NOT Calpurnia"에 대한 세익스피어 작품 검색결과

Boolean 검색모델은 텀에 대한 Boolean으로 표현되는 형식의 쿼리로 언급하면 쉽다. 즉 텀들은 AND, OR, 그리고 NOT 연산으로 조합되어진다. 이러한 쿼리들은 단어의 집합으로서 각 문서들을 바라보게된다.
 




정보검색(Information Retrieval)이라는 용어의 의미는 상당히 광범위하다. 어쩌면 지갑에서 신용카드를 꺼내서 카드번호를 적는 그 자체도 정보검색의 일종이다. 하지만 학술적으로는 다음과 같이 정의될수 있다.

"정보검색(IR)이란 (주로 컴퓨터에 저장되어 있는) 방대한 콜렉션안에 있는 정보욕구를 해결해주는, 구조화되지 않은 자연상태(주로 text로 된)의 물질(문서같은)을 찾는 것이다"

이렇게 정의되는 정보검색은 도서관 사서, 법률 보조원과 전문 검색사들 같은 소수의 사람들만이 했던 활동으로 여겨져왔다. 지금은 세상이 변했고 수백만의 사람들이 웹검색엔진을 이용하고 자신의 이메일을 사용하면서 매일 정보검색을 하고 있다. 정보검색은 정보를 접근하는데 있어 강력한 방법으로 빠르게 변화하고 있으며 전통적인 데이터베이스방식의 검색을 추월하고 있다.

정보검색은 위에서 언급한 핵심적 정의를 넘어서 다른 종류의 데이터나 정보문제로까지 확장될수 있다. "비정형화된 데이터"라는 것은 명확하지 않고, 의미론적으로 명백하지 않으며, 컴퓨터가 이해하기 쉽지않는 구조를 가진  데이터를 말한다. 그것은 구조화된 데이터의 반대개념으로 표준적인 예로, 분류를 주업으로 하는 회사들이 상품목록이나 개인정보들을 유지하기 위해 주로 사용하는 관계형데이터베이스를 들수 있다. 현실적으로는 완전히 "비정형적인" 데이터는 존재하지 않는다. 만약 당신이 인간이 사용하는 언어들의 잠재적인 언어구조를 세어본다면 모든 텍스트 데이터에 대하여 이말이 맞다는걸 확인할수 있을것이다. 그러나 이러한 것들이 명백히 구조화되었다는 것을 인정한다면 대부부분의 텍스트는 구조를 가지고 있는것을 알수 있는데 그것은 명백히 마크업으로 표현된 문서에서 주로 나타나는 제목, 문단 각주 등의 구조를 가지고 있다. 정보검색은 또한 "자바"를 제목에서 가지고 있고 본문엔 여러가지를 단어들을 가지는 문서를 찾는것처럼 "준-구조화된" 검색을 용이하게 하는데 사용되기도 한다.

정보검색분야는 또한 문서들을 처리하거나 검색된 문서집합을 점더 깊이 처리하는 과정을 포괄하기도 한다. 문서집합이 주어진다면 클러스터링은 문서들의 내용에 기초하여 좋은 문서그룹을 만드는 일을 한다. 주제가 주어진다면 분류는 각 문서가 어디에 속해있는가를 결정하는 일을 수행한다. 대체로 처음엔 수동으로 일정 문서들을 분류한다음에 새로운 문서에 대해서는 자동으로 분류되겠끔 처리하는 것이 보통이다.

이 장에서는 정보검색에 수반되는 문제점을 시작으로 텀-문서 매트릭스 구조의 아이디어를 살펴보며, 중심적인 역인덱스데이터 구조를 살펴볼것이다. 그런다음에 Boolean 검색모델과 어떻게 쿼리들이 처리되는지를 살펴볼것이다.