Skip to content

2.2 단순 품사 분석 (POS Tagging)

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

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

모든 패키지가 품사 분석을 지원합니다. Package 목록

Note:

  • 형태소 분석의 결과는 세종 말뭉치의 지침에 따라 통합되었으며, 통합 태그와 각 분석기 태그의 비교표는 분석기별 품사비교표에서 보실 수 있습니다.
  • 은전한닢과 코모란 라이브러리는 문장분리기(Sentence splitter)를 지원하지 않아, Koala가 품사 분석 결과를 토대로 Heuristic을 사용하여 문장을 분리합니다. 때문에, 그 정확성이 떨어질 수 있습니다.
  • 트위터(OpenKoreanText)의 경우 품사 태깅을 세부적으로 진행하지 않아, 통합 변경 과정에서 임의로 대응되므로(예: Noun → NNG), 통합 태그가 실제와 다를 수 있으나, 큰 무리는 없습니다.
  • 아리랑 분석기 역시 품사 태깅을 세부적으로 진행하지 않고, 체언과 용언을 중심으로 분석을 진행하므로, 통합 태그나 결과물이 실제와 다를 수 있습니다.
  • 문장 분석은 문단 분석의 수행 결과를 하나의 문장으로 단순히 합칩니다. 따라서, tagSentence(String)보다는 tag(String)의 사용을 권장합니다.

Scala

/* 패키지 명: 한나눔(hnn), 코모란(kmr), 꼬꼬마(kkma), 은전한닢(eunjeon), 트위터(twt), 아리랑(arirang) */
// 예시에서는 은전한닢 분석기 활용
import kr.bydelta.koala.eunjeon.Tagger
import kr.bydelta.koala.Sentence

// 새 품사분석기를 초기화합니다.
val tagger = new Tagger

/* 문단 분석 */
// 분석할 문단.
val paragraph = "안녕하세요. 눈이 오는 설날 아침입니다. KoalaNLP는 간단하고 편리합니다."
// 문단 분석 결과는 Sentence의 Seq입니다.
val sentences: Seq[Sentence] = tagger.tag(paragraph)

/* 단일 문장 분석 */
// 분석할 문장.
val sentence = "이것은 코알라 통합 품사분석기에서 은전한닢 분석기를 돌린 결과입니다."
// 문장 분석 결과는 Sentence 객체입니다.
val analyzed: Sentence = tagger.tagSentence(sentence)

Java

Java는 다음과 같습니다.

import kr.bydelta.koala.eunjeon.Tagger;
import kr.bydelta.koala.Sentence;
import java.util.List;

// 새 품사 분석기를 초기화합니다.
Tagger tagger = new Tagger();

/* 문단 분석 */
// 분석할 문단
String paragraph = "안녕하세요. 눈이 오는 설날 아침입니다. KoalaNLP는 Java에서도 간단하고 편리합니다.";
// 문단 분석 결과는 Sentence의 List입니다.
List<Sentence> sentences = tagger.jTag(paragraph);

/* 단일 문장 분석 */
// 분석할 문장.
String sentence = "이것은 코알라 통합 품사분석기에서 은전한닢 분석기를 돌린 결과입니다.";
// 문장 분석 결과는 Sentence 객체입니다.
Sentence analyzed = tagger.tagSentence(sentence);