KoNLPy를 사용하기 전, 우선 KoNLPy패키지를 설치한다.
설치 방법은 아래 링크 참고!
konlpy-ko.readthedocs.io/ko/v0.4.3/install/#id2
KoNLPy 형태소 분석기 종류
- Hannanum(한나눔) - KAIST 말뭉치를 이용해 생성된 사전
- Kkma(꼬꼬마) - 세종 말뭉치를 이용해 생성된 사전 -> 정확한 품사 분류
- Mecab(메캅) - 세종 말뭉치로 만들어진 CSV형태의 사전
- Komoran(코모란) - Java로 쓰여진 오픈소스 한글 형태소 분석기 -> 정확성과 속도
- Twitter(Okt) - 오픈소스 한글 형태소 분석기 -> 빠른 분석
*메캅은 윈도우에서 지원하지 않는다
KoNLPy를 사용한 형태소 분석은 간단하다.
- 형태소 분석기 import
- 메소드를 이용한 형태소 분석
Hannanum
- hannaum import하기
from konlpy.tag import Hannanum
hannanum=Hannanum()
- morphs() - 문장을 형태소 단위로 추출
print(hannanum.morphs('안녕. 나는 하늘색과 딸기를 좋아해'))
>> ['안녕', '.', '나', '는', '하늘색', '과', '딸기', '를', '좋', '아', '하', '어']
- nouns() - 문장을 명사 단위로 추출
print(hannanum.nouns('안녕. 나는 하늘색과 딸기를 좋아해'))
>> ['나', '하늘색', '딸기']
- pos() - 형태소의 종류와 함께 출력
print(hannanum.pos('안녕. 나는 하늘색과 딸기를 좋아해'))
>> [('안녕', 'I'), ('.', 'S'), ('나', 'N'), ('는', 'J'), ('하늘색', 'N'), ('과', 'J'), ('딸기', 'N'), ('를', 'J'), ('좋', 'P'), ('아', 'E'), ('하', 'P'), ('어', 'E')]
- tagset - 품사의 종류 출력
print(hannanum.tagset)
>> {'E': '어미', 'EC': '연결 어미', 'EF': '종결 어미', 'EP': '선어말어미', 'ET': '전성 어미', 'F': '외국어', 'I': '독립언', 'II': '감탄사', 'J': '관계언', 'JC': '격조사', 'JP': '서술격 조사', 'JX': '보조사', 'M': '수식언', 'MA': '부사', 'MM': '관형사', 'N': '체언', 'NB': '의존명사', 'NC': '보통명사', 'NN': '수사', 'NP': '대명사', 'NQ': '고유명사', 'P': '용언', 'PA': '형용사', 'PV': '동사', 'PX': '보조 용언', 'S': '기호', 'X': '접사', 'XP': '접두사', 'XS': '접미사'}
Kkma
from konlpy.tag import Kkma
kkma=Kkma()
#형태소 분석
print(kkma.morphs('안녕. 나는 하늘색과 딸기를 좋아해'))
>> ['안녕', '.', '나', '는', '하늘색', '과', '딸기', '를', '좋아하', '어']
#명사 추출
print(kkma.nouns('안녕. 나는 하늘색과 딸기를 좋아해'))
>> ['안녕', '나', '하늘색', '딸기']
#품사와 함께 반환
print(kkma.pos('안녕. 나는 하늘색과 딸기를 좋아해'))
>> [('안녕', 'NNG'), ('.', 'SF'), ('나', 'NP'), ('는', 'JX'), ('하늘색', 'NNG'), ('과', 'JC'), ('딸기', 'NNG'), ('를', 'JKO'), ('좋아하', 'VV'), ('어', 'ECS')]
#문장 추출
print(kkma.sentences('안녕하세요. 나는 하늘색과 딸기를 좋아해'))
>> ['안녕하세요.', '나는 하늘색과 딸기를 좋아해']
Komoran
from konlpy.tag import Komoran
komoran=Komoran()
#형태소 추출
print(komoran.morphs('안녕. 나는 하늘색과 딸기를 좋아해'))
>> ['안녕', '.', '나', '는', '하늘색', '과', '딸기', '를', '좋아하', '아']
#명사 추출
print(komoran.nouns('안녕. 나는 하늘색과 딸기를 좋아해'))
>> ['하늘색', '딸기']
#품사 정보와 함께 추출
print(komoran.pos('안녕. 나는 하늘색과 딸기를 좋아해'))
>> [('안녕', 'IC'), ('.', 'SF'), ('나', 'NP'), ('는', 'JX'), ('하늘색', 'NNP'), ('과', 'JC'), ('딸기', 'NNP'), ('를', 'JKO'), ('좋아하', 'VV'), ('아', 'EC')]
Okt
from konlpy.tag import Okt
okt=Okt()
#형태소 추출
print(okt.morphs('안녕. 나는 하늘색과 딸기를 좋아해'))
>> ['안녕', '.', '나', '는', '하늘색', '과', '딸기', '를', '좋아해']
#명사 추출
print(okt.nouns('안녕. 나는 하늘색과 딸기를 좋아해'))
>> ['안녕', '나', '하늘색', '딸기']
#품사와 함께 추출
print(okt.pos('안녕. 나는 하늘색과 딸기를 좋아해'))
>> [('안녕', 'Noun'), ('.', 'Punctuation'), ('나', 'Noun'), ('는', 'Josa'), ('하늘색', 'Noun'), ('과', 'Josa'), ('딸기', 'Noun'), ('를', 'Josa'), ('좋아해', 'Adjective')]
#어절 추출
print(okt.phrases('안녕. 나는 하늘색과 딸기를 좋아해'))
>> ['안녕', '하늘색', '하늘색과 딸기', '딸기']
참고
'python' 카테고리의 다른 글
[python] 뉴스 기사 크롤링 (newspaper 모듈) (0) | 2021.03.21 |
---|
댓글