stanza
를 사용하기 위해서는 pytorch
가 필요하다. 윈도의 경우에는 다음과 같이 설치한다. 맥, 리눅스 등에서는 stanza
를 설치할 때 함께 설치된다.
!conda install -y -c pytorch pytorch torchvision
다음으로 stanza
를 설치한다.
!pip install stanza
stanza
는 기계학습 방식을 사용하기 때문에 한국어 데이터에 학습된 모형이 필요하다. 언어별 모형은 공식 문서에서 확인할 수 있다.
import stanza
stanza.download('ko')
모형을 불러온다.
nlp = stanza.Pipeline('ko')
2020-03-31 08:33:28 INFO: Loading these models for language: ko (Korean): ======================= | Processor | Package | ----------------------- | tokenize | kaist | | pos | kaist | | lemma | kaist | | depparse | kaist | ======================= 2020-03-31 08:33:28 INFO: Use device: gpu 2020-03-31 08:33:28 INFO: Loading: tokenize 2020-03-31 08:33:33 INFO: Loading: pos 2020-03-31 08:33:34 INFO: Loading: lemma 2020-03-31 08:33:35 INFO: Loading: depparse 2020-03-31 08:33:36 INFO: Done loading processors!
한국어 모형에는 kaist
와 gsd
두 가지가 있다. kaist
가 기본이나 gsd
패키지를 사용하려면 다음과 같이 한다.
stanza.download('ko', package='gsd')
nlp = stanza.Pipeline('ko', package='gsd')
아래 text
변수에 저장된 예시 문장의 형태소와 품사를 분석한다.
text = '오늘은 자연어 처리를 배우기 좋은 날이다. 자연어 처리는 재미있다.'
nlp()
로 문장의 형태소를 분석한다. 분석 결과는 doc
변수에 저장한다.
doc = nlp(text)
.sentences
에 분석된 문장들이 리스트 형태로 담겨 있다.
sentence = doc.sentences[0]
.words
에는 분석된 어절들이 리스트 형태로 담겨 있다.
word = sentence.words[0]
.lemma
는 어절을 이루는 형태소의 표제어(lemma)들을 보여준다. 형태소가 2개 이상인 경우 +
표시로 구분되어 있다.
word.lemma
'오늘+은'
.xpos
에는 품사 정보가 있다.
word.xpos
'ncn+jxt'