자연어처리(설정)
자연어처리 기본 설정
Colab과 Jupyter 기준입니다.
- !apt-get update : 리눅스 패키지 업데이트
- !apt-get install g++ openjdk-8-jdk : Java설치
- !pip install JPype1 : Java와 Python을 연결하는 JPype 설치
- !pip install rhinoMorph : 형태소 분석기 설치
Colab에서의 폰트 설정
import matplotlib as mpl
import matplotlib.pyplot as plt
%config InlineBackend.figure_format = 'retina' #폰트가 깨끗하게 보이도록 설정
!apt install fonts-nanum # 나눔 폰트 설치
import matplotlib.font_manager as fm
fontpath = '/usr/share/fonts/truetype/nanum/NanumMyeongjo.ttf'
font = fm.FontProperties(fname=fontpath, size=9)
# 기본 글꼴 변경
import matplotlib as mpl
mpl.font_manager._rebuild()
mpl.pyplot.rc('font', family='NanumMyeongjo')
Local에서의 폰트 설정
import matplotlib
from matplotlib import font_manager, rc
font_path = 'C:/Windows/Fonts/malgun.ttf'
font_name = font_manager.FontProperties(fname=font_path).get_name()
matplotlib.rc('font', family=font_name)
동작확인
import rhinoMorph
rn = rhinoMorph.startRhino()
text = '한글테스트 글을 남겨주세요"
data = rhinoMorph.onlyMorph_list(rn,text) # 선언한 형태소 분석기의 객체를 같이 넣어준다.
print(data)
#출력 : ['한글','테스트','글','을','남기','어','주','시','어요']
RHINO 여러가지 사용법
모든 형태소 보이기
# text = '한글로 된 한글텍스트를 분석하는 것은 즐겁다.'
text_analyzed = rhinoMorph.onlyMorph_list(rn, text)
print('\n1. 형태소 분석 결과:', text_analyzed)
#출력 : ['한글','로','되','ㄴ','한글','텍스트','를','분석','하','는','것','은','즐겁','다','.']
실질형태소만, 동사의 어말어미는 제외
# text = '한글로 된 한글텍스트를 분석하는 것은 즐겁다.'
text_analyzed = rhinoMorph.onlyMorph_list(rn, text, pos=['NNG', 'NNP', 'NP',
'VV', 'VA', 'XR', 'IC', 'MM', 'MAG', 'MAJ'])
print('\n2. 형태소 분석 결과:', text_analyzed)
#출력 : ['한글','되','한글','텍스트','분석','즐겁']
실질형태소만, 동사의 어말어미 포함
# text = '한글로 된 한글텍스트를 분석하는 것은 즐겁다.'
text_analyzed = rhinoMorph.onlyMorph_list(rn, text, pos=['NNG', 'NNP', 'NP',
'VV', 'VA', 'XR', 'IC', 'MM', 'MAG', 'MAJ'],eomi=True) # eomi는 어말어미를 포함한다는 말이다.
print('\n2. 형태소 분석 결과:', text_analyzed)
#출력 : ['한글','되다','한글','텍스트','분석','즐겁다']
전체형태소, 품사정보도 가져오기
morphs, poses = rhinoMorph.wholeResult_list(rn, text)
print('morphs:', morphs)
print('poses:', poses)
원문의 어절 정보를 같이 가져 오기
text_analyzed = rhinoMorph.wholeResult_text(rn, text)
print('\n5. 형태소 분석 결과:\n', text_analyzed)
연결된 명사 결합
text_analyzed = rhinoMorph.onlyMorph_list(rn, text, pos=['NNG', 'NNP', 'NP',
'VV', 'VA', 'XR', 'IC', 'MM', 'MAG', 'MAJ'], combineN=True)
print('\n6. 형태소 분석 결과:\n', text_analyzed)
#출력 : ['한글','되','한글텍스트','분석','즐겁]
‘어근 + 하’ 결합
text_analyzed = rhinoMorph.wholeResult_list(rn, '사랑합니다')
print('\n8. 형태소 분석 결과: ', text_analyzed)
#출력 : (['사랑','하','ㅂ니다],['XR','XSV','EF])
text_analyzed = rhinoMorph.wholeResult_list(rn, '사랑합니다', xrVv=True)
print('\n9. 형태소 분석 결과: ', text_analyzed)
#출력 : (['사랑하','ㅂ니다],['VV','EF])
품사 주요 태그
- 일반명사 NNG
- 고유명사 NNP
- 의존명사 NNB
- 대명사 NP
- 수사 NR
- 동사 VV
- 형용사 VA
- 보조용언 VX
- 긍정지정사 VCP
- 부정지정사 VCN
- 관형사 MM
- 일반부사 MAG
- 접속부사 MAJ
- 감탄사 IC
- 어근 XR
Leave a comment