검색
검색엔진이란
시스템에 저장된 정보를 찾아주는것을 도와주도록 설계된 정보검색 시스템
검색엔진 구동요소
- 수집: 검색 엔진의 목적에 따라 사용자가 필요로 하는 정보들을 모은다. 예)Log 데이터.. 웹은 크롤링 데이터..
- 색인: 수집된 정보를 분석하여 찾기 쉬운형태로 저장한다.
- 형태소를 분석(의미를 가지는 최소 단위로 분리)하여 의미있는 단어를 추출한다.
- 역색인 방식
- 검색: 정보에 대한 요구가 발생할때 해당 정보를 찾아서 제공한다.
- 사용자로부터 검색 요청을 받아서 검색 결과를 반환한다.
- 검색 최상의 결과를 위해 랭킹 알고리즘이 중요
- TF: 특정 단어가 문서 내에 얼마나 자주 등장하는지
- IDF 특정 단어가 전체 문서에서 얼마나 자주 등장하는지
수집
- 사용자로부터 검색 요청을 받아서 검색 결과를 반환한다.
- 쇼핑몰을 예로 들면 상품정보가 데이터가 될 수 있다. (실제로 현재 검색엔진에서 주기적으로 운영DB에서 상품정보를 긁어가는 배치가 돌고있다.)
색인
- 일반적으로 형태소 분석기를 사용한 색인을 사용한다.
- 종류
- 형태소 분석기를 사용한 색인 : 언어 분석기와 언어 사전을 이용하여 단어 단위의 색인을 필요로 할 때 사용
- TOKEN: 아무런 언어 분석도 사용하지 않을 경우에 사용. 일치 검색과 같은 효과를 내기위해 사용
- bi-gram : 바이그램으로 색인어를 추출할 때 사용
- LIKE 데이터베이스의 like검색과 비슷한 효과를 내기 위해 사용(색인 용량이 매우 커진다.)
- 색인이란 특정한 데이터가 어느 위치에 있는지 미리 저장해두어 검색시에 빠른속도로 찾을 수 있는것
- 사전처럼 가나다순의 첫번째 단어마다 갈피를 만들어서 우리가 찾는 단어를 빨리 찾을 수 있도록 하는것. '순서대로 기억한다.'
- 순서대로 검색하기 때문에, 색인으로 검색을 하면 극악의 경우 50만개의 데이터가 있을때 50만번을 검색해야 할 경우도 있다.
- 역색인이란 어떠한 데이터를 색인할때 단어 기준으로 색인을 수행하는것.
- 인간의 사고와 가깝다
검색
- 인간의 사고와 가깝다
- 검색기는 형태소 분석을 한다.
- 검색시 단어만 입력하는 경우는 거의 없다. 하지만 만약 문장을 그대로 수집DB에서 찾으려고 하면 완전히 일치하는 문장을 찾기가 매우 어려울것이다.
- 검색 결과를 분류하기 위해 사용되는 IF-IDF
- IF-IDF = 내가 원하는 검색 결과가 나왔는지에 대한 수치.
- Boosting
- 특정 단어에 임의로 가중치를 주어 해당 단어가 사용되면 문서를 상위로 올리는 기법
[https://cyberx.tistory.com/203]
- 특정 단어에 임의로 가중치를 주어 해당 단어가 사용되면 문서를 상위로 올리는 기법
'Today I learned' 카테고리의 다른 글
2021 02 08 - sql 소소한 정리 (0) | 2021.02.08 |
---|---|
2021 02 04 - Email Template 수정 (0) | 2021.02.04 |
2020 01 06 - Appium (0) | 2021.01.06 |
2021 01 06 - Jsoup 우여곡절기 (JSoup을 이용한 String to Element) (0) | 2021.01.06 |
2020 01 05 - Appium With Docker! (0) | 2021.01.05 |
댓글