휴리스틱, 매직넘버

개인적으로 휴리스틱(heuristic) 방법이라는 말을 무지 싫어한다. 하지만 오늘(정확히는 어제) 수업시간에 수도없이 들은 말이 휴리스틱이였다. 사람이 생각하는 대로 그 방법론을 적용해서 어떤 문제의 목표를 달성하는건데, 생각해보면 휴리스틱이라는 말은 참 무책임하다는 생각까지 든다. 게다가 이 말과 더불어 매직넘버(magic number)를 넣어 어쩌구 저쩌구 하는것을 논문같은곳에서 꽤 많이 볼수 있는데 이것도 참 애매한 단어다. 오늘 인공지능 수업 쉬는시간에 교수님한테 […]

계속 읽기

루씬(Lucene) 파일 포멧 초벌번역 공개

루씬(Lucene) Index File Format 초벌번역을 완료했다. 기준 문서는 1.9 Final 배포본에 있는 문서를 참고 했고, document, field, term 등의 한글용어 혼용이 있을수 있으나, 일반적으로 Document, Term, Field 같은 첫 문자가 대문자인 개체명(자료형?)일경우 그대로 사용하였다. 개인적인 생각으로는 초벌 번역정도의 수준이라도 생각된다. 아직 인덱스 파일 구조에 대해서 통달한게 아니라서 텀 사전 이하 부분에 대해서는 정확하게 개념 파악을 […]

계속 읽기

MS의 새로운 검색엔진 Windows Live Search

MS가 Google에 맞서시 위해 출시하려고 하는 Windows Live Search의 모습이 서서히 드러나고 있다. 아쉽게도 한글은 지원을 안한다. 그러나, 역시나 MS다. 인터페이스가 내가 봤을때는 유치원생도 쓸수 있게 구성을 해놓았다. 검색결과를 Simple 에서 Detail로 조절해서 볼수 있는, 상단 바가 존재하고, Detail쪽으로 바를 옮겨 바로 사이트 내 검색을 할수 있다. 그리고 또한 검색결과를 위한 스크롤바나 페이징 기능을 제공하지 […]

계속 읽기

단지 음악이 좋기때문에 미니홈피를 방문한다.

검색엔진 개발자 그룹에서 유흥부장님으로 활동하시며, 자랩을 운영하시고 또한 자갸.com을 운영하시는 유흥부장님께서 얼마전 뮤직 서비스를 오픈해서 그에 대한 포스팅을 하고자 한다. 자갸 뮤직 서비스인데, 싸이월드의 미니홈피 배경음악을 검색해서 제공하는 서비스 이다. 일단 검색결과의 정확성이 뛰어 나다. 형태소 분석을 어떻게 하셨는지는 오프모임때 물어봐야 하겠지만, 복합명사 처리라든지 하는 부분이 꽤 정확하게 나온다. 검색속도도 빠르고, 나무랄데 없다. 단지 전문 […]

계속 읽기

기어이 번역까지

루씬(Lucene) 인덱스 파일 포멧 소스코드와 문서를 번갈아 보다가, 기어이 기술문서 번역까지 하게됐다. 조근조근 문장을 곱씹어 보면서, 내용을 코드를 볼때와 매칭을 시켜봐야겠군. 일단 뭐 알려주는 사람도 없고하니, 이럴땐 무식한 방법이 제일 좋더라. 빨리 번역하고 정리해서 블로그에 올려야겠다. 잡힐들 안잡힐듯 하는 이런 개념들이 나를 미치게한다. 언제나 잡히려나…

계속 읽기

꽃 2.0 – 전병국 –

“꽃 2.0 -전병국-“ 내가 그를 발견하기 전에는 그는 다만 하나의 IP에 지나지 않았다. 내가 그를 검색하고 RSS를 구독해 주었을 때 그는 나에게로 와서 1촌이 되었다. 내가 그를 검색해준 것처럼 나의 이 빛깔과 향기에 알맞게 누가 나를 발견해다오. 그에게로 가서 나도 그의 1촌이 되고 싶다. 우리들은 모두 무엇이 되고 싶다. 너는 나에게 나는 너에게 절대로 사라지지 […]

계속 읽기

Unicode와 UTF-8의 차이점이란?

오늘 열렬히 코드를 보고 있다가 유니코드(Unicode) 복원 부분에 대한걸 봤다. 역시나 Lucene코드를 뒤져보다 나온 내용이다. Lucene은 디폴트로 유니코드셋을 쓴다. 그러니 UTF-8은 피할수 없이 꼭 거쳐가야만 될 부분이였다. 일단 코드는 이렇다. (역시 Python 코드 ㅋㅋ) def readChars(self, length):    buffer = []    for i in range(length):        b = self.readByte()        […]

계속 읽기

Lucene에서 variable int 표현하는법

오늘 Lucene에서 쓰이는 인덱스 시스템을 분석하면서 Vint 타입을 어떻게 처리하는지 코드를 분석해봤다. int면 int지 왜 Vint인지, 예전에 DB를 공부하면서 vchar타입인가? 하는 V자가 붙은 타입을 봤는데, 이 것들의 설명이 그 대상체의 크기에 맞게 disk에 공간을 차지한다는 개념이였다. 물론 Lucene도 마찬가지로 이 부분에 대해서 고려한 부분이 있었다. 이 코드를 이해하고 ‘아~!’ 하고 머리를 쳤으니 참 기쁘기 한량없었다. […]

계속 읽기

Lucene 파일 시스템 공부하기

오늘도 도서관에 왔는데, 하고자 한 논문번역은 뒤로 하고 루씬(Lucene)의 파일시스템 분석하고, Lupy 소스 분석을 하고 있다. Lupy는 Lucene의 Python구현버전으로 1.2 까지의 기능을 구현하고 있다. 솔직히 이 Lupy를 실제 쓰려고 하는건 아니고, Lucene을 분석하기가 좀 버거워서 읽기쉬운 Lupy를 선택해서 보고 있었다. 역시나 그런데 소스를 보자니 좀 복잡하긴 하다. 전체적으로 역파일 구조로 되어 있는건 알겠는데, 소스 한줄한줄 […]

계속 읽기

String Matching 알고리즘

String Matching 알고리즘을 요즘 좀 보고 있어서 정리했본다. 먼저 Naive String Matching 알고리즘이다. 일반적인 String Matching 알고리즘 이다. 누구든지 C로 구현을 한다고 하면, 처음엔 이런식으로 구현을 할것이다. 하지만 이 알고리즘은 상당한 단점을 가지고 있다. 무식하게 처음부터 1씩 증가하면서 모든 경우를 타진하는 알고리즘이기때문이다. 이를 보완한 알고리즘이 Boyer-Moore String Matching 알고리즘이다. 위의 알고리즘에서 x 는 Keyword가 되겠고, […]

계속 읽기