All Downloads are FREE. Search and download functionalities are using the official Maven repository.

main.kr.bydelta.koala.eunjeon.ext.kt Maven / Gradle / Ivy

@file:JvmName("Util")
@file:JvmMultifileClass

package kr.bydelta.koala.eunjeon

import kr.bydelta.koala.POS
import scala.collection.`JavaConverters$`.`MODULE$`

/**
 * 세종 품사 표기를 은전한닢의 품사로 변환합니다
 *
 * * 변환표는 [여기](https://docs.google.com/spreadsheets/d/1OGM4JDdLk6URuegFKXg1huuKWynhg_EQnZYgTmG4h0s Conversion Table (Korean))에서 볼 수 있습니다.
 *
 * ## 사용 예
 * ### Kotlin
 * ```kotlin
 * POS.NNG.fromSejongPOS()
 * ```
 *
 * ### Scala + [koalanlp-scala](https://koalanlp.github.io/scala-support)
 * ```scala
 * POS.NNG.fromSejongPOS()
 * ```
 *
 * ### Java
 * ```java
 * Util.fromSejongPOS(POS.NNG)
 * ```
 *
 * @since 1.x
 * @return 변환된 품사.
 */
fun POS.fromSejongPOS(): String =
        when (this) {
            POS.NNM -> "NNBC"
            POS.SS -> "SSO"
            POS.SP -> "SC"
            POS.XPV -> "XR"
            POS.XSM, POS.XSO -> "XSN"
            POS.SW, POS.SO -> "SY"
            POS.NF, POS.NV, POS.NA -> "UNKNOWN"
            else -> this.toString()
        }

/**
 * 은전한닢의 품사를 세종 품사표기로 변환합니다.
 *
 * * 변환표는 [여기](https://docs.google.com/spreadsheets/d/1OGM4JDdLk6URuegFKXg1huuKWynhg_EQnZYgTmG4h0s Conversion Table (Korean))에서 볼 수 있습니다.
 *
 * ## 사용 예
 * ### Kotlin
 * ```kotlin
 * "NNG".toSejongPOS()
 * ```
 *
 * ### Scala + [koalanlp-scala](https://koalanlp.github.io/scala-support)
 * ```scala
 * "NNG".toSejongPOS()
 * ```
 *
 * ### Java
 * ```java
 * Util.toSejongPOS("NNG")
 * ```
 *
 * @since 1.x
 * @return 변환된 세종 품사표기
 */
fun String?.toSejongPOS(): POS {
    val upper = this?.toUpperCase()
    return when (upper) {
        "NNBC" -> POS.NNM
        "SC" -> POS.SP
        "SSO", "SSC" -> POS.SS
        "SY" -> POS.SW
        null, "UNKNOWN" -> POS.NA
        else -> POS.valueOf(upper)
    }
}

/** Scala Collection --> Java Collection */
internal fun  scala.collection.Iterable.asJava() = `MODULE$`.asJavaCollection(this).toList()

/** Java Collection --> Scala Collection */
internal fun  kotlin.collections.Iterable.asScala() = `MODULE$`.asScalaIterator(this.iterator())




© 2015 - 2025 Weber Informatics LLC | Privacy Policy