자연어처리

한글 자연어 처리 KoNLPy 설치

coding art 2022. 7. 4. 14:50
728x90

아래의 내용은 아래 url 주소의 블로그 내용을 참조하였음.

참조: 캡스톤 디자인 프로젝트 A: 한글 자연어 처리 - konlpy의 형태소 분석기

https://seokyung.tistory.com/2

 

한글 자연어 처리를 위한 koNLPy 라이브러리를 Colab에 설치하여 실행해 보자. 한글 형태소 분석기

라이브러리 konlpy 를 설치하고 이어서 한글 토큰화에 필요한 kss 라이브러리를 설치한다.

 

1 !pip install konlpy
2 !pip install kss

윈도우즈10 이나 MAC, LINUX 시스템에 설치할 경우 자바와 관련 JPype 설치 문제가 까다로운 편이지만,

리눅스 기반인 Colab에서는 웬만한 라이브러리는 이미 설치되어 지원되기 때문에 JPype 를 굳이 설치할 필요가 없다.

 

konlpy 를 사용하여 토큰화 후  형태소 분석기인 Okt(Open Korea Text), 꼬꼬마(Kkma), 한나눔(Hannanum), 코모란(Komoran), 메캅(Mecab)의 메소드를 사용하여

morphs : 형태소 추출,

pos : 품사 태깅(Part-of-speech tagging),

nouns : 명사 추출 작업을 성공적으로 실행하였다.

 

 

자연어 처리를 위한 텍스트를 문장별로 분리하자.

 

3 import kss
text = '최근 들어 도시의 경쟁력 향상을 위한 새로운 전략의 하나로 창조 도시에 대한 논의가 활발하게 진행되고 있다. 창조 도시는 창조적 인재들이 창의성을 발휘할 수 있는 환경을 갖춘 도시이다. 즉 창조 도시는 인재들을 위한 문화 및 거주 환경의 창조성이 풍부하며, 혁신적이고도 유연한 경제 시스템을 구비하고 있는 도시인 것이다. 창조 도시의 주된 동력을 창조 산업으로 볼 것인가 창조 계층으로 볼 것인가에 대해서는 견해가 다소 엇갈리고 있다. 창조 산업을 중시하는 관점에서는, 창조 산업이 도시에 인적·사회적·문화적·경제적 다양성을 불어넣음으로써 도시의 재구조화를 가져오고 나아가 부가가치와 고용을 창출한다고 주장한다. 창의적 기술과 재능을 소득과 고용의 원천으로 삼는 창조 산업의 예로는 광고, 디자인, 출판, 공연 예술, 컴퓨터 게임 등이 있다.'
print(kss.split_sentences(text))

 

형태소를 추출한다.

 

4 from konlpy.tag import Okt
okt = Okt()
print(okt.morphs("최근 들어 도시의 경쟁력 향상을 위한 새로운 전략의 하나로 창조 도시에 대한 논의가 활발하게 진행되고 있다. "))
-------------------------------------------------------------
['최근', '들어', '도시', '의', '경쟁력', '향상', '을', '위', '한', '새로운', '전략', '의', '하나로', '창조', '도시', '에', '대한', '논의', '가', '활발하게', '진행', '되고', '있다', '.']

 

단어별로 품사를 붙이자.

 

5 print(okt.pos("최근 들어 도시의 경쟁력 향상을 위한 새로운 전략의 하나로 창조 도시에 대한 논의가 활발하게 진행되고 있다. "))
-------------------------------------------------------------
[('최근', 'Noun'), ('들어', 'Verb'), ('도시', 'Noun'), ('의', 'Josa'), ('경쟁력', 'Noun'), ('향상', 'Noun'), ('을', 'Josa'), ('위', 'Noun'), ('한', 'Josa'), ('새로운', 'Adjective'), ('전략', 'Noun'), ('의', 'Josa'), ('하나로', 'Noun'), ('창조', 'Noun'), ('도시', 'Noun'), ('에', 'Josa'), ('대한', 'Noun'), ('논의', 'Noun'), ('가', 'Josa'), ('활발하게', 'Adjective'), ('진행', 'Noun'), ('되고', 'Verb'), ('있다', 'Adjective'), ('.', 'Punctuation')]

 

명사만을 추출하자.

 

6 print(okt.nouns("최근 들어 도시의 경쟁력 향상을 위한 새로운 전략의 하나로 창조 도시에 대한 논의가 활발하게 진행되고 있다. "))
-------------------------------------------------------------
['최근', '도시', '경쟁력', '향상', '위', '전략', '하나로', '창조', '도시', '대한', '논의', '진행']

※ kkma, Hannanum, Komoran은 첨부 Colab 파일 Hangulnlp_01.ipynb를 다운받아 실행시켜 보자.

Hangulnlp_01.ipynb
0.01MB