KoalaNLP는 한국어 처리의 통합 인터페이스를 지향하는 Java/Kotlin/Scala Library입니다.
이 프로젝트는 서로 다른 형태의 형태소 분석기를 모아, 동일한 인터페이스 아래에서 사용할 수 있도록 하는 것이 목적입니다.
주1-1 Arirang 분석기의 출력을 형태소분석에 적합하게 조금 다듬었으므로, 원본과 약간 다른 결과를 낼 수도 있습니다.
>>주1-2 UTagger의 2019-7 버전도 공개되어 있지만, 리눅스 개발환경을 위한 라이브러리 파일이 공개되어있지 않아 지원하지 않습니다.
분석기의 개선이나 추가 등을 하고 싶으시다면,
KoalaNLP는 다음과 같은 특징을 가지고 있습니다.
복잡한 설정이 필요없는 텍스트 분석:
모델은 자동으로 Maven으로 배포되기 때문에, 각 모델을 별도로 설치할 필요가 없습니다.
코드 2~3 줄로 수행하는 텍스트 처리:
모델마다 다른 복잡한 설정 과정, 초기화 과정은 필요하지 않습니다. Dependency에 추가하고, 객체를 생성하고, 분석 메소드를 호출하는 3줄이면 끝납니다.
모델에 상관 없는 동일한 코드, 동일한 결과:
모델마다 실행 방법, 실행 결과를 표현하는 형태가 다릅니다. KoalaNLP는 이를 정부 및 관계기관의 표준안에 따라 표준화합니다. 따라서 모델에 독립적으로 응용 프로그램 개발이 가능합니다.
Java, Kotlin, Scala, Python 3, NodeJS에서 크게 다르지 않은 코드:
KoalaNLP는 여러 프로그래밍 언어에서 사용할 수 있습니다. 어디서 개발을 하더라도 크게 코드가 다르지 않습니다.
모든 코드는 Kotlin으로 작성되어 있습니다. Java나 Scala에 비해서 유지 보수에 편리하다고 판단하여 변경하였습니다.
koalanlp-scala
를 통해 Implicit 변환을 지원합니다.
kr.bydelta.koala |
KoalaNLP가 제공하는 상수값 및 Utility function들을 정의합니다. |
kr.bydelta.koala.arirang |
아리랑 형태소분석기의 Wrapper를 정의합니다. |
kr.bydelta.koala.daon |
Daon 형태소분석기의 Wrapper를 정의합니다. |
kr.bydelta.koala.data |
KoalaNLP가 사용하는, 또는 사용할 데이터 표현을 정의합니다. |
kr.bydelta.koala.etri |
ETRI 언어 분석 API의 Wrapper를 정의합니다. |
kr.bydelta.koala.eunjeon |
SEunjeon 형태소분석기의 Wrapper를 정의합니다. |
kr.bydelta.koala.hnn |
한나눔 형태소분석기와 NLP_HUB 구문/의존구문 분석기의 Wrapper를 정의합니다. |
kr.bydelta.koala.khaiii |
Kakao Khaiii 형태소 분석기의 Wrapper를 정의합니다. |
kr.bydelta.koala.kkma |
꼬꼬마 형태소/의존구문 분석기의 Wrapper를 정의합니다. |
kr.bydelta.koala.kmr |
SEunjeon 형태소분석기의 Wrapper를 정의합니다. |
kr.bydelta.koala.okt |
Open Korean Text 형태소분석기의 Wrapper를 정의합니다. |
kr.bydelta.koala.proc |
KoalaNLP가 사용하는, 또는 사용할 API Interface를 정의합니다. |
kr.bydelta.koala.rhino |
Open Korean Text 형태소분석기의 Wrapper를 정의합니다. |
kr.bydelta.koala.utagger |
울산대학교 UTagger 형태소 분석기의 Wrapper를 정의합니다. |