Awesome
mecab-java-msvc
공지: 이전됨 - https://github.com/Pusnow/mecab-ko-msvc
프로젝트가 하나의 GitHub 리포지토리로 통합되었습니다. 다음 링크를 방문해 주세요.
https://github.com/Pusnow/mecab-ko-msvc
설명
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 에서 테스트 완료했습니다.
세부 절차
-
mecab-ko-msvc을
C:\mecab
에 설치 -
mecab-ko-dic-msvc을
C:\mecab
에 설치 -
mecab-java-msvc에서 MeCab.dll을
C:\mecab
으로 복사 -
C:\mecab
을 환경변수 PATH에 추가 -
ElasticSearch 5.5.0 MSI 설치
-
5.5.0 버전 플러그인 설치
- 관리자의 권한으로 CMD 실행
- 다음 명령어를 실행하여 플러그인 설치
"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
-
ElasticSearch 재시작
테스트 (POSTMAN 사용)
- 혹시 있을 eunjeon 제거
DELETE http://localhost:9200/eunjeon
- 인데스 추가 리눅스 버전과 다르게 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"
}
}
}
}
}
}
- 테스트
POST http://localhost:9200/eunjeon/_analyze?analyzer=korean_query
BODY(text) : 은전한닢 프로젝트
- 결과
{
"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 $;
-
Build UTF-8 dictionary
-
How to use?
See test.java as sample program.
% java -classpath MeCab.jar test -d ../dic