Skip to content

2.1 문장 분리(Sentence split)

Bugeun Kim edited this page Nov 27, 2018 · 5 revisions

여기에 수록된 사용법(1~3절)은 모두 1.x 버전의 사용법입니다. 최신 버전의 사용법은 Usage를 참고하십시오.

품사 태깅을 거치지 않은 문장 분리는, 한나눔과 트위터(OpenKoreanText) 분석기만 지원됩니다. 타 패키지의 경우 문장 분리 작업이 품사 태깅 이후에 이루어집니다.

NOTE:

  • 긴 문단의 경우, 문장 분리를 한나눔 또는 트위터(OpenKoreanText)로 작업한 다음 각 문장별로 태깅하는 것을 권합니다.
  • 한나눔이 트위터(OpenKoreanText)보다 문장분리가 정확하지만, 반대로 무겁습니다.

Scala

/* 패키지 명: 한나눔(hnn), 트위터(twt) */
// 예시에서는 트위터 문장 분리기 활용
import kr.bydelta.koala.twt.SentenceSplitter

// 새 문장분리기를 초기화합니다.
val sentSplit = new SentenceSplitter
// 분리할 문장
val paragraph = "안녕하세요. 눈이 오는 설날 아침입니다. KoalaNLP는 간단하고 편리합니다."
// 문장들로 분리합니다.
val sentences: Seq[String] = sentSplit.sentences(paragraph)

Java

Java는 다음과 같습니다.

import kr.bydelta.koala.twt.SentenceSplitter;
import java.util.List;

// 새 문장분리기를 초기화합니다
SentenceSplitter sentSplit = new SentenceSplitter();
// 분리할 문장.
String paragraph = "안녕하세요. 눈이 오는 설날 아침입니다. KoalaNLP는 Java에서도 간단하고 편리합니다.";
// 문장들로 분리합니다.
List<String> sentences = sentSplit.jSentences(paragraph);

품사 부착 후 분리 방법

또는, 품사 부착 후에, KoalaNLP에서 지원하는 문장분리기를 사용할 수 있습니다.

Scala

import kr.bydelta.koala.util.SentenceSplitter

val sentence = someTagger.tagSentence(text) //1개 문장으로 취급하여 품사 부착 완료
val paragraph = SentenceSplitter(sentence.words) //어절 분리하여 Seq[Sentence] 구성.

Java

import kr.bydelta.koala.util.SentenceSplitter

Sentence sentence = someTagger.jTagSentence(text) //1개 문장으로 취급하여 품사 부착 완료
Seq<Sentence> paragraph = SentenceSplitter.apply(sentence.words()) //어절 분리하여 일종의 List로 변환.