오픈마루에서 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. 색인시 빈번히 일어나는 파일 쓰고 읽기에 대한 접근성 […]

계속 읽기

goto문에 대한 Dijkstra의 논문을 보며.

리눅스 커널을 공부하다가 커널단에서 goto문이 쓰이는걸 보고, 예전에 모듈을 작성할때 에러처리 부분에서 goto문을 쓰다가 팀장님에게 혼났던 기억이 나서 책에서 소개하는 논문을 한번 봤다. Go To Statement Considered Harmful 최단경로 알고리즘으로 알려진 유명한 다익스트라(Dijkstra)의 논문이다. 이  논문과 관련자료검색을 해보면서 느낀거지만, goto문 자체에 대해서 완전 부정이 아니라는것을 알았다. 내가 이해한 바로는 사람이 코드를 작성할때 절차에 중점을 두고 […]

계속 읽기

인터뷰 글 소개와… 앞으로 백수생활에 대한…

IBM Developerworks에서 전에 인터뷰한 글이 오늘 올라왔다. 3인의 블로거, ‘블로깅과 만남, 자람’을 논하다 여기 보시면 conv2님과 어떻게 만났는지 에피소드 이야기도 있다. 뭐 그당시에 그 재밋게 이야기 했던 분위기는 글로서 살리기 힘들겠지만 대강의 이야기는 위 글에서 볼 수 있다. 내가 했던 이야기 중에 가장 감명 깊었던 것인데.. ^^; 공부하다 깨닫는 게 있을 때 정리를 하면 더 […]

계속 읽기

심심해서 풀어본 알고리즘 문제 하나.

You’re given an array containing both positive and negative integers and required to find the subarray with the largest sum (O(N) a la KBL). Write a routine in C for the above. 한번 훓어서 가장 크기가 큰 Subarray의 인덱스를 찾아내면 될거 같다. 아래 포스팅이 너무 눈에 거슬려서 문제하나  풀어봤다.풀어본다음에 구글 검색을 해보니 비슷한 방법으로 C++로 […]

계속 읽기

1/4분기 공부 계획!

자체 1/4 분기 계획에 따라서 책 몇권을 구입했다. 그냥 주말에 간단히 읽을 책과 디버깅 관련 책, 그리고 마지막으로 리눅스 커널 프로그래밍 책을 말이다. Distributed Systems 관련 책을 찾다가 좋은 원서를 발견했다. 전에 구글 파일 시스템을 보면서 나온 용어들이 나오는것을 보고 혹해서 사려 하다가, 이내 리눅스 커널 프로그래밍 책을 선택했다.(앞으로 한달간은 가볍게, 가볍게 가자구!) 검색엔진은 어느정도 […]

계속 읽기

검색과 클러스터링

클러스터링에 대한 공부는 예전에 k-means 알고리즘을 이용한 음성데이터 클러스터링을 마지막으로 손을 가져가지 않았다가, 이번에 이런저런 책을 보면서 클러스터링에 대한 공부를 해봤다. 검색엔진이 왜 클러스터링과 관련이 있는지 알아보자! 컬렉션이 잘 클러스터링 되어 있다면, 그 해당 클러스터만을 검색해서 문서를 찾아내는것이 더 효과적이다. 이런 효과적인 성능에 비해 크러스터링은 일반적인 검색엔진에 쓰이기 힘든 factor가 있다. 1. 문서 집합에 대해서 […]

계속 읽기