검색
-
검색모델, TF-IDF를 대신할 Okapi BM25검색 2023. 1. 27. 15:27
이 포스팅은 Kaggle의 한 notebooks를 보고 추천시스템 공부를 하는 와중에 bm25가 나와서 정리해보고자 작성하게 되었다. 먼저 BM25의 정의를 보자. en.wikipedia.org/wiki/Okapi_BM25 Okapi BM25 - Wikipedia In information retrieval, Okapi BM25 (BM is an abbreviation of best matching) is a ranking function used by search engines to estimate the relevance of documents to a given search query. It is based on the probabilistic retrieval framework developed ..
-
엘라스틱서치 고급 검색 기능검색 2022. 10. 26. 09:29
출처 : 엘라스틱서치실무가이드 https://esbook.kimjmin.net/06-text-analysis/6.1-indexing-data 검색엔진의 본연의 기능이 검색기능을 소개한다. 한글 형태소 분석기 은전한닢 형태소분석기 Mecab-ko-dic 기반으로 만들어진 한국어 형태소 분석기 자바 인터페이스, 스칼라 인터페이스 두가지를 제공 복합명사, 활용어의 원형 찾기가 가능하고, 시스템 사전을 통해 동작. 아파치 라이선스 2.0 가장 보편적으로 사용되는 한글 형태소 분석기 설치방법 ./bin/elasticsearch-plugin install https://github.com/javacafe-project/elastic-book-etc/raw/master/plugin/elasticsearch-analy..
-
검색엔진의 역색인(Inverted Index)의 원리검색 2022. 5. 14. 15:49
만약에 개발자들에게 "간단한 검색엔진(Search Engine)을 만들어보세요"라는 요청을 하면, 대부분은 "제가요?" "못합니다" 등으로 단호히 거절을 할 것이다. 검색엔진이라는 것은 구글이나 네이버, 다음같은 대기업만이 만들 수 있는 것이라고 생각하기 때문이다. 하지만, "간단한 검색엔진"이라는 요건은 개발자라면 누구나 쉽게 만들 수 있다. 물론 루씬(Lucene)이나 엘라스틱서치(Elastic Search), 솔라(Solar)같은 훌륭한 검색엔진들이 이미 즐비하니 굳이 만들 필요는 없지만 어디까지나 이 포스팅은 검색엔진의 원리를 설명하는 것을 목적으로 하니 위와 같은 솔루션들이 없다는 가정으로 생각을 해보자. 우리가 검색을 할 때 무엇을 넣을 것인가? 당연히 키워드(Keyword)를 넣는다. 네이버..
-
검색엔진(Search Engine)의 현황 및 구동원리검색 2022. 5. 14. 15:44
출처: https://needjarvis.tistory.com/167 [자비스가 필요해] 1. 국내의 검색엔진 검색엔진 전문가로서, 많은 분들이 검색엔진하면 어렵다는 편견을 갖는 분들이 많다. DB는 스페셜하게 잘 다루지만, 검색엔진은 왠지 전문가만 다뤄야 할 것만 같아서 검색엔진을 사용하면 훨씬 효율성이 높은 부분 마저도 DB에서 Like 쿼리를 사용하는 사이트가 허다하다. 그렇다고, 국내의 검색엔진 업체 제품을 쓰면 왠지 손해보는 느낌이 강한데... 왠만한 검색엔진 값이 차 한대값과 맞먹고, 라이센스에 따라서 아반테가격에서 벤츠가격까지 올라가는 경우가 존재한다. 국내의 검색엔진 업체는 와이즈넛, 코난테크놀로지, 솔트룩스의 3파전 양상이다. 이중 와이즈넛이 가장 유명하지만, 그렇다고 기술력이 가장 뛰어..
-
정보검색 - 회고검색 2022. 5. 14. 15:28
1. 정보검색과 데이터베이스의 차이점 2. 자연어 검색 시스템의 동의어 다의어 문제 3. 적합성 판단의 기준, 판단하기 어려운 사례 4. IR 시스템의 큰 그림 색인모듈, 역파일 색인(포스팅리스트), 검색모듈 5. 질의 문서 유사도 계산 (TF, IDF, CF) 6. 질의 문서 유사도 수식 ( TF-IDF / Length(D) ) 7. 색인 단위 (2-gram) 한국어는 형태소 분석 같은 것이 없어도 2-gram이 비슷한 동작을 한다. 8. 색인 절차 영어 -> [불용어 제거, 어간생성(stemming)]이 가장 중요한 절차. 9. 영어에서 스태밍과 n-gram 효과 영어에서도 문자단위 4,5-gram이 의외로 효과가 있다. (스태밍은 단어 단위) 10. 문서의 표현 단어 보자기(a bog of word..
-
정보검색 - 검색모델 성능향상, 적합성 피드백 (Relevance Feedback)검색 2022. 5. 14. 15:23
질의확장 개념 참조: https://jiwondev.tistory.com/57?category=852827 #10 적합성 피드백 (Relevance Feedback) 앞에서 검색모델의 기본요소(TF, IDF, Document Length, N) 불린 모델 (문제점을 해결한 확장 불리언 모델은 배우지 않았음) 벡터 공간모델(cos 유사도, TF-IDF 데이터모델) 확률 모델(BM25) 언어 모델(JM, diric jiwondev.tistory.com 앞에서 검색모델의 기본요소(TF, IDF, Document Length, N) 불린 모델 (문제점을 해결한 확장 불리언 모델은 배우지 않았음) 벡터 공간모델(cos 유사도, TF-IDF 데이터모델) 확률 모델(BM25) 언어 모델(JM, dirichlet) 정..
-
정보검색 성능 평가 (2/2) - MAP, Pre@K, R-pre, NDCG검색 2022. 5. 14. 15:03
# MAP (Mean Average Precision) 용어가 나와서 어려워 보이지만, 사실 각 질의문의 평균정확률 (AP, Average Precision)을 더해 평균(Mean)을 낸 값이다. AP(Average Precision) : 하나의 질의문(Q)에 얻은 검색문서에서 앞 글 PRC에서 만든 표에서 (적합문서가 나온 정확률)만 뽑아내서 (전체 적합문서의 수)로 나눈다고 생각하면 된다. 2021.06.01 - [분류 전체보기] - #6-1 정보검색 성능 평가 (P, R, F1, PRC) 아래 표에서 적합문서의 위치는 Rank 1, 3, 6 이므로 각각의 정확률 (1.0, 0.67. 0.5) 를 더해서 나누면 된다. 이때 나누는 분모는 전체 문서가 아니라 '전체 적합문서 수'임을 유의하자. AP =..
-
정보검색 성능 평가 (1/2) - P, R, F1, PRC검색 2022. 5. 14. 14:53
https://jiwondev.tistory.com/51?category=852827 (참조) #6-1 정보검색 성능 평가 (P, R, F1, PRC) # 정보검색의 성능은 어떻게 평가할까? 1. Effectiveness, (효과성, 사용자 만족도) 정확률Precision(검색된 문서 중 적합문서의 비율), 재현율Recall(전체 적합 문서중 찾은 비율), F지표 2. Efficiency(효율성) jiwondev.tistory.com # 정보검색의 성능은 어떻게 평가할까? 1. Effectiveness, (효과성, 사용자 만족도) 정확률Precision(검색된 문서 중 적합문서의 비율), 재현율Recall(전체 적합 문서중 찾은 비율), F지표 2. Efficiency(효율성) 시간, 공간 복잡도 ( 문..