Lucene 공개 한국어 형태소 분석기 개발 시작의 변

여러분과(?) 논의한 결과 여러 문제를 없애기 위해서는 기존에 내가 가지고 있던 C기반의 형태소 분석기 보다는 Lucene의 기반이 되는 Java언어로 만들기가 확장성 측면에서 좋을거 같다는 의견에 동의를 하고 자바기반 공개 한국어 형태소 분석기 개발을 시작하려 한다. 일단 Analyzer분석을 틈틈히 하고 있고, 테스트도 간간히 해보면서 기존의 Lucene이 가지고 있는 Tokenizer나 Filter의 특성을 파악하고 있는 중이다. 조금 보니까….쩝 […]

계속 읽기

Joinc에 있던 Lucene 관련 자료

Lucene 쿼리 Nutch를 통해서 분석한 문서를 conv2님께서 직접 메일로 보네주셨다. 내가 강좌한 문서는 정보검색에 대해서 어느정도 공부를 해본 사람을 대상으로 했지만 이 문서는 그보다 더 쉽고 그림이 많아서 쉽게 이해할 수 있을거라는 생각이 든다. 아직 완성된 문서는 아니지만 완성해 나가는 과정을 쭉 지켜보면 많은 도움이 되리라 생각된다. 마지막으로 conv2님 정말 감사합니다. ^^

계속 읽기

Lucene에서 정규화를 위한 인자에 대한 정리

위의 두가지 식이 루씬에서 순위를 결정하는 식이 되겠다. 정확히 DefaultSimilarity라고 볼 수 있다.(현재 Lucene in Action 책의 식과 다르다.) 여기서 .f[0-9]* 라는 파일에 저장이 되는 값이 lengthNorm이라는 함수로 계산된 값인데. 식은 (float)(1.0 / Math.sqrt(numTerms)) 이와 같이 정의가 된다. numTerms은 해당 텀이 속해있는 Field의 Term의 갯수를 의미한다. 그래서 짧은 Field의 경우 굉장한 스코어상의 이득을 볼 수 […]

계속 읽기

Lucene에서 Position과 offset에 대한 설명 과 그 밖의 추가들

루씬 파일 포멧 두번째 강좌에서 .fnm파일을 설명하다가 FieldBits에 대한 설명을 얼렁뚱땅 해버려서 다시 자세히 설명한다. FieldBits 가장 낮은 비트는 인덱스 여부 저장 두번째 비트 term vector 저장 여부 세번째 비트 term positions 저장 여부 네번째 비트 term offsets 저장 여부 세번재, 네번째 비트를 왜 저장하는지 몰랐느데 겨우 알아넸다. 결론적으로는 세번째 비트는 구문질의나 스팬질의를 위한 정보를 […]

계속 읽기

Lucene Incremental Algorithm

루씬 파일 시스템 두번째 강좌에서 증분색인(incremental indexing)에 대해서 약간이나마 설명을 했지만 뭔가 다른 설명할 거리가 필요함을 절절하게 느낀 나머지 “증분색인”에 대해서 다시 이야기 해보고자 한다. 루씬은 증분색인을 지원을 함으로서 색인에 문서를 추가했을 경우에 문서 전체를 재색인 할 필요가 없다. 따라서 문서가 추가된 다음에 즉시 검색이 가능하다는 이야기 이다. 그래서 색인에 문서가 추가될 때마다 색인이 있는 […]

계속 읽기

[강좌]Lucene Index File Format-4 (마지막)

마지막 강좌이다. 이곳에서는 텀벡터(Term Vectors)를 저장하는 방식과 삭제되는 문서들을 어떻게 저장을 하는지에 대해서 알아보도록 한다. Term Vectors 1) 텀 벡터 인덱스 파일 또는 .tvx 파일 이 파일은 Document(.tvd)안에있는 문서 정보에 대한 포인터를 제공한다. <구조 요약> DocumentIndex (.tvx) –> TVXVersion<DocumentPosition>^NumDocs <각 인자별 자료형 정의> TVXVersion –> Int DocumentPosition –> UInt64 문서 갯수만큼 .tvd파일로의 파일 포인터 정보를 […]

계속 읽기

루씬에 대해서 몇가지…

루씬(Lucene)을 분석하면서 여러 사이트를 검색해보고 메일링도 받아보고 그러는 중인데 의외로 자료가 적음에 실망을 했지만 조금이나마 힘이 될 수 있는 주소 몇개를 알아냈다. 1. 루씬 개발 메일링 리스트 2. 루씬을 이해하기 위한 정보검색 자료들 3. 루씬 창시자 더그커팅의 블로그 더그 커팅의 블로그로 가보면 현재 그는 야후에서 일하고 있는것으로 나와있다. 그리고 간간히 여러 대학에서 정보검색에 대한 강의도 […]

계속 읽기

[강좌]Lucene Index File Format-3

텀 사전(Term Dictionary) 텀 사전은 두개의 파일로 구성된다: 1) 텀 정보 파일 또는 .tis 파일 <구조 요약> TermInfoFile (.tis)–> TIVersion, TermCount, IndexInterval, SkipInterval, TermInfos <각 인자별 자료형 정의> TIVersion –> UInt32 TermCount –> UInt64 IndexInterval –> UInt32 SkipInterval –> UInt32 TermInfos –> <TermInfo>^TermCount TermInfo –> <Term, DocFreq, FreqDelta, ProxDelta, SkipDelta> Term –> <PrefixLength, Suffix, FieldNum> […]

계속 읽기

[강좌]Lucene Index File Format-2

이번 강좌에서 설명할 파일구조는 Field의 정보에 대한 파일이다. 단순히 필드의 속성 및 이름 값을 루씬이 어떤식으로 접근하려고 하는지 확인해 보는 장이 될것이다. 5. 세그먼트당 포함된 파일들 세그먼트에 포함된 모든 파일들은 확장자에 의해 구분이 된다. Fields 1)필드정보(Field Info) 저장파일 필드정보 저장파일은 .fnm이라는 확장자로 저장이 된다. <구조 요약> FieldInfos (.fnm) –> FieldsCount, <FieldName, FieldBits>^FieldsCount <각 인자별 자료형 […]

계속 읽기

[강좌]Lucene Index File Format-1

Lucene Index File Format Overview에 이어 오늘은 하나의 인덱스에 한개나 두개정도 필수적으로 필요한 파일에 대한 설명을 하겠다. 물론 오늘의 백미는 세그먼트 병합(segment merge)이다. 4. 인덱스 파일당 포함되어 있는 것들 1)세그먼트(Segments) 파일 그 해당 인덱스에 포함되어 있는 세그먼트들에 대한 정보를 가지고 있는 파일이다. 오직 이 파일하나만 인덱스 파일에 포함되어 있으며 “segments”라는 파일명으로 존재한다. 이 리스트는 각 […]

계속 읽기