koalanlp / kr.bydelta.koala.proc / CanLabelSemanticRole

CanLabelSemanticRole

interface CanLabelSemanticRole<T> : CanAnalyzeProperty<T> (source)

의미역 분석(Semantic Role Labeling)을 수행하는 Interface입니다. 매개변수 T는 각 분석기에서 문장을 분석한 결과물의 중간 형태, 즉 분석기의 입력 형태입니다.

참고

의미역 결정은 문장의 구성 어절들의 역할/기능을 분석하는 방법입니다. 예) '나는 밥을 어제 집에서 먹었다'라는 문장에는 동사 '먹었다'를 중심으로

아래를 참고해보세요.

사용법 예제

분석기 ParserCanLabelSemanticRole을 상속받았다면,

Kotlin

// 문장에서 바로 분석할 때
val parser = Parser()
val sentences = parser.analyze("문장 2개입니다. 결과는 목록이 됩니다.") // 또는 parser("문장 2개입니다. 결과는 목록이 됩니다.")

// 타 분석기에서 분석한 다음 이어서 분석할 때
val taggedSentence: Sentence = ...
val sentence = parser.analyze(taggedSentence) // 또는 parser(taggedSentence)

val taggedSentList: List<Sentence> = ...
val sentences = parser.analyze(taggedSentList) // 또는 parser(taggedSentList)

Scala + koalanlp-scala

import kr.bydelta.koala.Implicits._
// 문장에서 바로 분석할 때
val parser = new Parser()
val sentences = parser.analyze("문장 2개입니다. 결과는 목록이 됩니다.") // 또는 parser("문장 2개입니다. 결과는 목록이 됩니다.")

// 타 분석기에서 분석한 다음 이어서 분석할 때
val taggedSentence: Sentence = ...
val sentence = parser.analyze(taggedSentence) // 또는 parser(taggedSentence)

val taggedSentList: java.util.List[Sentence] = ...
val sentences = parser.analyze(taggedSentList) // 또는 parser(taggedSentList)

Java

// 문장에서 바로 분석할 때
Parser parser = Parser()
List<Sentence> sentences = parser.analyze("문장 2개입니다. 결과는 목록이 됩니다.") // 또는 parser.invoke("문장 2개입니다. 결과는 목록이 됩니다.")

// 타 분석기에서 분석한 다음 이어서 분석할 때
Sentence taggedSentence = ...
Sentence sentence = parser.analyze(taggedSentence) // 또는 parser.invoke(taggedSentence)

List<Sentence> taggedSentList = ...
List<Sentence> sentences = parser.analyze(taggedSentList) // 또는 parser.invoke(taggedSentList)

Since
2.0.0

Inheritors

RoleLabeler

의미역 분석(Semantic Role Labeling)을 수행하는 Interface입니다.

class RoleLabeler : CanLabelSemanticRole<SentenceResponse>, CanParseWithETRI