Skip to content

2.1 문장 분리(Sentence split)

Bugeun Kim edited this page Dec 14, 2018 · 6 revisions

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


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

NOTE:

  • 긴 문단의 경우, 문장 분리를 한나눔 또는 트위터(오픈한글)로 작업한 다음 각 문장별로 태깅하는 것을 권합니다.
  • 한나눔이 트위터(오픈한글)보다 문장분리가 정확하지만, 반대로 무겁습니다.
/*
 * 초기화 과정에서 API.HANNANUM 또는 API.TWITTER 지정 필요.
 * 예시에서는 트위터 문장 분리기 활용
 * 다음과 같이 초기화하였다고 가정함
 * koalanlp.intialize({packages: [API.HANNANUM, ...] ...})
 */
let koalanlp = require('koalanlp');
let API = koalanlp.API;
let SentenceSplitter = koalanlp.SentenceSplitter;

// 새 문장분리기를 초기화합니다.
let sentSplit = new SentenceSplitter(API.HANNANUM);
// 분리할 문장
let paragraph = "안녕하세요. 눈이 오는 설날 아침입니다. KoalaNLP는 최신 Java 패키지를 자동으로 불러오니 편리합니다.";
// 문장들로 분리합니다.
let sentPromise = sentSplit.sentences(paragraph);
sentPromise.then(function(result){
  sentences = result;
});
// Synchronous:
let sentences = sentSplit.sentencesSync(paragraph);

품사 부착 후 분리 방법

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

let koalanlp = require('koalanlp');
let SentenceSplitter = koalanlp.SentenceSplitter;

let sentence = someTagger.tagSentence(text) // 1개 문장으로 취급하여 품사 부착 완료

let paraPromise = SentenceSplitter.sentences(sentence) // 문장의 어절을 분리하여 Sentence[] 구성.
paraPromise.then(function(result){
  paragraph = result;
});

// Synchronous:
let sentences = SentenceSplitter.sentencesSync(paragraph);

Clone this wiki locally