Skip to content
This repository has been archived by the owner on Jun 21, 2023. It is now read-only.

Pusnow/mecab-java-msvc

Repository files navigation

mecab-java-msvc

프로젝트가 하나의 GitHub 리포지토리로 통합되었습니다. 다음 링크를 방문해 주세요.

https://github.com/Pusnow/mecab-ko-msvc

설명

Build

mecab-java-msvc는 mecab-ko-msvc에서 사용할 수 있는 mecab-java을 빌드하는 프로젝트입니다.

설치

  • mecab-ko-msvc를 설치하지 않았으면 설치해야 합니다.
  • mecab-ko-dic-msvc를 설치하지 않았으면 설치해야 합니다.
  • C:\mecab\을 PATH 환경변수에 추가합니다.
  • 실행 환경에 맞는 최신버전을 다운로드합니다. JDK 1.8을 지원합니다.

사용 정보

  • org 폴더와 MeCab.dll이 있는 경로에서 Java 파일을 편집합니다.
  • 첨부한 test.java는 UTF-8로 인코딩 되어 있습니다. javac -encoding UTF-8 test.java 처럼 인코딩을 지정해 주어야 합니다.
  • java test 로 테스트 파일을 실행할 수 있습니다.

빌드 정보

  • mecab-java-msvc 는 Appveyor를 이용합니다.
  • 빌드 과정은 Appveyor 페이지 에 기록되어 있습니다.
  • 개인적으로 빌드를 하고 싶으신 분은 appveyor.yml 을 참고하시기 바랍니다.

Elastic Search 연동

mecab-java-msvc는 Windows 환경에서 Elastic Search와 연동하여 사용할 수 있습니다. Windows 10 Ent. 64bit, JDK 1.8, Elastic Search 5.5.0 에서 테스트 완료했습니다.

세부 절차

  1. mecab-ko-msvc을 C:\mecab 에 설치
  2. mecab-ko-dic-msvc을 C:\mecab 에 설치
  3. mecab-java-msvc에서 MeCab.dll을 C:\mecab 으로 복사
  4. C:\mecab 을 환경변수 PATH에 추가
  5. ElasticSearch 5.5.0 MSI 설치
  6. 5.5.0 버전 플러그인 설치
    1. 관리자의 권한으로 CMD 실행
    2. 다음 명령어를 실행하여 플러그인 설치
    3. "C:\Program Files\Elastic\Elasticsearch\bin\elasticsearch-plugin.bat" install https://bitbucket.org/eunjeon/mecab-ko-lucene-analyzer/issues/attachments/9/eunjeon/mecab-ko-lucene-analyzer/1500357175.91/9/elasticsearch-analysis-mecab-ko-5.5.0.0.zip
  7. ElasticSearch 재시작

테스트 (POSTMAN 사용)

  1. 혹시 있을 eunjeon 제거 DELETE http://localhost:9200/eunjeon
  2. 인데스 추가 리눅스 버전과 다르게 mecab_args로 사전 경로를 지정해 주어야 합니다. PUT http://localhost:9200/eunjeon
BODY(JSON):
    {
        "settings": {
            "index": {
            "analysis": {
                "analyzer": {
                "korean_index": {
                    "type": "custom",
                    "tokenizer": "mecab_ko_standard_tokenizer"
                },
                "korean_query": {
                    "type": "custom",
                    "tokenizer": "korean_query_tokenizer"
                }
                },
                "tokenizer": {
                "mecab_ko_standard_tokenizer": {
                    "type": "mecab_ko_standard_tokenizer",
                    "mecab_args": "-d C:/mecab/mecab-ko-dic"
                },
                "korean_query_tokenizer": {
                    "type": "mecab_ko_standard_tokenizer",
                    "compound_noun_min_length": 100,
                    "mecab_args": "-d C:/mecab/mecab-ko-dic"
                }
                }
            }
            }
        }
    }
  1. 테스트 POST http://localhost:9200/eunjeon/_analyze?analyzer=korean_query
  BODY(text) : 은전한닢 프로젝트
  1. 결과
{
    "tokens": [
        {
            "token": "은전",
            "start_offset": 0,
            "end_offset": 2,
            "type": "NNG",
            "position": 0
        },
        {
            "token": "한",
            "start_offset": 2,
            "end_offset": 3,
            "type": "NR",
            "position": 1
        },
        {
            "token": "닢",
            "start_offset": 3,
            "end_offset": 4,
            "type": "NNG",
            "position": 2
        },
        {
            "token": "프로젝트",
            "start_offset": 5,
            "end_offset": 9,
            "type": "NNG",
            "position": 3
        }
    ]
}

관련 프로젝트

mecab-java

mecab-java 의 tagger와 lexicon의 메모리 누수가 해결된 버전

MeCab java module

$Id: README,v 1.2 2005/12/25 16:55:43 taku-ku Exp $;

  1. Build UTF-8 dictionary

  2. How to use?

See test.java as sample program.

% java -classpath MeCab.jar test -d ../dic