같은 의미의 영어와 한글을 어떻게 한 색인항목에 넣을 수 있을까?

교수님이 주신 “Concept Unification of Terms in Different Languages for IR“이라는 논문을 분석해서 논문 세미나를 했다. 이 논문의 내용은 무엇이냐 하면….ㅎㅎ “디지털”이라는 쿼리를 넣었을때 “Digital”, “디지털”, “디지틀” 이라는 단어가 포함되는 문서 모두가 나오게 하려면 어떻게 할 것인가? 라는것이다. 물론 외래어 뿐만 아니라 세계무역기구(WTO), 서울대(Seoul National University) 등의 약어나 복합어에 대한 Unification까지 생각하면 어떻게 알고리즘을 구현해야 […]

계속 읽기

typos님의 블로그 검색엔진

typos님의 2천만건의 데이터를 색인한 결과물이 나왔다. 물론 Lucene 기반이지. 시범적으로 서버 두대로 색인하셨다는데 아직 테스트 버전이다. http://www.blogreader.co.kr 아직 가지고 계신 1억 3천만건의 블로그 데이터를 색인하지는 않았지만 조만간 뭔가 결과물들을 보여주시지 않을까 한다. 그런데 매일 한국어 분석기가 없다고 하시는데 할말이 없다. (현재 공적이든 사적이든 무지 바쁜 나날을 보네고 있다. 하긴 휴가 이후로 분석기 소스코드 손도 못데고 […]

계속 읽기

좋은 봇, 나쁜 봇

봇을 개발해봤고 개발하고 있는 개발자 입장에서 좋은 봇과 나쁜 봇에 대해 정의된 글이 있어서 소개해본다. 좋은 봇 robots.txt를 준수하는 로봇 굉장히 빠른 속도로 크롤링해서 사이트에 부담을 주지 않는 로봇 적당한 시간에 신선한 자료를 가져오는 로봇 특정한 사이트를 크롤링하는데 소요한 트래픽 자료를 리턴한다. 나쁜 봇 컨텐츠를 접근하기 위해 수단과 방법을 가리지 않는다. robots.txt를 지키지 않는 봇 […]

계속 읽기

재미난 기사.. 온네트이야기인데 다음소프트 이야기가 나오고..

온네트, 토종 同感 검색엔진 ‘크로스마인드’ 개발중 검.개.그를 통해 온네트의 연구소장님하고 알게 되었는데 전부터 개발하신다는 이야기는 알고 있었지만 서서히 베일을 벗기 시작하는군. 그렇지만 이 부분은…. 최근 첫눈이 네이버에 인수됐으며 자회사 형태로 있던 다음소프트의 검색엔진 기술이 다음커뮤니케이션으로 모두 이관되고 있다. 네이트도 자체 검색엔진을 개발한다는 소식이다. 포털을 중심으로 움직이고 있는 이같은 검색엔진 개발 대결에서 상대적으로 중소 벤처업체들의 연합으로 […]

계속 읽기

Lucene KoreanAnalyzer : 사전써치 인터페이스

오늘 고작 사전써치 인터페이스를 만들었다. 1. 각 사전마다 커넥션은 하나 (싱글톤 패턴) 2. 각 품사 사전 싱글톤 객체를 통해서 사전에 접근할 수 있다.(각 사전파일의 메모리 로딩 여부가 저장되어 있다. <- 나중에 구현할 예정) 3. 품사 사전에 대한 쿼리 정보를 잘못 입력했을 경우를 대비한 예외처리 기능들 4. 그리고 테스트 모듈들 별 기능에 대한 구현은 없었지만 나름대로 […]

계속 읽기

Lucene KoreanAnalyzer : 14만 한국어 사전 파일 완성

Java 실행파일 하나로 완성을 하긴 했지만 실제 바이너리트리로 되어 있던 사전 파일에서 추출해서 품사별DB 내에 음절별DB로 분리해서 저장을 했고 추가로 단어에 대한 설명이 필요할 경우를 대비해 Extra 영역까지 할당을 해놓았다. 쓸데없이 품사정보를 개개의 단어마다 정보를 넣어두었는데 그렇게 할 필요를 못느낀게 사실이지만 일단 넣어두도록 하자. (용량이 상당히 늘어났다. 1메가가 채 되지 않던 파일이 7메가가 되었으니…내일 바로 […]

계속 읽기

Lucene KoreanAnalyzer : 음소 <-> 음절 클래스 제작

유니코드 한글 자소 분리모듈에 대한 설명을 conv2님의 도움을 받아서 분석을 하고 음소분리정보테이블을 추가해서 Jaso클래스를 만들었다. 그런데 이뿐만 아니라 음소에서 음절로 만들어지는 메서드가 있어야함을 느껴서(실제 빈번하게 쓰인다.) 만들고자 했는데 전에 포스팅한 유니코드 생성 원리 포스팅에 쓴 함수를 적용하기 위해서는 음소정보를 이용한 인덱스 번호 추출이 필요했다. 한 글자의 유니코드 값 계산 법 = 0xAC00(유니코드 한글 시작점) + […]

계속 읽기

검색엔진에 관한 일

개인적인 프로젝트까지 추가해서 내가 하는 검색엔진 관련 일이 무려 3가지이다. 1. 색인기 2. 웹로봇 다운로더 3. 공개 형태소 분석기 어제는 공개 형태소 분석기의 음절정보테이블 생성을 위한 Python스크립트를 짜다가 소개팅을 하러갔다.ㅎㅎ 그러니까. 기존의 완성형 기준의 음절정보테이블을 같은 음절에 대응되는 유니코드문자에 대한 인덱스 배열을 만들어 주는 작업이었다.(음절순서가 완전하게 대응되지 않아서 의외로 많은 생각을 요한 문제였다.) 잘 만들어졌는지 […]

계속 읽기

Lupy 주석 정리한것

Lucene의 Python버전인 Lupy의 개발이 중단 되었지만 소스코드 분석하는데 많은 도움을 줬던게 사실이다. 뭐 이래저래 파일 시스템 분석하는데도 코드 편하게 볼 수 있게 도움이 되었고 예제 돌려보기도 편했던게 사실이였다. 소스코드 분석하면서 나름대로 분석한 결과를 주석으로 표현을 했었다. 물론 나에게도 중요한 자료가 되겠고 searcher쪽을 분석하면서 또 주석을 달아보겠지만 indexer부분정도 정리된걸 한번 이곳에 올려본다. 물론 이것들의 결과물이 Lucene […]

계속 읽기