Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
bab2min authored Jan 30, 2024
1 parent d70cf2f commit b708dda
Showing 1 changed file with 51 additions and 4 deletions.
55 changes: 51 additions & 4 deletions bindings/java/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,14 @@ $ wget https://github.com/bab2min/Kiwi/releases/download/v0.16.0/kiwi_model_v0.1
$ tar -zxvf kiwi_model_v0.16.0_base.tgz # 압축 해제. 모델을 포함한 ModelGenerator라는 폴더가 생성됨

# KiwiJava 다운로드
$ wget https://github.com/bab2min/Kiwi/releases/download/v0.16.0/kiwi-java-v0.16.0-lnx-x86-64.jar
$ wget https://github.com/bab2min/Kiwi/releases/download/v0.16.1/kiwi-java-v0.16.1-lnx-x86-64.jar

# 모델 파일은 Patch가 다르더라도 Major, Minor 버전이 동일하면 호환됩니다.
# 즉, kiwi_model_v0.16.0은 kiwi-java-v0.16.* 전부에서 사용가능합니다.

# jar 구동. 구동 인자로 모델 경로를 입력해주어야 함
$ java -jar kiwi-java-v0.16.0-lnx-x86-64.jar ModelGenerator/
Kiwi 0.16.0 is loaded!
$ java -jar kiwi-java-v0.16.1-lnx-x86-64.jar ModelGenerator/
Kiwi 0.16.1 is loaded!
>> 안녕하세요?
[Token(form=안녕, tag=NNG, position=0, length=2),
Token(form=하, tag=XSA, position=2, length=1),
Expand All @@ -36,11 +39,55 @@ import kr.pe.bab2min.KiwiBuilder;

public class KiwiExample {
public static void main(String[] args) throws Exception {
Kiwi kiwi = Kiwi.init("some model path");
// Kiwi 인스턴스 생성 방법 (1)
Kiwi kiwi = Kiwi.init("path_to_kiwi_model");

/*
// Kiwi 인스턴스 생성 방법 (2)
try(KiwiBuilder builder = new KiwiBuilder("path_to_kiwi_model")) {
// 기본 옵션으로 Kiwi 인스턴스 생성
kiwi = builder.build();
// 오타 교정 기능을 사용하여 Kiwi 인스턴스 생성
kiwi = builder.build(KiwiBuilder.basicTypoSet, 2.0f);
}
*/

// 형태소 분석
// Kiwi.Match에 대한 자세한 설명은
// https://github.com/bab2min/Kiwi/blob/c849ee06f788ca07b6c924f3497bcce89e9dfa9a/include/kiwi/PatternMatcher.h
// 를 참고하세요.
Kiwi.Token[] tokens = kiwi.tokenize("분석할 텍스트", Kiwi.Match.allWithNormalizing);
System.out.println(Arrays.deepToString(tokens));
/* Output:
[Token(form=분석, tag=NNG, position=0, length=2),
Token(form=하, tag=XSV, position=2, length=1),
Token(form=ᆯ, tag=ETM, position=2, length=1),
Token(form=텍스트, tag=NNG, position=4, length=3)]*/

// 문장 분할
Kiwi.Sentence[] sents = kiwi.splitIntoSents("텍스트를 문장별로 분할합니다. 잘 분할됩니까?", Kiwi.Match.allWithNormalizing);
System.out.println(Arrays.deepToString(sents));
/* Output:
[Sentence(text=텍스트를 문장별로 분할합니다., start=0, end=16, subSents=[]),
Sentence(text=잘 분할됩니까?, start=17, end=25, subSents=[])]*/

// 형태소 결합
Kiwi.JoinableToken[] joinableTokens = new Kiwi.JoinableToken[]{
new Kiwi.JoinableToken("키위", Kiwi.POSTag.nnp),
new Kiwi.JoinableToken("", Kiwi.POSTag.jko),
new Kiwi.JoinableToken("사용", Kiwi.POSTag.nng),
new Kiwi.JoinableToken("", Kiwi.POSTag.xsv),
new Kiwi.JoinableToken("", Kiwi.POSTag.ep),
new Kiwi.JoinableToken("", Kiwi.POSTag.ef),
};
String joined = kiwi.join(joinableTokens);
System.out.println(joined);
/* Output:
키위를 사용했다*/
}
}

```

자세한 예시는 [kr/pe/bab2min/](kr/pe/bab2min/) 내의 Kiwi.java, KiwiBuilder.java 및 KiwiTest.java 파일을 참조해주세요.

0 comments on commit b708dda

Please sign in to comment.