본문 바로가기
Today I learned

2021 02 03 - 검색시스템

by soheemon 2021. 2. 3.

검색

검색엔진이란

시스템에 저장된 정보를 찾아주는것을 도와주도록 설계된 정보검색 시스템

검색엔진 구동요소

  • 수집: 검색 엔진의 목적에 따라 사용자가 필요로 하는 정보들을 모은다. 예)Log 데이터.. 웹은 크롤링 데이터..
  • 색인: 수집된 정보를 분석하여 찾기 쉬운형태로 저장한다.
    • 형태소를 분석(의미를 가지는 최소 단위로 분리)하여 의미있는 단어를 추출한다.
    • 역색인 방식
  • 검색: 정보에 대한 요구가 발생할때 해당 정보를 찾아서 제공한다.
    • 사용자로부터 검색 요청을 받아서 검색 결과를 반환한다.
      • 검색 최상의 결과를 위해 랭킹 알고리즘이 중요
      • TF: 특정 단어가 문서 내에 얼마나 자주 등장하는지
      • IDF 특정 단어가 전체 문서에서 얼마나 자주 등장하는지

        수집

  • 쇼핑몰을 예로 들면 상품정보가 데이터가 될 수 있다. (실제로 현재 검색엔진에서 주기적으로 운영DB에서 상품정보를 긁어가는 배치가 돌고있다.)

    색인

  • 일반적으로 형태소 분석기를 사용한 색인을 사용한다.
  • 종류
    • 형태소 분석기를 사용한 색인 : 언어 분석기와 언어 사전을 이용하여 단어 단위의 색인을 필요로 할 때 사용
    • TOKEN: 아무런 언어 분석도 사용하지 않을 경우에 사용. 일치 검색과 같은 효과를 내기위해 사용
    • bi-gram : 바이그램으로 색인어를 추출할 때 사용
    • LIKE 데이터베이스의 like검색과 비슷한 효과를 내기 위해 사용(색인 용량이 매우 커진다.)
  • 색인이란 특정한 데이터가 어느 위치에 있는지 미리 저장해두어 검색시에 빠른속도로 찾을 수 있는것
    • 사전처럼 가나다순의 첫번째 단어마다 갈피를 만들어서 우리가 찾는 단어를 빨리 찾을 수 있도록 하는것. '순서대로 기억한다.'
    • 순서대로 검색하기 때문에, 색인으로 검색을 하면 극악의 경우 50만개의 데이터가 있을때 50만번을 검색해야 할 경우도 있다.
  • 역색인이란 어떠한 데이터를 색인할때 단어 기준으로 색인을 수행하는것.
    • 인간의 사고와 가깝다

      검색

  • 검색기는 형태소 분석을 한다.
    • 검색시 단어만 입력하는 경우는 거의 없다. 하지만 만약 문장을 그대로 수집DB에서 찾으려고 하면 완전히 일치하는 문장을 찾기가 매우 어려울것이다.
  • 검색 결과를 분류하기 위해 사용되는 IF-IDF
    • IF-IDF = 내가 원하는 검색 결과가 나왔는지에 대한 수치.
  • Boosting

댓글