보통 million(백만) document 이상의 data-set의 환경에서 사람들은
useful 한 information 을 찾으려고 한다.
따라서 데이터 덩어리(Data-Set)에서 유용한 정보(Useful-Information)을 채굴하는(찾아내는,mining) 것이 중요한 영역이 되었고, 이것에 대해 주로 연구하는 “데이터마이닝(Data Mining)” 분야가 발전하게 된 것.
100만개의 글에서 "집 사기" 검색을 한다고 가정.
전통적인 방식은 다음과 같음.
1) WHERE = 검색방식
'집 사기'
검색어와 일치하는 문서만 선택이 된다. 즉, 문서 결과를 거의 얻지 못함.
2) WHERE LIKE 검색방식
검색어가 문서내용에 포함되어있는 경우 선택이 된다.
1번 보다는 진화했지만 해당 문장이 정확히 일치하는 경우가 적기 때문에 결과를 거의 얻지 못함.
3) 화이트스페이스 토크나이저 AND 검색 방식
사용자의 쿼리를 화이트스페이스로 쪼개서 AND 검색을 실시
문서내용에 사용자의 검색어의 모든 단어가 포함된 경우를 찾는다.
이전 방식과 비교해서 상당히 많이 향상된 결과를 보여주지만 해당 단어가 모두 포함된 문서가 아니면 결과에 포함되지 않는다.
4) 화이트스페이스 토크나이저 OR 검색 방식
사용자의 쿼리를 화이트스페이스로 쪼개서 OR 검색을 실시
문서내용에 사용자 검색어 중 하나라도 포함되는 경우를 찾는다.
원하는 문서를 찾아준다는 점에서 매우 우수하나, 어느 하나의 단어만 포함되도 되므로 전혀 관계없는 결과물도 추출됨.
4번이 정말 좋은 방식이긴한데 몇가지 단점이 있음 (게시글 2만개 까지는 위의 검색방식이 아주 효과적임)
의미없는 결과값
검색 대상이 누적되면서 검색 부하 오래걸림.
당연히 역색인을 사용해야함.
1. Inverted Index
1~9 문서를 역색인한 결과가 오른쪽 Lucene's inverted index이다.
becoming home 이라고 검색하면
becoming에 대한 문서 8번 문서가 반환
home에 대한 문서 2,5,7,8번 문서가 반환
8번이 가장 유사한 결과물이라고 알게된다.
2. Inverted Index with Term Position
단어 값의 추가 정보를 얻을 수 있다. (단어의 위치)
이러한 방식의 추가정보는 검색 결과를 향상시킬 수 있다.
new home을 검색했다고 가정하면
new의 4,5,8번 문서가 반환된다.
home의 2,5,7,8번 문서가 반환된다.
AND 조건으로 검색한다고 하면
5,8번 문서가 반환되는데
new 다음에 home이 나타는 문서이기도 하다.
단어가 연속되는지 (new home) 여부를 빠르게 파악이 가능하고
단어 사이의 값을 찾을 수도 있다.
이것을 활용해
new home, new brand home, new super cheap home 등이 결과에도 포함될 수 있는 것이다. (proximity search)
https://blog.lael.be/post/3056
https://blog.naver.com/dpfkdlt/221463887998
'정보검색' 카테고리의 다른 글
Mean Average Precision(MAP), Precision at K, Recall at K (0) | 2019.12.24 |
---|---|
검색엔진 역색인 원리 (0) | 2019.12.23 |
검색은 어떻게 작동하는가: How Search Works (0) | 2019.12.23 |
형태소 분석이 필요한 이유 (0) | 2019.12.03 |
BM25 (0) | 2019.12.03 |