/py-koalanlp

Py-KoalaNLP는 @koalanlp/python-support로 이동했습니다:

Primary LanguageHTML

Py-KoalaNLP

이 저장소는 이전 버전을 위한 자리지기입니다.

아래를 눌러, @koalanlp가 관리하는 최신 버전의 저장소로 이동해주세요.

Py-KoalaNLP

PyPI 분석기별 품사비교표 MIT License Sphinx doc

Build Status scala-koalanlp nodejs-koalanlp

소개

한국어 형태소 및 구문 분석기의 모음인, KoalaNLP의 Python 판본입니다.

이 프로젝트는 서로 다른 형태의 형태소 분석기를 모아, 동일한 인터페이스 아래에서 사용할 수 있도록 하는 것이 목적입니다.

주1-1 이전 코드와의 연속성을 위해서, OpenKoreanText의 패키지 명칭은 twitter로 유지합니다.

주1-2 Arirang 분석기의 출력을 형태소분석에 적합하게 조금 다듬었으므로, 원본과 약간 다른 결과를 낼 수도 있습니다.

KoalaNLP의 Contributor가 되고 싶으시다면, 언제든지 Issue에 등록해주십시오. 또한, 추가하고자 하는 새로운 프로젝트가 있으시면, Issue에 등록해주십시오.

사용법

API 문서는 Sphinx doc에서, 간단한 예시와 사용법은 Wiki에서 보실 수 있습니다.

Dependency 추가

  • Java 8 이상이 설치되어 있고, JAVA_HOME이 설정되어 있어야 합니다.
  • Python 3.5 이상 지원합니다.

아래와 같이 koalanlp를 추가해주세요.

$ pip install Cython
$ pip install koalanlp

만약, 설치에 문제가 생기면, Cython, pyjnius, jip를 먼저 설치해주세요.

간단한 예시

koalanlp는, pyjniusjip 패키지의 도움을 받아, 필요한 java dependency를 자동으로 가져옵니다.

[참고] 최초 사용시 또는, 최신 패키지로 업데이트 되는 경우, dependency를 찾아오는 데 시간이 소요될 수 있습니다.

다음과 같이 사용합니다.

from koalanlp import *

# 초기화 합니다.
initialize(packages=[API.KKMA, API.EUNJEON], version="1.9.2", java_options="-Xmx4g -Dfile.encoding=utf-8")

# 품사분석기 이용법
tagger = Tagger(tagger_type=API.EUNJEON)

# POS Tagging
tagged = tagger.tag("안녕하세요. 눈이 오는 설날 아침입니다.")
print(str(tagged))

# 의존구문분석기 이용법
parser = Parser(tagger_type=API.EUNJEON, parser_type=API.KKMA)

# Dependency Parsing
parsed = parser.parse("안녕하세요. 눈이 오는 설날 아침입니다.")
print(str(parsed))

# Data classes
sentence = parsed[1] # 두번째 문장인, "눈이 오는 설날 아침입니다."를 선택합니다.

wordAt0 = sentence[0] # 첫번째 어절을 선택해봅니다.
print(wordAt0.exists(lambda m: POS.is_predicate(m.tag))) # 첫번째 어절에, 용언(동사/형용사)을 포함한 형태소가 있는지 확인합니다.
print(sentence.exists(lambda w: w.exists(lambda m: POS.is_noun(m.tag)))) # 문장 전체에 체언(명사 등)을 포함한 어절이 있는지 확인합니다.
print(sentence.nouns()) # 문장에서 체언만 추출합니다.
print(sentence.verbs()) # 문장에서 용언만 추출합니다.

사용가능한 패키지 목록

은전한닢(EUNJEON) 꼬꼬마(KKMA) 코모란(KOMORAN) 한나눔(HANNANUM) 오픈한글(TWITTER) 아리랑(ARIRANG) 라이노(RHINO)
품사분석 가능(v1.4.0) 가능(v2.1) 가능(v3.3.3) 가능(v1) 가능(v2.2.0) 가능(v1.1.3) 가능(v2.5.4)
의존구문분석 지원안함 가능 지원안함 가능 지원안함 지원안함 지원안함

License 조항

이 프로젝트 자체(py-KoalaNLP)와 인터페이스 통합을 위한 Java/Scala 코드는 MIT License을 따르며, 각 분석기의 License와 저작권은 각 프로젝트에서 지정한 바를 따릅니다.

결과 비교

Java/Scala Version KoalaNLP의 Wiki:결과비교를 참조해주세요.