목차로 이동


목차

개체명 인식하기

문장 또는 문단을 분석해서 각 문장 속에서 사람이나 장소 등을 나타내는 개체명을 묶어낼 수 있습니다. ETRI 분석기만 의존구조 분석을 지원합니다.

결과물은 Sentence 객체에 포함된 Entity의 List가 됩니다.

아래 분석 예시는 ‘텍스트 문단’ 을 기준으로 분석한 결과들입니다. 이미 타 분석기에서 분석된 Sentence 객체나, Sentence의 List인 경우에도 같은 방식으로 호출이 가능합니다.

참고

개체명 인식은 문장에서 인물, 장소, 기관, 대상 등을 인식하는 기술입니다.

예) ‘철저한 진상 조사를 촉구하는 국제사회의 목소리가 커지고 있는 가운데, 트럼프 미국 대통령은 되레 사우디를 감싸고 나섰습니다.’에서, 다음을 인식하는 기술입니다.

Kotlin

Reference: CanRecognizeEntity, ETRI EntityRecognizer

import kr.bydelta.koala.etri.EntityRecognizer

val API_KEY = /** ETRI에서 발급받은 키 **/
val recognizer = EntityRecognizer(API_KEY)

val parsed = recognizer.analyze("이 문단을 분석합니다. 문단 구분은 자동으로 합니다.") 
// 또는 recognizer(...), recognizer.invoke(...)

// 첫번째 문장의 개체명들을 출력합니다.
parsed[0].getEntities().forEach{ entity ->
    println(entity)
}

Scala

Reference: CanRecognizeEntity, ETRI EntityRecognizer

import kr.bydelta.koala.etri.EntityRecognizer
import kr.bydelta.koala.Implicits._

val API_KEY = /** ETRI에서 발급받은 키 **/
val recognizer = new EntityRecognizer(API_KEY)

val parsed = recognizer.analyze("이 문단을 분석합니다. 문단 구분은 자동으로 합니다.") 
// 또는 recognizer(...), recognizer.invoke(...)

// 첫번째 문장의 개체명들을 출력합니다.
parsed[0].getEntities().forEach{ entity =>
    println(entity)
}

Java

Reference: CanRecognizeEntity, ETRI EntityRecognizer

import kr.bydelta.koala.etri.EntityRecognizer;
import kr.bydelta.koala.data.Sentence;
import kr.bydelta.koala.data.Entity;

String API_KEY = /** ETRI에서 발급받은 키 **/
EntityRecognizer recognizer = new EntityRecognizer(API_KEY);

List<Sentence> parsed = recognizer.analyze("이 문단을 분석합니다. 문단 구분은 자동으로 합니다.") 
// 또는 recognizer.invoke(...)

// 첫번째 문장의 개체명들을 출력합니다.
for(Entity entity : parsed[0].getEntities()) {
    println(entity);
}

JavaScript

Reference: EntityRecognizer

Async/Await
const {EntityRecognizer} = require('koalanlp/proc');
const {ETRI} = require('koalanlp/API');

const API_KEY =; ??/** ETRI에서 발급받은 키 **/

async function someAsyncFunction(){
    // ....
    
    let recognizer = new EntityRecognizer(ETRI, {etriKey: API_KEY});
    let result = await recognizer("이 문단을 분석합니다. 문단 구분은 자동으로 합니다.");
    // 또는 recognizer.analyze(...)

    /* Result는 Sentence[] 타입입니다. */
    // 첫번째 문장의 개체명들을 출력합니다.
    for(const entity of parsed[0].getEntities()){
        console.log(entity.toString());
    }
        
    // ...
}

someAsyncFunction().then(
    () => console.log('After function finished'),
    (error) => console.error('Error occurred!', error)
);
Promise
const {EntityRecognizer} = require('koalanlp/proc');
const {ETRI} = require('koalanlp/API');

const API_KEY =; ??/** ETRI에서 발급받은 키 **/

let recognizer = new EntityRecognizer(ETRI, {etriKey: API_KEY});
recognizer("이 문단을 분석합니다. 문단 구분은 자동으로 합니다.")  // 또는 recognizer.analyze(...)
    .then((result) => {
        /* Result는 Sentence[] 타입입니다. */
        // 첫번째 문장의 개체명들을 출력합니다.
        for(const entity of parsed[0].getEntities()){
            console.log(entity.toString());
        }
    }, (error) => console.error('Error occurred!', error));
Synchronous Call
const {EntityRecognizer} = require('koalanlp/proc');
const {ETRI} = require('koalanlp/API');

const API_KEY =; ??/** ETRI에서 발급받은 키 **/

// ....

let recognizer = new EntityRecognizer(ETRI, {etriKey: API_KEY});
let result = recognizer.analyzeSync("이 문단을 분석합니다. 문단 구분은 자동으로 합니다.");

/* Result는 Sentence[] 타입입니다. */
// 첫번째 문장의 개체명들을 출력합니다.
for(const entity of parsed[0].getEntities()){
    console.log(entity.toString());
}
    
// ...

Python 3

Reference: EntityRecognizer

from koalanlp import API
from koalanlp.proc import EntityRecognizer

recognizer = EntityRecognizer(API.ETRI, etri_key=API_KEY)

parsed = recognizer("이 문단을 분석합니다. 문단 구분은 자동으로 합니다.")
# 또는 recognizer.analyze(...), recognizer.invoke(...)

# 첫번째 문장의 개체명들을 출력합니다.
for entity in parsed[0].getEntities():
    print(entity)

목차로 이동