Lucene spellcheck package

요즘 루씬 코드 리딩을 하고 있다. 루씬 core 패키지는 예전에 한번 분석 해본 경험이 있어서 이번엔 contrib 패키지를 중점적으로 살펴보고 있다. 그중에서도 spellcheck 모듈은 가장 최근에 성능좋은 라이브러리로 구현한 경험이 있어서 관심이 갔다.  이 패키지 내에서는 Jaro Winkler Distance 라는 짧은 이름에서 사용 가능한 string 비교 클래스가 구현이 되어 있었으며 n-gram 기반의 string 비교 클래스도 […]

계속 읽기

실리콘벨리의 개발자에서 국내 기업 CTO까지 경험하신 분의 이야기

어느때부터인가 책을 고를때 저자의 이력을 먼저 살피는 습관이 생겼다. 이는 저자의 학력을 확인하고자 하는건 전혀 아니고 다면 저자가 어떤 경험을 해왔는지 살펴보기 위함이다. 특히나  컴퓨터 공학쪽 그리고 소프트웨어 공학의  경우 이는 상당히 큰 의미가 있다고 생각한다. 그런 의미에서 “글로벌 소프트웨어를 꿈꾸다“를 집필한 김익환님의 책은 나의 구미를 당기기에 충분한 책이였다. 이분의 이력은 소프트웨어 개발의 엘리트코스를 밟은 […]

계속 읽기

검색어 오타에 대한 흥미롭고 재미있는 사실들

아래는 전에 YDN KR blog에 기고했던 나의 글이다. 사이트가 거의 관리가 안되고 있는 관계로 언제 없어질까 살짝 염려스럽기도 했서 퍼오게 되었다. ————————————————————————————————- 검색 엔지니어로서 사용자 검색어 로그를 분석하다 보면, 상당히 재미있고 흥미로운 사실들을 발견 할 수 있습니다. 이런 데이터를 기반으로 세상을 보게 되기 시작하면, 사용자들이 개개인의 고유 특징이 있을거라 생각하지만 조그만 검색박스 내부로 그 공간을 […]

계속 읽기

R언어 GUI 환경 R commander

R을 써본 사람은 아시겠지만 R은 거의 shell환경에서 커멘드라인을 통해 작업을 할 수 밖에 없는 기본 환경을 제공하는데 그런 사용상 사용자에 친숙하지 않은 환경을 보완하기 위해 R commander가 나오게 되었다. 물론 R commander 역시 R을 처음 접할때부터 사용하면 이 역시 만족할만한 환경이 아님을 알 수 있으나,  처음부터 R 커멘드라인을 사용해온 사람이라면 이정도의 환경이라도 얼마나 편한지 잘 […]

계속 읽기

Regression test failure.

오늘 드디어 커밋을 하고 말거라는 각오를 하고 출근했다. 코드 리뷰 시작한 다음날  ship! 메시지를 받았으나 코드 커밋 직전에 Regression test fail을 보고 나서 애매한 클래스 구조를 다시 설계하고 좀더 세밀한 테스트를 하게 되었다. 이 와중에 다른 사람들이 만들어 놓은 코드들에 대해서 상당히 많은 부분을 이해하게 되는 계기가 된듯 하다. 코드 커밋 전에 반드시 확인해야 될 […]

계속 읽기

간단한 문자열 정규화 코드

사용자 입력 문자열에서 문장부호나 쓸데없는 문자들을 필터링 해서 필요한 문자열로만 만들고 싶을 경우가 있다. 뭐 이 작업을 정규화 작업이라고 한다면 아래의 간단한 처리 만으로 숫자와 다양한 언어 문자열들만 포함하게끔 만들어줄 수 있다. 유니코드 카테고리중에서 숫자(Number)인것들과 문자(Letter)인것들만 허용해 string을 만들어 주는 함수이다. 물론 인자는 유니코드 문자열이여야만 한다.   from unicodedata import category def norm(word): return u"".join([c […]

계속 읽기

Facebook Puzzle 풀기

주말에 faebook 퍼즐을 풀어 봤다. 연습문제로 평가 로봇이 어떻게 동작하는지 확인 한 다음에… 한문제 한문제씩 풀고 있는 찰라… 정확한 계산값이 나왔는데도 로봇이 reject을 하는 경우가 발생했다. 문제는 바로 아래의 문제인데.. http://www.facebook.com/careers/puzzles.php?puzzle_id=17 뭐 문제를 읽어보면 알겠지만 사전 하나 주어지고, 이 사전을 가지고 최소의 edit distance를 구하는 문제였다. edit distance 구하는건 눈 감고도 하는 경지가 다다른 바.. […]

계속 읽기

Arduino나 해볼까?

인사이트 출판사에서 새로운 책이 나왔다길래 이게 뭘까 하고 둘러보다가 아두이노 키트까지 구매해 버렸다. 그리고 아래와 같이 hello world 류의  프로그램도 돌려봤다. 어떤 저항이 적절할까 계산해서 넣어주고.. 사실.. 필요한 저항이 키트에 없긴 했다. 그래서 그냥 가장 가까운 저항을 넣어 줬더니 잘 돌아가긴 한다. 아두이노의 아날로그 슬롯에 3개의 led를 병렬로 연결하고 각각 led의 밝기를 조절하는 예제인데, 딱 […]

계속 읽기

Fullwidth Forms in Unicode

알파벳을 표현하는 이런 다양한 방법들이 있다는 것에 감사한다. 따라서 유니코드 문자들을 속속들이 한번쯤 들여다 보는 경험을 해보는게 정말 중요한듯 하다. from Wikipedia Chart Halfwidth and Fullwidth Forms Unicode.org chart (PDF) 0 1 2 3 4 5 6 7 8 9 A B C D E F U+FF0x ! " # $ % & ' ( […]

계속 읽기