검색 이론 개요 (2/3) - 검색모델, 색인, 역색인, 조회

2022. 5. 14. 12:57검색

728x90
반응형

1. 검색모델

1) Corpus(말뭉치): 자료를 검색할 Corpus가 존재해야 합니다.

2) Topic(주제): 그 Corpus에서 자료를 검색하기 위한 Topic이 존재해야 합니다.

3) Relevance(관련성) : 어떠한 문서가 Topic을 포함하고 있으면 Relevance 하다고 합니다.

=> 적합, 부적합으로 나눌 수 있고, 매우적합/적합/부분적합/부적합 으로도 나눌수 있다.

예를 들어 서울의 땅 크기(주제)를 물었는데, 서울의 지리와 면적에 관련된 문서가 나오면 관련성이 있는 것이고 서울 인구 수, 취업률 같은 문서가 나오면 Non-Relevance 하다고 합니다.

4) Query(질의): DB에서는 SQL로 질의를 하지만, 정보검색(IR)에서는 자연어를 사용해 질의합니다.

5) Model(검색모델): Boolean, Vector, Probability 등 다양한 모델을 사용하며 각각의 특징이 있습니다. Boolean 모델 , Vector 모델, Probability 모델 등 다양한 모델을 사용함. 모델에 따라 질의의 Format은 약간 달라질 수 있음 (예를들어 Boolean 모델은 And, Or, Not을 사용하는 질의를 씀)

2. 적합한(Relevance) 문서는 무엇인가?

어떤 문서가 질의(Query)에 가장 적합(Relevance)할까요?

정보검색에서 완벽하게 일치하는 문서란 없습니다. 말 그대로 검색(Retreival)이니까요.

정보검색은 질의와 전체문서를 이용해서 각각의 문서에 가중치점수를 매겨 적합한 문서를 찾습니다.

그중 가장 대표적인 것이 TF(질문에서 Term의 빈도수) 와 DF(특정 단어가 들어간 문서의 수)를 이용한 방법입니다.

3. TF-IDF를 이용한 Ranking

전체 문서를 단순히 키워드를 이용해서 분류하게 되면 시간도 오래 걸리고 불필요한 데이터가 많이 포함되게 됩니다.

그래서 문서의 관련성을 점수(=가중치, Weight)를 매겨 Ranking해야 합니다.

그 중 TF-IDF(Term Frequency-Inverse Document Frequency) 는 단어의 빈도와 문서의 빈도를 사용하여 각 단어들마다 중요한 정도를 가중치로 주는 방법입니다. 주로 문서의 유사도를 구하거나 검색 시스템에서 결과, 특정 단어의 중요도를 구할 때 사용됩니다. 생소한 글자 때문에 어려워 보일 수 있지만, 의미를 보면 간단합니다.

3-1 TF (Term Frquency)

특정 문서 내에서 특정 단어의 빈도 수를 의미합니다.

TF ( d , t ) : 특정문서(d)에서 특정단어(t)의 등장 횟수

3-2 DF (Document Frequency)

문서 집합 전체에서 특정 단어가 나온 문서의 개수를 의미합니다.

DF( t ) : 문서 집합 전체에서 t가 등장한 문서의 수

3-3 IDF(Inverse DF)

df를 반비례 하는 수입니다. 전체 문서에서 단어가 적게 등장할 수록 가중치가 높아야 하기에 계산할 때는 DF 보다는 그 역수인 IDF를 많이 씁니다. 다만 단순 역수가 아니라 Log ( 보통 자연로그 ln)를  씌우는데 그 이유는 문서의 갯수(n)가 커질 수록 수치가 기하급수적으로 커지는걸 방지하기 위함입니다.

분모 +1 은 분모가 소숫점이나 0이 되지 않도록 하기 위함입니다.

또한 로그를 사용하면 단순히 크기가 커지는 것 뿐만 아니라 가중치를 골고루 부여되는데도 도움이 됩니다.

예를 들어 기본적인 단어들은 특수한, 자주 쓰이지 않는 단어에 비해 최소 수십, 수백 배는 더 등장합니다.

TF-IDF는 모든 문서에서 자주 등장하는 단어의 중요도를 낮게 판단하는데, 단순한 역수로 계산해버리면 이런 단어들 때문에 별로 희귀하지도 않은 단어들에게 상대적으로 상당히 높은 가중치가 부여되게 됩니다.

로그를 씌우면 이런 격차를 크게 줄여주는 효과도 있습니다.

4. 동의어와 유의어의 색인방법

5. 정보검색 시스템 구성도

- 색인(indexing)모듈, 검색(retriever)모듈

6. 색인하기전에 전처리


1) 문서 표현 (document representation)

실제 정보검색에서 문서는 어떤 식으로 저장, 색인해야 할까요?

문서의 복잡성을 줄이고 다루기 쉽게 하기 위해서 전체 텍스트를 저장 색인하는 것이 아니라, 문서 벡터(행렬) 형식으로 변환한다. 이러한 변환과정에서 나온 문서벡터는 문서의 내용물들을 묘사 / 대표한다. 이게 문서표현(document representation) 이라한다.

https://blog.naver.com/sw4r/221095623894

 

[자연어 처리(NLP)] 문서 대표 (Document Representation)란?

문서의 복잡성을 줄이고, 그것들을 다루기 쉽게 하기 위해서, 문서들은 전체 텍스트 버전에서 문서 벡터 버...

blog.naver.com

ㄱ. a bag of word (단어 보자기)

그냥 텍스트에서 단어만 추출한 방법입니다. 중복을 고려하지 않습니다.

bag of word

ㄴ. a set of word (단어의 집합)

단어를 set에 넣은 형태입니다. 중복을 고려해서 같은 단어는 1개만 저장합니다.

a set of word

위 그림처럼, 단순히 생각해도 방법에는 여러가지가 있고 문서의 형태에 따라 구체적인 방법은 달라집니다.

만약 영어라면 스태밍을 거쳐 단어의 원형(어간)을 추출하는 방법을 사용했다면 한국어의 경우 명사형태를 추출하여 형태소분석, 품사종류 태깅, 복합명사 분해등의 과정이 필요할 것입니다.

ㄷ. 색인 단위 

- 의미단위, 어절단위, 형태소 단위, gram단위

의미를 색인 단위로 사용한 경우

 

어절을 색인 단위로 사용한 경우, 음절-gram은 말 그대로 소리나는 글자 수를 기준으로 쪼개 추출하는 방법

여담으로, 한국어는 의외로 명사추출이 아닌 음절-2gram을 많이 이용합니다. 명사추출을 사용할려면 신조어를 계속해서 추가하며 최신화 되어있는 대형 사전데이터(형태소 분석기, 품사 태깅) 필요하고, 음절-gram이 생각보다 성능이 좋습니다.

7. 문서 색인 (document indexing)

1) 색인(Indexing) 이란?

효율적인 검색을 위해 [문서 집합]을 미리 가공해두는 과정을 의미합니다

2) 색인의 과정

ㄱ. 텍스트 추출 - 다양한 형식을 가진 문서에서 순수한 텍스트를 추출해냅니다.

ㄴ. 토큰 추출 - text를 검색하기 좋게 토큰화 시킵니다.

ㄷ. 불용어(Stop-word) 제거 - 의미를 가지지않아 필요없는 관용어, 불용어를 제거합니다.

- 불용어란 관사(a, the)처럼 의미를 가지지않는 용어를 말합니다.

ㄹ. 정규화 - 의미를 가진 용어를 기본형으로 바꾸고, 어간을 생성합니다.

영어에서는 Stemming(스태밍)이라고 해서 단어에서 항상 고정되는 어간을 추출합니다.

Stemming(스테밍), Stemmer

3) 색인(indexing) 

색인(Indexing) 모듈

4) 역파일색인(Inverted Index)

문서에서 단어를 찾는 것이 아니라 색인을 통해 단어에서 특정 문서를 찾아내는 방법을 말합니다.

어려운 용어가 아니라, 우리가 평소에 책읽을때도 사용하는 방법입니다.

(대량의 문서 집합에서 '특정 키워드'가 포함된 문서를 색인하는 방법)

문서 검색(Retrieval) 모듈

5) 문서 검색 (Retrieval)

문서 검색 (document retrieval)

 

728x90
반응형