목차
사전 사용하기
사전에 접근하여 내용을 불러오거나 새 항목을 추가할 수 있습니다. 아리랑, 은전한닢, 한나눔, 꼬꼬마, 코모란, OpenKoreanText에서 사용 가능합니다.
Kotlin
Reference: 아리랑 Dictionary, 은전한닢 Dictionary, 한나눔 Dictionary, 꼬꼬마 Dictionary, 코모란 Dictionary, OpenKoreanText Dictionary
import kr.bydelta.koala.kkma.Dictionary // 또는 다른 패키지 사용
import kr.bydelta.koala.POS
/***** 사전에 등록하기 *****/
Dictionary.addUserDictionary("코알라NLP", POS.NNP) // 1개 등록
Dictionary.addUserDictionary("코모란" to POS.NNP, "은전한닢" to POS.NNP) // 2개 이상 등록
Dictionary.addUserDictionary(listOf("한나눔", "아리랑"), listOf(POS.NNP, POS.NNP)) // 별도 목록으로 등록
/***** 사전에 있는지 확인하기 *****/
Dictionary.contains("코알라NLP", setOf(POS.NNP, POS.NNG))
("코알라NLP" to POS.NNP) in Dictionary
/***** 다른 패키지 사전에서 단어 불러오기 *****/
Dictionary.importFrom(kr.bydelta.koala.eunjeon.Dictionary)
/***** 사전 항목 추출하기 *****/
Dictionary.items() // 사용자 사전 항목
Dictionary.getBaseEntries{ it.isNoun() } // 시스템 사전 항목
Scala
Reference: 아리랑 Dictionary, 은전한닢 Dictionary, 한나눔 Dictionary, 꼬꼬마 Dictionary, 코모란 Dictionary, OpenKoreanText Dictionary
- koalanlp-scala가 dependency로 포함되었다고 가정합니다.
import kr.bydelta.koala.kkma.Dictionary // 또는 다른 패키지 사용
import kr.bydelta.koala.POS
import kr.bydelta.koala.Implicits._
/***** 사전에 등록하기 *****/
Dictionary.INSTANCE.addUserDictionary("코알라NLP", POS.NNP) // 1개 등록
Dictionary.INSTANCE.addUserDictionary("코모란" -> POS.NNP, "은전한닢" -> POS.NNP) // 2개 이상 등록
Dictionary.INSTANCE.addUserDictionary(Seq("한나눔", "아리랑"), Seq(POS.NNP, POS.NNP)) // 별도 목록으로 등록
/***** 사전에 있는지 확인하기 *****/
Dictionary.INSTANCE.contains("코알라NLP", Set(POS.NNP, POS.NNG))
Dictionary.INSTANCE.contains("코알라NLP" -> POS.NNP)
/***** 다른 패키지 사전에서 단어 불러오기 *****/
Dictionary.INSTANCE.importFrom(kr.bydelta.koala.eunjeon.Dictionary.INSTANCE)
/***** 사전 항목 추출하기 *****/
Dictionary.INSTANCE.items() // 사용자 사전 항목
Dictionary.INSTANCE.getBaseEntries(_.isNoun) // 시스템 사전 항목
Java
Reference: 아리랑 Dictionary, 은전한닢 Dictionary, 한나눔 Dictionary, 꼬꼬마 Dictionary, 코모란 Dictionary, OpenKoreanText Dictionary
import kr.bydelta.koala.kkma.Dictionary; // 또는 다른 패키지 사용
import kr.bydelta.koala.POS;
import kotlin.Pair;
/***** 사전에 등록하기 *****/
Dictionary.INSTANCE.addUserDictionary("코알라NLP", POS.NNP); // 1개 등록
Dictionary.INSTANCE.addUserDictionary(new Pair("코모란", POS.NNP), new Pair("은전한닢", POS.NNP)); // 2개 이상 등록
Dictionary.INSTANCE.addUserDictionary(surfaceList, posList); // 별도 목록으로 등록
/***** 사전에 있는지 확인하기 *****/
Set<POS> posSet = ...
Dictionary.INSTANCE.contains("코알라NLP", posSet);
Dictionary.INSTANCE.contains(Pair("코알라NLP", POS.NNP));
/***** 다른 패키지 사전에서 단어 불러오기 *****/
Dictionary.INSTANCE.importFrom(kr.bydelta.koala.eunjeon.Dictionary.INSTANCE);
/***** 사전 항목 추출하기 *****/
Dictionary.INSTANCE.items(); // 사용자 사전 항목
Dictionary.INSTANCE.getBaseEntries(pos -> {
return pos.isNoun();
}); // 시스템 사전 항목
JavaScript
Reference: Dictionary
- 아래 코드는 ES8과 호환되는 CommonJS (NodeJS > 8) 기준으로 작성되어 있습니다.
addUserDictionary
와contains
는 synchronous 동작입니다.
const {Dictionary} = require('koalanlp/proc');
const {KKMA, EUNJEON} = require('koalanlp/API');
const {POS} = require('koalanlp/types');
let KDict = new Dictionary(KKMA);
/***** 사전에 등록하기 *****/
KDict.addUserDictionary({'surface':"코알라NLP", 'tag':POS.NNP}); // 1개 등록
KDict.addUserDictionary({'surface':"코모란", 'tag':POS.NNP}, {'surface':"은전한닢", 'tag':POS.NNP}); // 2개 이상 등록
/***** 사전에 있는지 확인하기 *****/
KDict.contains("코알라NLP", POS.NNP, POS.NNG);
KDict.contains("코알라NLP", POS.NNP);
importFrom
,items
,getBaseEntries
등은 asynchronous call만 지원합니다.
Async/Await
async function someAsyncFunction(){
/***** 다른 패키지 사전에서 단어 불러오기 *****/
let EDict = new Dictionary(EUNJEON);
KDict.importFrom(EDict);
/***** 사전 항목 추출하기 *****/
KDict.items(); // 사용자 사전 항목
KDict.getBaseEntries(POS.isNoun); // 시스템 사전 항목
}
someAsyncFunction().then(() => {...}, (error) => {...});
Promise
/***** 다른 패키지 사전에서 단어 불러오기 *****/
let EDict = new Dictionary(EUNJEON);
KDict.importFrom(EDict).then(() => {...}, (error) => {...});;
/***** 사전 항목 추출하기 *****/
KDict.items().then((items) => {
// 사용자 사전 항목
//items는 Array<{'surface': string, 'tag': POS}> 입니다.
...
}, (error) => {...});
KDict.getBaseEntries(POS.isNoun).then((items) => {
// 시스템 사전 항목
//items는 Generator<{'surface': string, 'tag': POS}> 입니다.
...
}, (error) => {...});
Python 3
Reference: Dictionary
from koalanlp import API
from koalanlp.types import POS
from koalanlp.proc import Dictionary
KDict = Dictionary(API.KKMA)
# ------ 사전에 등록하기 ------
KDict.addUserDictionary(("코알라NLP", POS.NNP)) # 1개 등록
KDict.addUserDictionary(("코모란", POS.NNP), ("은전한닢", POS.NNP)) # 2개 이상 등록
# ------ 사전에 있는지 확인하기 ------
KDict.contains("코알라NLP", POS.NNP, POS.NNG)
KDict.contains("코알라NLP", POS.NNP)
# ------ 다른 패키지 사전에서 단어 불러오기 ------
KDict.importFrom(Dictionary(API.EUNJEON))
# ------ 사전 항목 추출하기 ------
KDict.getItems() # 사용자 사전 항목
KDict.getBaseEntries(lambda pos: pos.isNoun()) # 시스템 사전 항목