-
Notifications
You must be signed in to change notification settings - Fork 10
2.1 문장 분리(Sentence split)
Bugeun Kim edited this page Jan 23, 2018
·
6 revisions
품사 태깅을 거치지 않은 문장 분리는, 한나눔과 트위터(오픈한글) 분석기만 지원됩니다. 타 패키지의 경우 문장 분리 작업이 품사 태깅 이후에 이루어집니다.
NOTE:
- 긴 문단의 경우, 문장 분리를 한나눔 또는 트위터(오픈한글)로 작업한 다음 각 문장별로 태깅하는 것을 권합니다.
- 한나눔이 트위터(오픈한글)보다 문장분리가 정확하지만, 반대로 무겁습니다.
/*
* 초기화 과정에서 TYPES.HANNANUM 또는 TYPES.TWITTER 지정 필요.
* 예시에서는 트위터 문장 분리기 활용
* 다음과 같이 초기화하였다고 가정함
* koalanlp.intialize({packages: [TYPES.HANNANUM, ...] ...})
*/
let koalanlp = require('koalanlp');
let TYPES = koalanlp.util.TYPES;
let SentenceSplitter = koalanlp.SentenceSplitter;
// 새 문장분리기를 초기화합니다.
let sentSplit = new SentenceSplitter(TYPES.HANNANUM);
// 분리할 문장
let paragraph = "안녕하세요. 눈이 오는 설날 아침입니다. KoalaNLP는 최신 Java 패키지를 자동으로 불러오니 편리합니다.";
// 문장들로 분리합니다.
let sentences = sentSplit.sentences(paragraph);
// 또는 다음과 같이, callback으로 결과를 받을 수도 있습니다.
sentSplit.sentences(paragraph, function(o){
if (o.error) throw new Error(o.error);
else sentences = o.result;
});또는, 품사 부착 후에, KoalaNLP에서 지원하는 문장분리기를 사용할 수 있습니다.
let koalanlp = require('koalanlp');
let SentenceSplitter = koalanlp.SentenceSplitter;
let sentence = someTagger.tagSentence(text) // 1개 문장으로 취급하여 품사 부착 완료
let paragraph = SentenceSplitter.sentencesByKoala(sentence) // 문장의 어절을 분리하여 Sentence[] 구성.
// 또는 다음과 같이, callback으로 결과를 받을 수도 있습니다.
SentenceSplitter.sentencesByKoala(paragraph, function(o){
if (o.error) throw new Error(o.error);
else paragraph = o.result;
});