단어문서행렬과 형태소 분석

Python을 통한 단어문서행렬과 형태소 분석


수강중

10. kiwi

설치

!pip install kiwipiepy

준비

from kiwipiepy import Kiwi
kiwi = Kiwi()
kiwi.prepare()
0

형태소 분석

text = '오늘은 자연어 처리를 배우기 좋은 날이다. 자연어 처리는 재미있다.'
result = kiwi.analyze(text)
result[0][0]
[('오늘', 'NNG', 0, 2),
 ('은', 'JX', 2, 1),
 ('자연어', 'NNP', 4, 3),
 ('처리', 'NNG', 8, 2),
 ('를', 'JKO', 10, 1),
 ('배우', 'VV', 12, 2),
 ('기', 'ETN', 14, 1),
 ('좋', 'VA', 16, 1),
 ('은', 'ETM', 17, 1),
 ('날', 'NNG', 19, 1),
 ('이', 'VCP', 20, 1),
 ('다', 'EF', 21, 1),
 ('.', 'SF', 22, 1),
 ('자연어', 'NNP', 24, 3),
 ('처리', 'NNG', 28, 2),
 ('는', 'JX', 30, 1),
 ('재미있', 'VA', 32, 3),
 ('다', 'EF', 35, 1),
 ('.', 'SF', 36, 1)]

명사만 추출하기

for token, pos, _, _ in result[0][0]:
    if pos.startswith('N'):
        print(token)
오늘
자연어
처리
날
자연어
처리

명사 추출 함수

def extract_noun(text):
    result = kiwi.analyze(text)
    for token, pos, _, _ in result[0][0]:
        if pos.startswith('N'):
            yield token
list(extract_noun('어제는 홍차를 마시고, 오늘은 커피를 마셨다.'))
['어제', '홍차', '오늘', '커피']