### Install Homebrew on Mac
Source: https://koalanlp.github.io/koalanlp/usage/PlatformInstall.html
Command to install Homebrew, a package manager for macOS, by running a Ruby script.
```bash
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
```
--------------------------------
### Install Scala 2.13.6 on Mac using Homebrew
Source: https://koalanlp.github.io/koalanlp/usage/PlatformInstall.html
Command to install Scala version 2.13.6 using Homebrew.
```bash
brew install scala
```
--------------------------------
### Maven Example (Kkma)
Source: https://koalanlp.github.io/koalanlp
Example Maven dependency for the Kkma tagger.
```xml
kr.bydelta
koalanlp-kkma
assembly
2.1.3
```
--------------------------------
### Install Java JDK 11 on RedHat-based Linux
Source: https://koalanlp.github.io/koalanlp/usage/PlatformInstall.html
Command to install OpenJDK 11 JDK on RedHat-based Linux distributions.
```bash
sudo yum install java-1.11.0-openjdk
```
--------------------------------
### Install Node.JS 16.2.0 on Mac using Homebrew
Source: https://koalanlp.github.io/koalanlp/usage/PlatformInstall.html
Command to install Node.JS version 16.2.0 using Homebrew.
```bash
brew install nodejs
```
--------------------------------
### Install Java JDK 11 on Debian-based Linux
Source: https://koalanlp.github.io/koalanlp/usage/PlatformInstall.html
Command to install OpenJDK 11 JDK on Debian-based Linux distributions.
```bash
sudo apt install openjdk-11-jdk
```
--------------------------------
### Kotlin Dependency Parsing
Source: https://koalanlp.github.io/koalanlp/usage/DepParse.html
Example of performing dependency parsing in Kotlin using the KoalaNLP library. It shows how to initialize a parser and process text to get dependency edges.
```kotlin
import kr.bydelta.koala.hnn.Parser // 또는 kkma.Parser, etri.Parser
val parser = Parser()
// ETRI 분석기의 경우 API 키를 필수적으로 전달해야 합니다. 예: Parser(API_KEY)
val parsed = parser.analyze("이 문단을 분석합니다. 문단 구분은 자동으로 합니다.")
// 또는 parser(...), parser.invoke(...)
// 첫번째 문장의 의존구조를 출력합니다.
parsed[0].getDependencies().forEach{
println(it)
}
```
--------------------------------
### Install Node.JS LTS on Windows using Chocolatey
Source: https://koalanlp.github.io/koalanlp/usage/PlatformInstall.html
Command to install the Long-Term Support (LTS) version of Node.JS (14.17.0) using Chocolatey.
```powershell
choco install nodejs-lts --version 14.17.0 -y
```
--------------------------------
### Install Python 3.9.5 on Windows using Chocolatey
Source: https://koalanlp.github.io/koalanlp/usage/PlatformInstall.html
Command to install Python version 3.9.5 using Chocolatey.
```powershell
choco install python --version 3.9.5 -y
```
--------------------------------
### Install Chocolatey on Windows
Source: https://koalanlp.github.io/koalanlp/usage/PlatformInstall.html
Command to install Chocolatey, a package manager for Windows, to simplify software installation.
```powershell
"@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
```
--------------------------------
### Install Python 3.9.5 on Mac using Homebrew
Source: https://koalanlp.github.io/koalanlp/usage/PlatformInstall.html
Commands to install Python version 3.9.5 using Homebrew. Note the use of --ignore-dependencies.
```bash
brew install python3
brew install --ignore-dependencies https://raw.githubusercontent.com/Homebrew/homebrew-core/f2a764ef944b1080be64bd88dca9a1d80130c558/Formula/python.rb --ignore-dependencies
```
--------------------------------
### Kotlin Example
Source: https://koalanlp.github.io/koalanlp/api/koalanlp/kr.bydelta.koala.daon/from-sejong-p-o-s.html
Example of converting Sejong POS to Daon POS in Kotlin.
```kotlin
POS.NNG.fromSejongPOS()
```
--------------------------------
### Java Example
Source: https://koalanlp.github.io/koalanlp/api/koalanlp/kr.bydelta.koala.daon/from-sejong-p-o-s.html
Example of converting Sejong POS to Daon POS in Java.
```java
Util.fromSejongPOS(POS.NNG)
```
--------------------------------
### Kotlin Example
Source: https://koalanlp.github.io/koalanlp/api/koalanlp/kr.bydelta.koala.hnn/kotlin.-string/to-e-t-r-i-dep-tag.html
Example of converting a dependency tag string to ETRI format in Kotlin.
```kotlin
"SBJ".toSejongPOS()
```
--------------------------------
### SBT Dependencies
Source: https://koalanlp.github.io/koalanlp/usage/installation.html
Dependencies for various KoalaNLP analyzers using SBT.
```scala
val koalaScalaVer = "2.1.0"
val koalaVer = "2.1.4"
// Implicit method 사용시 Scala support 추가
libraryDependencies += "kr.bydelta" %% "koalanlp-scala" % koalaScalaVer
// 코모란 분석기의 경우
resolvers += "jitpack" at "https://jitpack.io/"
libraryDependencies += "kr.bydelta" % "koalanlp-kmr" % koalaVer
// 은전한닢 분석기의 경우
libraryDependencies += "kr.bydelta" % "koalanlp-eunjeon" % koalaVer
// 아리랑 분석기의 경우
libraryDependencies += "kr.bydelta" % "koalanlp-arirang" % koalaVer classifier "assembly"
// RHINO 분석기의 경우
libraryDependencies += "kr.bydelta" % "koalanlp-rhino" % koalaVer classifier "assembly"
// Daon 분석기의 경우
libraryDependencies += "kr.bydelta" % "koalanlp-daon" % koalaVer classifier "assembly"
// Open Korean Text 분석기의 경우
libraryDependencies += "kr.bydelta" % "koalanlp-okt" % koalaVer
// 꼬꼬마 분석기의 경우
libraryDependencies += "kr.bydelta" % "koalanlp-kkma" % koalaVer classifier "assembly"
// 한나눔 분석기의 경우
libraryDependencies += "kr.bydelta" % "koalanlp-hannanum" % koalaVer classifier "assembly"
// ETRI 분석기의 경우
resolvers += Resolver.JCenterRepository
libraryDependencies += "kr.bydelta" % "koalanlp-etri" % koalaVer
// Khaiii 분석기의 경우 (Khaiii C++ 별도 설치 필요)
resolvers += Resolver.JCenterRepository
libraryDependencies += "kr.bydelta" % "koalanlp-khaiii" % koalaVer
// UTagger 분석기의 경우 (UTagger C++ 별도 설치 필요)
resolvers += Resolver.JCenterRepository
libraryDependencies += "kr.bydelta" % "koalanlp-utagger" % koalaVer
```
--------------------------------
### Java Syntax Parsing Example
Source: https://koalanlp.github.io/koalanlp/usage/SyntaxParse.html
Provides an example of syntax parsing in Java using the Hannanum Parser. It analyzes text and prints the syntax tree string for the first sentence.
```java
import kr.bydelta.koala.hnn.Parser;
import kr.bydelta.koala.data.Sentence;
Parser parser = new Parser();
List parsed = parser.analyze("이 문단을 분석합니다. 문단 구분은 자동으로 합니다.");
// 또는 parser.invoke(...)
System.out.println(parsed.get(0).getSyntaxTree().getTreeString()); // 첫번째 문장의 구문구조 트리를 출력합니다.
```
--------------------------------
### Java SRL Example
Source: https://koalanlp.github.io/koalanlp/usage/SRL.html
Example of performing Semantic Role Labeling using the ETRI RoleLabeler in Java.
```java
import kr.bydelta.koala.etri.RoleLabeler;
import kr.bydelta.koala.data.Sentence;
import kr.bydelta.koala.data.RoleEdge;
String API_KEY = /** ETRI에서 발급받은 키 **/
RoleLabeler labeler = new RoleLabeler(API_KEY);
List parsed = labeler.analyze("이 문단을 분석합니다. 문단 구분은 자동으로 합니다.")
// 또는 labeler.invoke(...)
// 첫번째 문장의 의미역들을 출력합니다.
for(RoleEdge role : parsed[0].getRoles()) {
println(role);
}
```
--------------------------------
### JavaScript (NodeJS) Syntax Parsing Example - Synchronous Call
Source: https://koalanlp.github.io/koalanlp/usage/SyntaxParse.html
Shows a synchronous syntax parsing example in JavaScript (NodeJS), noting that this feature is under preparation. It analyzes text and prints the syntax tree string of the first sentence.
```javascript
const {Parser} = require('koalanlp/proc');
const {HNN} = require('koalanlp/API');
// ....
let parser = new Parser(HNN);
let result = parser.analyzeSync("이 문단을 분석합니다. 문단 구분은 자동으로 합니다.");
/* Result는 Sentence[] 타입입니다. */
console.log(result[0].getSyntaxTree().getTreeString()); // 첫번째 문장의 구문구조 트리를 출력합니다.
// ...
```
--------------------------------
### Java Example
Source: https://koalanlp.github.io/koalanlp/api/koalanlp/kr.bydelta.koala.hnn/kotlin.-string/to-e-t-r-i-dep-tag.html
Example of converting a dependency tag string to ETRI format in Java.
```java
Util.toETRIDepTag("SBJ")
```
--------------------------------
### Kotlin SRL Example
Source: https://koalanlp.github.io/koalanlp/usage/SRL.html
Example of performing Semantic Role Labeling using the ETRI RoleLabeler in Kotlin.
```kotlin
import kr.bydelta.koala.etri.RoleLabeler
val API_KEY = /** ETRI에서 발급받은 키 **/
val labeler = RoleLabeler(API_KEY)
val parsed = labeler.analyze("이 문단을 분석합니다. 문단 구분은 자동으로 합니다.")
// 또는 labeler(...), labeler.invoke(...)
// 첫번째 문장의 의미역들을 출력합니다.
parsed[0].getRoles().forEach{ role ->
println(role)
}
```
--------------------------------
### Install Java JDK 11 on Mac using Homebrew
Source: https://koalanlp.github.io/koalanlp/usage/PlatformInstall.html
Command to install Java JDK version 11 using Homebrew. This is the recommended LTS version for KoalaNLP.
```bash
brew install openjdk@11
```
--------------------------------
### Install Java JDK 11 on Windows using Chocolatey
Source: https://koalanlp.github.io/koalanlp/usage/PlatformInstall.html
Command to install Java JDK version 11.0.11.9 using Chocolatey. This is the recommended LTS version for KoalaNLP.
```powershell
choco install openjdk --version 11.0.11.9 -y
```
--------------------------------
### NodeJS (JavaScript) SRL Example - Async/Await
Source: https://koalanlp.github.io/koalanlp/usage/SRL.html
Example of performing Semantic Role Labeling using the ETRI RoleLabeler in NodeJS with Async/Await.
```javascript
const {RoleLabeler} = require('koalanlp/proc');
const {ETRI} = require('koalanlp/API');
const API_KEY =; ??/** ETRI에서 발급받은 키 **/
async function someAsyncFunction(){
// ....
let labeler = new RoleLabeler(ETRI, {etriKey: API_KEY});
let result = await labeler("이 문단을 분석합니다. 문단 구분은 자동으로 합니다.");
// 또는 labeler.analyze(...)
/* Result는 Sentence[] 타입입니다. */
for(const role of result[0].getRoles()){
console.log(role.toString()); // 첫번째 문장의 의미역들을 출력합니다.
}
// ...
}
someAsyncFunction().then(
() => console.log('After function finished'),
(error) => console.error('Error occurred!', error)
);
```
--------------------------------
### Scala SRL Example
Source: https://koalanlp.github.io/koalanlp/usage/SRL.html
Example of performing Semantic Role Labeling using the ETRI RoleLabeler in Scala.
```scala
import kr.bydelta.koala.etri.EntityRecognizer
import kr.bydelta.koala.Implicits._
val API_KEY = /** ETRI에서 발급받은 키 **/
val labeler = new RoleLabeler(API_KEY)
val parsed = labeler.analyze("이 문단을 분석합니다. 문단 구분은 자동으로 합니다.")
// 또는 labeler(...), labeler.invoke(...)
// 첫번째 문장의 의미역들을 출력합니다.
parsed[0].getRoles().forEach{ role =>
println(role)
}
```
--------------------------------
### Scala Examples
Source: https://koalanlp.github.io/koalanlp/usage/ReadingForeign.html
Examples of using Scala extensions for converting alphabetic and Hanja characters to Korean.
```scala
import kr.bydelta.koala._
import kr.bydelta.koala.Implicits._
"ABCD".alphaToHangul // "에이비씨디"
"갤럭시S".alphaToHangul // "갤럭시에스"
"cup".alphaToHangul // "씨유피"
"에스비에스".isAlphaPronounced // true
"갤럭시에스".isAlphaPronounced // false
"갤럭시에스".hangulToAlpha // "갤럭시S"
"에이디에이치디".hangulToAlpha // "ADHD"
'國'.isHanja // true
'國'.isCJKHanja // true
"國篇".hanjaToHangul() // "국편"
"國篇은 오늘".hanjaToHangul() // "국편은 오늘"
"300 兩의 돈".hanjaToHangul() // "300 냥의 돈"
"樂園".hanjaToHangul() // "낙원" (두음법칙)
```
--------------------------------
### Kotlin Examples
Source: https://koalanlp.github.io/koalanlp/usage/ReadingForeign.html
Examples of using Kotlin extensions for converting alphabetic and Hanja characters to Korean.
```kotlin
import kr.bydelta.koala.*
"ABCD".alphaToHangul() // "에이비씨디"
"갤럭시S".alphaToHangul() // "갤럭시에스"
"cup".alphaToHangul() // "씨유피"
"에스비에스".isAlphaPronounced() // true
"갤럭시에스".isAlphaPronounced() // false
"갤럭시에스".hangulToAlpha() // "갤럭시S"
"에이디에이치디".hangulToAlpha() // "ADHD"
'國'.isHanja() // true
'國'.isCJKHanja() // true
"國篇".hanjaToHangul() // "국편"
"國篇은 오늘".hanjaToHangul() // "국편은 오늘"
"300 兩의 돈".hanjaToHangul() // "300 냥의 돈"
"樂園".hanjaToHangul() // "낙원" (두음법칙)
```
--------------------------------
### Python 3 SRL Example
Source: https://koalanlp.github.io/koalanlp/usage/SRL.html
Example of performing Semantic Role Labeling using the ETRI RoleLabeler in Python 3.
```python
from koalanlp import API
from koalanlp.proc import EntityRecognizer
labeler = RoleLabeler(API.ETRI, etri_key=API_KEY)
parsed = labeler("이 문단을 분석합니다. 문단 구분은 자동으로 합니다.")
# 또는 labeler.analyze(...), labeler.invoke(...)
# 첫번째 문장의 의미역들을 출력합니다.
for role in parsed[0].getRoles():
print(role)
```
--------------------------------
### Java Usage Example
Source: https://koalanlp.github.io/koalanlp/api/koalanlp/kr.bydelta.koala.etri/-role-labeler/index.html
Example of how to use RoleLabeler in Java, demonstrating direct sentence analysis and analysis following other parsers.
```java
// 문장에서 바로 분석할 때
Parser parser = Parser()
List sentences = parser.analyze("문장 2개입니다. 결과는 목록이 됩니다.") // 또는 parser.invoke("문장 2개입니다. 결과는 목록이 됩니다.")
// 타 분석기에서 분석한 다음 이어서 분석할 때
Sentence taggedSentence = ...
Sentence sentence = parser.analyze(taggedSentence) // 또는 parser.invoke(taggedSentence)
List taggedSentList = ...
List sentences = parser.analyze(taggedSentList) // 또는 parser.invoke(taggedSentList)
```
--------------------------------
### Python 3 Reference: Tagger
Source: https://koalanlp.github.io/koalanlp/usage/POSTag.html
Example of using the Tagger in Python 3.
```python
from koalanlp import API
from koalanlp.proc import Tagger
tagger = Tagger(API.EUNJEON)
# (1) 코모란 분석기는 경량 분석기를 사용하는 옵션이 있습니다. 예: Tagger(kmr_light=True)
# (2) ETRI 분석기의 경우 API 키를 필수적으로 전달해야 합니다. 예: Tagger(etri_key=API_KEY)
# (3) Khaiii 분석기의 경우 Khaiii 리소스 폴더를 필수적으로 전달해야 합니다. 예: Tagger(khaiii_resource=some_path)
# (4) UTagger 분석기의 경우 사용 전 아래와 같이 UTagger 초기화 절차가 필요합니다.
# from koalanlp.proc import UTagger
# UTagger.setPath(library_path, config_path) // (라이브러리 파일 위치와 설정파일 위치 지정)
# 문단을 분석해서 문장들로 얻기 (각 API가 문단 분리를 지원하지 않아도, KoalaNLP가 자동으로 구분합니다)
taggedParagraph = tagger("문단을 분석합니다. 자동으로 분리되어 목록을 만듭니다.")
# 또는 tagger.tag(...), tagger.invoke(...)
print(taggedParagraph[0].singleLineString()) # "문단을 분석합니다."의 품사분석 결과 출력
```
--------------------------------
### JavaScript Hangul Assembly Examples
Source: https://koalanlp.github.io/koalanlp/usage/HangulAssembly.html
Provides examples for using Hangul Assembly functions in JavaScript, compatible with CommonJS (NodeJS > 8). All ExtUtil functions are synchronous.
```JavaScript
const ExtUtil = require('koalanlp/ExtUtil');
/**** 한글 여부 확인 ****/
ExtUtil.isHangul('가'); // [true]
ExtUtil.isHangul('ㄱ'); // [true]
ExtUtil.isHangul('a'); // [false]
ExtUtil.isHangulEnding("갤럭시S는"); // true
ExtUtil.isHangulEnding("abc"); // false
ExtUtil.isHangulEnding("보기 ㄱ"); // true
ExtUtil.isCompleteHangul('가'); // [true]
ExtUtil.isCompleteHangul('ㄱ'); // [false]
ExtUtil.isCompleteHangul('a'); // [false]
/**** 종성으로 끝나는지 확인 ****/
ExtUtil.isJongsungEnding('각'); // true
ExtUtil.isJongsungEnding('가'); // false
ExtUtil.isJongsungEnding('m'); // false
/**** 초, 중, 종성 한글 자모 값으로 분해 ****/
ExtUtil.getChosung('가'); // 'ㄱ'에 해당하는 초성 문자 [\u1100]
ExtUtil.getJungsung('가'); // 'ㅏ'에 해당하는 초성 문자 [\u1161]
ExtUtil.getJongsung('가'); // [undefined]
ExtUtil.getJongsung('각'); // 'ㄱ'에 해당하는 종성문자 [\u11A8]
ExtUtil.getChosung('ㄱ'); // [undefined]
ExtUtil.dissembleHangul('가'); // '\u1100\u1161'
ExtUtil.dissembleHangul('각'); // '\u1100\u1161\u11A8'
ExtUtil.dissembleHangul("가각"); // "\u1100\u1161\u1100\u1161\u11A8" (문자 사이를 띄워서 표시하면: 'ᄀ ᅡ ᄀ ᅡ ᆨ')
/**** 종성 한글 자모값으로 변환 ****/
ChoToJong.get('ㄵ'); // \u11AC
/**** 한글 자모 범위에 속하는 초, 중, 종성인지 확인 ****/
ExtUtil.isChosungJamo('ㄱ'); // [false]
ExtUtil.isChosungJamo('\u1100'); // [true]
ExtUtil.isJungsungJamo('ㅏ'); // [false]
ExtUtil.isJungsungJamo('\u1161'); // [true]
ExtUtil.isJongsungJamo('ㄱ'); // [false]
ExtUtil.isJongsungJamo('\u11A8'); // [true]
/**** 한글 자모 결합 ****/
ExtUtil.assembleHangul("\u1100\u1161\u1102\u1161\u11ab"); // "가난"
ExtUtil.assembleHangulTriple(undefined, '\u1161'); // '아'
ExtUtil.assembleHangulTriple('\u1100', undefined, '\u11A8'); // '극'
```
--------------------------------
### NodeJS (JavaScript) SRL Example - Promise
Source: https://koalanlp.github.io/koalanlp/usage/SRL.html
Example of performing Semantic Role Labeling using the ETRI RoleLabeler in NodeJS with Promises.
```javascript
const {RoleLabeler} = require('koalanlp/proc');
const {ETRI} = require('koalanlp/API');
const API_KEY =; ??/** ETRI에서 발급받은 키 **/
let labeler = new RoleLabeler(ETRI, {etriKey: API_KEY});
labeler("이 문단을 분석합니다. 문단 구분은 자동으로 합니다.") // 또는 labeler.analyze(...)
.then((result) => {
/* Result는 Sentence[] 타입입니다. */
for(const role of result[0].getRoles()){
console.log(role.toString()); // 첫번째 문장의 의미역들을 출력합니다.
}
}, (error) => console.error('Error occurred!', error));
```
--------------------------------
### NodeJS NER Example (Async/Await)
Source: https://koalanlp.github.io/koalanlp/usage/NER.html
Example of performing Named Entity Recognition using ETRI's EntityRecognizer in NodeJS with Async/Await.
```javascript
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
Source: https://koalanlp.github.io/koalanlp/usage/POSTag.html
Example of using the Tagger with a Promise-based approach in JavaScript.
```javascript
const {Tagger} = require('koalanlp/proc');
const {EUNJEON} = require('koalanlp/API');
let tagger = new Tagger(EUNJEON);
// (1) 코모란 분석기는 경량 분석기를 사용하는 옵션이 있습니다. 예: new Tagger(KMR, {kmrLight:true});
// (2) ETRI 분석기의 경우 API 키를 필수적으로 전달해야 합니다. 예: new Tagger(ETRI, {etriKey: API_KEY});
// (3) Khaiii 분석기의 경우 Khaiii 리소스 폴더를 필수적으로 전달해야 합니다. 예: new Tagger(KHAIII, {khaResource: resourcePath});
// (4) UTagger 분석기의 경우 사용 전 아래와 같이 UTagger 초기화 절차가 필요합니다.
// const {utagger} = require('koalanlp/proc');
// UTagger.setPath(libraryPath, configPath); // (라이브러리 파일 위치와 설정파일 위치 지정)
tagger("문단을 분석합니다. 자동으로 분리되어 목록을 만듭니다.") // 또는 tagger.tag(...)
.then((result) => {
/* Result는 string[] 타입입니다. */
console.log(result[0].singleLineString()); // "문단을 분석합니다."의 품사분석 결과 출력
}, (error) => console.error('Error occurred!', error));
```
--------------------------------
### Java Usage Example
Source: https://koalanlp.github.io/koalanlp/api/koalanlp/kr.bydelta.koala.daon/-tagger/index.html
Illustrates the usage of the Tagger class in Java.
```java
Tagger tagger = new Tagger()
Sentence sentence = tagger.tagSentence("문장 1개입니다.")
List sentences = tagger.tag("문장들입니다. 결과는 목록이 됩니다.")
// 또는
List sentences = tagger.invoke("문장들입니다. 결과는 목록이 됩니다.")
```
--------------------------------
### Kotlin Usage Example
Source: https://koalanlp.github.io/koalanlp/api/koalanlp/kr.bydelta.koala/-han-second-list.html
Demonstrates how to access the first element of the HanSecondList in Kotlin.
```kotlin
ExtUtil.HanSecondList[0] // 중성 문자 '\u1161'
```
--------------------------------
### startsWith Function
Source: https://koalanlp.github.io/koalanlp/api/koalanlp/kr.bydelta.koala/-p-o-s/index.html
Checks if the POS tag starts with a given tag.
```kotlin
fun startsWith(tag: CharSequence): Boolean
```
--------------------------------
### Java Usage Example
Source: https://koalanlp.github.io/koalanlp/api/koalanlp/kr.bydelta.koala.daon/-tagger/-init-.html
Illustrates how to use the Tagger class in Java.
```java
Tagger tagger = new Tagger()
Sentence sentence = tagger.tagSentence("문장 1개입니다.")
List sentences = tagger.tag("문장들입니다. 결과는 목록이 됩니다.")
// 또는
List sentences = tagger.invoke("문장들입니다. 결과는 목록이 됩니다.")
```
--------------------------------
### Constructor
Source: https://koalanlp.github.io/koalanlp/api/koalanlp/kr.bydelta.koala.khaiii/-khaiii-morph/-by-reference/-init-.html
The default constructor for KhaiiiMorph.ByReference.
```kotlin
ByReference()
```
--------------------------------
### Scala Usage Example
Source: https://koalanlp.github.io/koalanlp/api/koalanlp/kr.bydelta.koala/-han-last-list.html
Shows how to get the HanLastList in Scala and retrieve a jamo character using the get method.
```scala
ExtUtil.getHanLastList.get(1) // 종성 문자 '\u11A8'
```
--------------------------------
### Kotlin Example
Source: https://koalanlp.github.io/koalanlp/usage/CombinePackages.html
Demonstrates combining SentenceSplitter (OKT), Tagger (KMR), and Parser (HNN) in Kotlin.
```kotlin
import kr.bydelta.koala.okt.SentenceSplitter
import kr.bydelta.koala.kmr.Tagger
import kr.bydelta.koala.hnn.Parser
val splitter = SentenceSplitter()
val tagger = Tagger()
val parser = Parser()
val splits = splitter("이 문단을 분석합니다. 문단 구분은 자동으로 합니다.")
val tagged = splits.map{ tagger.tagSentence(it) }
val parsed = parser(tagged)
for(sent in parsed){
println(sent.getSyntaxTree().getTreeString())
}
```
--------------------------------
### JavaScript Promise Example
Source: https://koalanlp.github.io/koalanlp/usage/CombinePackages.html
Demonstrates combining SentenceSplitter (OKT), Tagger (KMR), and Parser (HNN) in JavaScript using Promises.
```javascript
const {SentenceSplitter, Tagger, Parser} = require('koalanlp/proc');
const {OKT, KMR, HNN} = require('koalanlp/API');
let splitter = new SentenceSplitter(OKT);
let tagger = new Tagger(KMR);
let parser = new Parser(HNN);
splitter("이 문단을 분석합니다. 문단 구분은 자동으로 합니다.")
.then(tagger.tagSentence)
.then(parser)
.then((result) => {
/* Result는 Sentence[] 타입입니다. */
for(const sent of parsed){
console.log(sent.getSyntaxTree().getTreeString())
}
}, (error) => console.error('Error occurred!', error));
```
--------------------------------
### Java Example
Source: https://koalanlp.github.io/koalanlp/usage/CombinePackages.html
Demonstrates combining SentenceSplitter (OKT), Tagger (KMR), and Parser (HNN) in Java.
```java
import kr.bydelta.koala.data.Sentence;
import kr.bydelta.koala.data.SyntaxTree;
import kr.bydelta.koala.okt.SentenceSplitter;
import kr.bydelta.koala.kmr.Tagger;
import kr.bydelta.koala.hnn.Parser;
SentenceSplitter splitter = new SentenceSplitter();
Tagger tagger = new Tagger();
Parser parser = new Parser();
List splits = splitter.sentences("이 문단을 분석합니다. 문단 구분은 자동으로 합니다.")
List tagged = splits.map(it -> tagger.tagSentence(it))
List parsed = parser.analyze(tagged)
for(Sentence sent : parsed){
System.out.println(sent.getSyntaxTree().getTreeString())
}
```
--------------------------------
### JavaScript (NodeJS) Syntax Parsing Example - Async/Await
Source: https://koalanlp.github.io/koalanlp/usage/SyntaxParse.html
Demonstrates asynchronous syntax parsing in JavaScript (NodeJS) using async/await. It analyzes text and logs the syntax tree string of the first sentence.
```javascript
const {Parser} = require('koalanlp/proc');
const {HNN} = require('koalanlp/API');
async function someAsyncFunction(){
// ....
let parser = new Parser(HNN);
let result = await parser("이 문단을 분석합니다. 문단 구분은 자동으로 합니다.");
// 또는 parser.analyze(...)
/* Result는 Sentence[] 타입입니다. */
console.log(result[0].getSyntaxTree().getTreeString()); // 첫번째 문장의 구문구조 트리를 출력합니다.
// ...
}
someAsyncFunction().then(
() => console.log('After function finished'),
(error) => console.error('Error occurred!', error)
);
```
--------------------------------
### Kotlin Syntax Parsing Example
Source: https://koalanlp.github.io/koalanlp/usage/SyntaxParse.html
Demonstrates how to use the Hannanum Parser in Kotlin to analyze text and retrieve the syntax tree string for the first sentence.
```kotlin
import kr.bydelta.koala.hnn.Parser
val parser = Parser()
val parsed = parser.analyze("이 문단을 분석합니다. 문단 구분은 자동으로 합니다.")
// 또는 parser(...), parser.invoke(...)
println(parsed[0].getSyntaxTree().getTreeString()) // 첫번째 문장의 구문구조 트리를 출력합니다.
```
--------------------------------
### Python 3 Example
Source: https://koalanlp.github.io/koalanlp/usage/CombinePackages.html
Demonstrates combining SentenceSplitter (OKT), Tagger (KMR), and Parser (HNN) in Python 3.
```python
from koalanlp import API
from koalanlp.proc import SentenceSplitter, Tagger, Parser
splitter = SentenceSplitter(API.OKT)
tagger = Tagger(API.KMR)
parser = Parser(API.HNN)
splits = splitter("이 문단을 분석합니다. 문단 구분은 자동으로 합니다.")
tagged = tagger.tagSentence(*splits)
parsed = parser(tagged)
for sent in parsed:
print(sent.getSyntaxTree().getTreeString())
```
--------------------------------
### JavaScript Async/Await Example
Source: https://koalanlp.github.io/koalanlp/usage/CombinePackages.html
Demonstrates combining SentenceSplitter (OKT), Tagger (KMR), and Parser (HNN) in JavaScript using async/await, compatible with CommonJS (NodeJS > 8).
```javascript
const {SentenceSplitter, Tagger, Parser} = require('koalanlp/proc');
const {OKT, KMR, HNN} = require('koalanlp/API');
async function someAsyncFunction(){
// ....
let splitter = new SentenceSplitter(OKT);
let tagger = new Tagger(KMR);
let parser = new Parser(HNN);
let splits = await splitter("이 문단을 분석합니다. 문단 구분은 자동으로 합니다.");
let tagged = await tagger.tagSentence(splits);
let parsed = await parser(tagged);
/* Result는 Sentence[] 타입입니다. */
for(const sent of parsed){
console.log(sent.getSyntaxTree().getTreeString())
}
// ...
}
someAsyncFunction().then(
() => console.log('After function finished'),
(error) => console.error('Error occurred!', error)
);
```
--------------------------------
### Scala Example
Source: https://koalanlp.github.io/koalanlp/usage/CombinePackages.html
Demonstrates combining SentenceSplitter (OKT), Tagger (KMR), and Parser (HNN) in Scala, assuming koalanlp-scala is included as a dependency.
```scala
import kr.bydelta.koala.okt.SentenceSplitter
import kr.bydelta.koala.kmr.Tagger
import kr.bydelta.koala.hnn.Parser
import kr.bydelta.koala.Implicits._
val splitter = new SentenceSplitter
val tagger = new Tagger
val parser = new Parser
val splits = splitter("이 문단을 분석합니다. 문단 구분은 자동으로 합니다.")
val tagged = splits.map(tagger.tagSentence)
val parsed = parser(tagged)
for(sent <- parsed){
println(sent.getSyntaxTree.getTreeString())
}
```
--------------------------------
### JavaScript (NodeJS) Syntax Parsing Example - Promise
Source: https://koalanlp.github.io/koalanlp/usage/SyntaxParse.html
Illustrates syntax parsing in JavaScript (NodeJS) using Promises. It analyzes text and logs the syntax tree string of the first sentence upon successful completion.
```javascript
const {Parser} = require('koalanlp/proc');
const {HNN} = require('koalanlp/API');
let parser = new Parser(HNN);
parser("이 문단을 분석합니다. 문단 구분은 자동으로 합니다.") // 또는 parser.analyze(...)
.then((result) => {
/* Result는 Sentence[] 타입입니다. */
console.log(result[0].getSyntaxTree().getTreeString()); // 첫번째 문장의 구문구조 트리를 출력합니다.
}, (error) => console.error('Error occurred!', error));
```
--------------------------------
### Java Hangul Assembly Examples
Source: https://koalanlp.github.io/koalanlp/usage/HangulAssembly.html
Demonstrates various functions for checking Hangul properties, disassembling and assembling Hangul characters, and converting between Hangul components using Java.
```Java
import kr.bydelta.koala.ExtUtil;
/**** 한글 여부 확인 ****/
ExtUtil.isHangul('가'); // true
ExtUtil.isHangul('ㄱ'); // true
ExtUtil.isHangul('a'); // false
ExtUtil.isHangulEnding("갤럭시S는"); // true
ExtUtil.isHangulEnding("abc"); // false
ExtUtil.isHangulEnding("보기 ㄱ"); // true
ExtUtil.isCompleteHangul('가'); // true
ExtUtil.isCompleteHangul('ㄱ'); // false
ExtUtil.isCompleteHangul('a'); // false
/**** 종성으로 끝나는지 확인 ****/
ExtUtil.isJongsungEnding('각'); // true
ExtUtil.isJongsungEnding('가'); // false
ExtUtil.isJongsungEnding('m'); // false
/**** 초, 중, 종성 한글 자모 값으로 분해 ****/
ExtUtil.getChosung('가'); // 'ㄱ'에 해당하는 초성 문자 \u1100
ExtUtil.getJungsung('가'); // 'ㅏ'에 해당하는 초성 문자 \u1161
ExtUtil.getJongsung('가'); // null
ExtUtil.getJongsung('각'); // 'ㄱ'에 해당하는 종성문자 \u11A8
ExtUtil.getChosung('ㄱ'); // null
ExtUtil.dissembleHangul('가'); // kotlin.Triple('\u1100', '\u1161', null)
ExtUtil.dissembleHangul('각'); // kotlin.Triple('\u1100', '\u1161', '\u11A8')
ExtUtil.dissembleHangul("가각"); // "\u1100\u1161\u1100\u1161\u11A8" (문자 사이를 띄워서 표시하면: 'ᄀ ᅡ ᄀ ᅡ ᆨ')
/**** 종성 한글 자모값으로 변환 ****/
ExtUtil.getChoToJong().get('ㄵ'); // \u11AC
/**** 한글 자모 범위에 속하는 초, 중, 종성인지 확인 ****/
ExtUtil.isChosungJamo('ㄱ'); // false
ExtUtil.isChosungJamo('\u1100'); // true
ExtUtil.isJungsungJamo('ㅏ'); // false
ExtUtil.isJungsungJamo('\u1161'); // true
ExtUtil.isJongsungJamo('ㄱ'); // false
ExtUtil.isJongsungJamo('\u11A8'); // true
/**** 한글 자모 결합 ****/
ExtUtil.assembleHangul(new kotlin.Triple('\u1100', '\u1161', null)); // '가'
ExtUtil.assembleHangul(new kotlin.Triple('\u1100', '\u1161', '\u11AB')); // '간'
ExtUtil.assembleHangul("\u1100\u1161\u1102\u1161\u11ab"); // "가난"
ExtUtil.assembleHangul(null, '\u1161'); // '아'
ExtUtil.assembleHangul('\u1100', null, '\u11A8'); // '극'
```
--------------------------------
### JavaScript Synchronous Call Example
Source: https://koalanlp.github.io/koalanlp/usage/CombinePackages.html
Demonstrates combining SentenceSplitter (OKT), Tagger (KMR), and Parser (HNN) in JavaScript using synchronous calls.
```javascript
const {SentenceSplitter, Tagger, Parser} = require('koalanlp/proc');
const {OKT, KMR, HNN} = require('koalanlp/API');
// ....
let splitter = new SentenceSplitter(OKT);
let tagger = new Tagger(KMR);
let parser = new Parser(HNN);
let splits = splitter.sentencesSync("이 문단을 분석합니다. 문단 구분은 자동으로 합니다.");
let tagged = tagger.tagSentenceSync(splits);
let parsed = parser.analyzeSync(tagged);
/* Result는 Sentence[] 타입입니다. */
for(const sent of parsed){
console.log(sent.getSyntaxTree().getTreeString())
}
```
--------------------------------
### Python 3 Syntax Parsing Example
Source: https://koalanlp.github.io/koalanlp/usage/SyntaxParse.html
Demonstrates syntax parsing in Python 3 using the KoalaNLP API. It analyzes text and prints the syntax tree string of the first sentence.
```python
from koalanlp import API
from koalanlp.proc import Parser
parser = Parser(API.HNN)
parsed = parser("이 문단을 분석합니다. 문단 구분은 자동으로 합니다.")
# 또는 parser.analyze(...), parser.invoke(...)
print(parsed[0].getSyntaxTree().getTreeString()) # 첫번째 문장의 구문구조 트리를 출력합니다.
```
--------------------------------
### Kotlin Usage Example
Source: https://koalanlp.github.io/koalanlp/api/koalanlp/kr.bydelta.koala.etri/-role-labeler/index.html
Example of how to use RoleLabeler in Kotlin, both for analyzing sentences directly and for analyzing after other parsers.
```kotlin
// 문장에서 바로 분석할 때
val parser = Parser()
val sentences = parser.analyze("문장 2개입니다. 결과는 목록이 됩니다.") // 또는 parser("문장 2개입니다. 결과는 목록이 됩니다.")
// 타 분석기에서 분석한 다음 이어서 분석할 때
val taggedSentence: Sentence = ...
val sentence = parser.analyze(taggedSentence) // 또는 parser(taggedSentence)
val taggedSentList: List = ...
val sentences = parser.analyze(taggedSentList) // 또는 parser(taggedSentList)
```
--------------------------------
### Java Usage Example
Source: https://koalanlp.github.io/koalanlp/api/koalanlp/kr.bydelta.koala.proc/-can-parse-dependency.html
Examples of how to use the CanParseDependency interface in Java, covering direct analysis and chaining with other analyzers.
```java
// 문장에서 바로 분석할 때
Parser parser = new Parser()
List sentences = parser.analyze("문장 2개입니다. 결과는 목록이 됩니다.") // 또는 parser.invoke("문장 2개입니다. 결과는 목록이 됩니다.")
// 타 분석기에서 분석한 다음 이어서 분석할 때
Sentence taggedSentence = ...
Sentence sentence = parser.analyze(taggedSentence) // 또는 parser.invoke(taggedSentence)
List taggedSentList = ...
List sentences = parser.analyze(taggedSentList) // 또는 parser.invoke(taggedSentList)
```
--------------------------------
### JavaScript Examples
Source: https://koalanlp.github.io/koalanlp/usage/ReadingForeign.html
Examples of using JavaScript utility methods for converting alphabetic and Hanja characters to Korean.
```javascript
const ExtUtil = require('koalanlp/ExtUtil');
ExtUtil.alphaToHangul("ABCD"); // "에이비씨디"
ExtUtil.alphaToHangul("갤럭시S"); // "갤럭시에스"
ExtUtil.alphaToHangul("cup"); // "씨유피"
ExtUtil.isAlphaPronounced("에스비에스"); // true
ExtUtil.isAlphaPronounced("갤럭시에스"); // false
ExtUtil.hangulToAlpha("갤럭시에스"); // "갤럭시S"
ExtUtil.hangulToAlpha("에이디에이치디"); // "ADHD"
ExtUtil.isHanja('國'); // true
ExtUtil.isCJKHanja('國'); // true
ExtUtil.hanjaToHangul("國篇"); // "국편"
ExtUtil.hanjaToHangul("國篇은 오늘"); // "국편은 오늘"
ExtUtil.hanjaToHangul("300 兩의 돈"); // "300 냥의 돈"
ExtUtil.hanjaToHangul("樂園"); // "낙원" (두음법칙)
```
--------------------------------
### Python 3 Hangul Assembly Examples
Source: https://koalanlp.github.io/koalanlp/usage/HangulAssembly.html
Illustrates the usage of Hangul Assembly functions in Python 3, including checking Hangul properties, disassembling and assembling Hangul characters, and converting between Hangul components.
```Python
from koalanlp import ExtUtil
#### 한글 여부 확인 ####
ExtUtil.isHangul('가') # [true]
ExtUtil.isHangul('ㄱ') # [true]
ExtUtil.isHangul('a나.') # [false, true, false]
ExtUtil.isHangulEnding("갤럭시S는") # true
ExtUtil.isHangulEnding("abc") # false
ExtUtil.isHangulEnding("보기 ㄱ") # true
ExtUtil.isCompleteHangul('가') # [true]
ExtUtil.isCompleteHangul('ㄱ') # [false]
ExtUtil.isCompleteHangul('a나.') # [false, true, false]
#### 종성으로 끝나는지 확인 ####
ExtUtil.isJongsungEnding('각') # true
ExtUtil.isJongsungEnding('가') # false
ExtUtil.isJongsungEnding('m') # false
#### 초, 중, 종성 한글 자모 값으로 분해 ####
ExtUtil.getChosung('가') # ['ㄱ'에 해당하는 초성 문자 \u1100]
ExtUtil.getJungsung('가') # ['ㅏ'에 해당하는 초성 문자 \u1161]
ExtUtil.getJongsung('가') # [None]
ExtUtil.getJongsung('각') # ['ㄱ'에 해당하는 종성문자 \u11A8]
ExtUtil.getChosung('ㄱㄴㄷ') # [None, None, None]
ExtUtil.dissembleHangul('가') # '\u1100\u1161'
ExtUtil.dissembleHangul('각') # '\u1100\u1161\u11A8'
ExtUtil.dissembleHangul("가각") # "\u1100\u1161\u1100\u1161\u11A8" (문자 사이를 띄워서 표시하면: 'ᄀ ᅡ ᄀ ᅡ ᆨ')
#### 종성 한글 자모값으로 변환 ####
ExtUtil.ChoToJong()['ㄵ'] # \u11AC
```