티스토리 뷰
[Python#3] Korean Natural Language Processing for Using KoNLPy ( Korean NLP in Python )
rocksea 2014. 12. 21. 17:20Korean Natural Language Processing for Using KoNLPy ( Korean NLP in Python )
Python기반 자연어 처리가 가능한 오픈소스 라이브러리가 있어 소개하고자 한다.
NLP란 Natural Language Processing의 약자로 KoNLPy는 한국어 자연어
처리란 의미를 가지고 있다. 이는 형태소 분석뿐 아니라 더 많고 포괄적인
자연어 처리기능을 내포하고 있어 목적과 취향에 맞춰 사용할 수 있다.
github : https://github.com/e9t/konlpy
자 이제 설치 및 튜토리얼을 통해 확인해 보도록 한다.
step1. 설치
pip installer를 통해 간단히 설치 가능하다.
$ pip install JPype1
$ pip install konlpy
step 2. word cloud 테스트
이미지를 그리기 위해 SDL 라이브러리와 pygame모듈을 설치한다.
$ brew install sdl sdl_image sdl_mixer sdl_ttf smpeg portmidi
$ pip install hg+http://bitbucket.org/pygame/pygame
$ pip install git+https://github.com/e9t/PyTagCloud.git
step 3. 예제 코드 실행
특정 웹페이지를 크롤링하여 분석한 예제 코드
#! /usr/bin/python2.7 # -*- coding: utf-8 -*- from collections import Counter import urllib import random import webbrowser from konlpy.tag import Hannanum from lxml import html import pytagcloud # requires Korean font support import sys if sys.version_info[0] >= 3: urlopen = urllib.request.urlopen else: urlopen = urllib.urlopen r = lambda: random.randint(0,255) color = lambda: (r(), r(), r()) def get_bill_text(billnum): url = 'http://pokr.kr/bill/%s/text' % billnum response = urlopen(url).read().decode('utf-8') page = html.fromstring(response) text = page.xpath(".//div[@id='bill-sections']/pre/text()")[0] return text def get_tags(text, ntags=50, multiplier=10): h = Hannanum() nouns = h.nouns(text) count = Counter(nouns) return [{ 'color': color(), 'tag': n, 'size': c*multiplier }\ for n, c in count.most_common(ntags)] def draw_cloud(tags, filename, fontname='Noto Sans CJK', size=(800, 600)): pytagcloud.create_tag_image(tags, filename, fontname=fontname, size=size) webbrowser.open(filename) bill_num = '1904882' text = get_bill_text(bill_num) tags = get_tags(text) print(tags) draw_cloud(tags, 'wordcloud.png')
[그림 1] 분석 테그 클라우드
참조 :
http://konlpy.readthedocs.org/en/latest/examples/wordcloud/
https://github.com/e9t/PyTagCloud-CJK
형태소 분석 결과를 다양한 형태의 visualization을 이용하여 보여 줄 수 있다.
'Developer' 카테고리의 다른 글
[CI#1] How To Install and Use Jenkins on Ubuntu 14.04 LTS (2) | 2015.01.19 |
---|---|
[MongoDB#2] How To Create a Sharded Cluster in MongoDB Using an Ubuntu 14.04 LTS (0) | 2015.01.15 |
[Ajax] Crossdomain Problem. (0) | 2014.12.17 |
[Python#2] Using Flask For fastest Web Applications. (0) | 2014.12.11 |
[MessageQueue#1] Getting started with RabbitMQ. (2) | 2014.11.18 |
- Total
- Today
- Yesterday
- 다낭
- 해외여행
- JBOSS
- Python Django
- Business English
- hdfs
- 여행
- Python
- AWS
- 영작
- 대명사 구문
- 영문법
- ubuntu
- it
- hadoop
- 베트남
- 스페인 여행
- mongoDB
- 비교구문
- nodejs
- NGINX
- memcached
- 비지니스 영어
- redis
- 가정법
- k8s
- PostgreSQL
- 도덕경
- 조동사
- maven
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |