문서 중복에 대해서 .

문서 중복에 대해서 예전에 Shingle 방법에 대한글을 쓴 경험이 있다. 주로 중복문서의 제거의 Key Issue는 검색 복잡도를 해결하는것이라고 할 수 있다. md5 hash를 이용하는 방법은 O(n)의 복잡도를, Shingle 계열의 방법을 사용하는것은 O(n^2)의 복잡도를 자랑한다. 어느글과 비슷한 글을 찾기 위한 기능을 검색엔진에서 제공한다면 아마도 주로 Shingle을 이용한 여러가지 방법들중에 하나를 사용해서 제공하리라 본다. 하지만 이는 미리 […]

계속 읽기

검색의 소스가 되는 대상에 대한 이해

요즘 기술적인 부분보다 그냥 생각하는 것들을 블로그에 많이 적고 있다. 형태소 분석이든 검색 모델이든간에… 고전적인 Text 기반의 검색을 이야기 하고 있다. 물론 Text는 검색을 위해서 중간의 인터페이스가 될 수 있다. 인터페이스가 된다 함은 Text가 다루기 쉽고, 현재 정보검색에서 연구분야도 많은 뿐더러 실례로 상당히 많이 때문이다. 얼마전에 동영상 검색을 하는데 음성인식 기술을 이용해서 Text를 추출후 그 […]

계속 읽기

구글 엔지니어에게 물어본것들

좀 오래(?) 전 이야기를 해보고자 한다. 한때 MapReduce니, GFS니 등 구글 기술에 관심이 많았던 때가 있었는데, 마침 구글직원을 만나서 논문을 보면서 궁금했던 것을 직접 물어볼 기회가 있었다. 질문들이다. 1. GFS에서 서버가 추가될때 데이터 레벨링이 어떻게 이루어 지는가?(논문에 자세한 내용이 나오지 않았다.) 답 : 5년전 페이퍼라서 지금 쓰는 구조와는 많은 차이가 있다. (답변을 하는 사람의 우월감을 […]

계속 읽기

블로그의 질적 수준을 측정하는 방법을 고민중인데…

요즘 가장 고민을 많이 하는 부분이 바로 이 제목과 같은 것이다. 이것때문에 교수님이 추천해주신 Language Model을 공부하였으나.. 영 고민하는 주제와  연결감이 안오는 바람에 좀 다른 생각을 하고 있다. 그렇다면 어느 블로그가 좋은지 나쁜지 사람이 판단하는 기준을 보고 측정할 수밖에 없을것이다. 말하자면 휴리스틱한 방법을 말이다. 휴리스틱은 정말 좋은 방법이지만 어떻게 좋음을 표현하는 문제가 있다. 컴퓨터가 알아듣게 […]

계속 읽기

웹 검색에서 크롤링

크롤러 제작으로 검색쪽일을 시작한거나 다름 없으나, 지금은 거의 신경을 안쓰고 있지만, 시간이 가면 갈수록 웹 검색 인프라로서 크롤링 기술의 중요성은 커지는거 같다. 검색에서 크롤링 기술을 가지고 있느냐 아니냐가 검색 랭킹에 대한 펙터 수집을 원하는 대로 할수 있냐 없냐로 판가름 되어버리기 때문이다. 웹 검색, 특히나 그 분야는 링크구조로 되어 있어서 링크 펙터를 고려하지 않고서는 좋은 검색 […]

계속 읽기

오픈마루에서 Inverted Index Compression에 대해서 발표했습니다.

오늘 오픈마루에서 inverted index compression 발표를 했다. ppt는 아래 논문과 서적을 참고로 만들었다. 무엇보다 이 발표자료를 만들면서 그동안 몇가지 알고리즘을 알고 있었던것과 더불어 새로운 알고리즘까지 내 자신이 스스로 총정리 할 수 있었던 아주 좋은 기회가 되었던거 같다.그리고 앞으로 어떤 Doc Id특성을 가지고 있을경우는 어떤걸 쓴다든지 하는 그런 나만의 아니 그 누구나 수긍할 수 있는 설득력 […]

계속 읽기

정보검색관련 볼만한것들과 갈만한 곳

이번주 꽤 좋은 자료들을 봐서 몇가지 정리해 봤다. “프리챌의 장면 인식 동영상 검색엔진 개발에 대해” 기사 보구 conv님이 불끈 하셨나 보다.역시 책 쓰시는 분이라서 포스팅에 정성이 뭇어난다. 동영상 feature에 대한 고민이 선행이 되어서 색인을 설계하는게 맞는거란 생각이 든다. 데스크탑 검색이 날짜에 대해서 정렬이 default로 된다고 했을때 색인도 그에 맞춰서 구성이 되는것처럼 말이다. 좀더 버티면 conv2님이랑 […]

계속 읽기

Distribute Indexing과 MapReduce

오늘 커널 공부하다가 지루한 나머지 Distribute Indexing에 대한 공부를 좀 해봤다. (역시나 지루한 코드를 보는것보다 이런 개념 학습이 더 재미난다. ^^) 예전에 MapReduce에 대한 개념을 설명할 때가 있었다. 이때 내가 느낀것은 단 한가지 였다. MapReduce는 큰일을 작은 일로 분산시켜서 처리할때 굉장히 심플한 처리 공정을 보여 준다는 것이다.  그럼 여기서 Distribute Indexing을 하는 이유는 무엇인가? 1. 웹 […]

계속 읽기

Query Processing을 효율적으로 하자면?

쿼리 프로세싱(Query Processing)은 검색 결과를 가져오는 프로세스이다. 그럼 어떻게 Query에 맞는 결과를 가져올 것인가? 각 term의 모든 posting list를 가져와서 교집합을 하던가 합집합을 하던가… 아니면 이것들 후보 문서 모두를 vector space 모델이나 확률모델을 적용해서 가져오는 방법이 있겠다.하지만 위의 방법은 너무 복잡도가 크고, 이 문제때문에 검색 시간이 많이 걸릴것이다. 그래서 Query Process분야에서는 얼마나 빨리 가져오는 문제가 […]

계속 읽기

검색 엔진 개발자에게 OS 커널 프로그램 능력이 필요한 이유?

요즘 리눅스 커널 공부에 한창이다. 대학원에서 OS를 작년에 배운지라. OS에 대한 개념을 그때 확실히 세워둬서 아주 보기가 좋다. 오늘 내내 코드 보고 테스트 프로그램 짜보고 하면서 왜 검색엔진 개발자에게 커널에 대한 개념이 필요한지를 어렴풋이 알았다. (솔직히 두근거리기까지 했다. 실험해보고 싶은 욕구까지해서..) 1. 검색엔진에 최적화된 OS를 구비하기 위함2. 색인시 빈번히 일어나는 파일 쓰고 읽기에 대한 접근성 […]

계속 읽기