반응형
반응형

[python] konlpy 하다가 그래프에 한글 안나올때, 어제는 안되고 오늘은 되네.


https://www.lucypark.kr/courses/2015-dm/text-mining.html


맥북에서 그래프에 한글 계속 안나오다가, 오늘 해보니까 또 나오네. 뭔 조화인가? 오타인가? 



Troubleshooting: For those who see rectangles instead of letters in the saved plot file, include the following configurations before drawing the plot:

from matplotlib import font_manager, rc
font_fname = 'c:/windows/fonts/gulim.ttc'     # A font of your choice
font_name = font_manager.FontProperties(fname=font_fname).get_name()
rc('font', family=font_name)

Some example fonts:

  • Mac OS: /Library/Fonts/AppleGothic.ttf








.

반응형
반응형

파이썬으로 영어와 한국어 텍스트 다루기

https://www.lucypark.kr/courses/2015-dm/text-mining.html




문서 전처리


https://datascienceschool.net/view-notebook/3e7aadbf88ed4f0d87a76f9ddc925d69/



모든 데이터 분석 모형은 숫자로 구성된 고정 차원 벡터를 독립 변수로 하고 있으므로 문서(document)를 분석을 하는 경우에도 숫자로 구성된 특징 벡터(feature vector)를 문서로부터 추출하는 과정이 필요하다. 이러한 과정을 문서 전처리(document preprocessing)라고 한다.


BOW (Bag of Words) 


문서를 숫자 벡터로 변환하는 가장 기본적인 방법은 BOW (Bag of Words) 이다. BOW 방법에서는 전체 문서  {D1,D2,…,Dn}{D1,D2,…,Dn}  를 구성하는 고정된 단어장(vocabulary)  {W1,W2,…,Wm}{W1,W2,…,Wm}  를 만들고  DiDi 라는 개별 문서에 단어장에 해당하는 단어들이 포함되어 있는지를 표시하는 방법이다.


 만약 단어 Wj가 문서Di 안에 있으면 ,→xij=1

 만약 단어 Wj가 문서Di 안에 있으면 ,→xij=1

 

Scikit-Learn 의 문서 전처리 기능 


Scikit-Learn 의 feature_extraction.text 서브 패키지는 다음과 같은 문서 전처리용 클래스를 제공한다.


CountVectorizer:

    문서 집합으로부터 단어의 수를 세어 카운트 행렬을 만든다.

TfidfVectorizer:

    문서 집합으로부터 단어의 수를 세고 TF-IDF 방식으로 단어의 가중치를 조정한 카운트 행렬을 만든다.

HashingVectorizer:

    hashing trick 을 사용하여 빠르게 카운트 행렬을 만든다.


from sklearn.feature_extraction.text import CountVectorizer

corpus = [

    'This is the first document.',

    'This is the second second document.',

    'And the third one.',

    'Is this the first document?',

    'The last document?',    

]

vect = CountVectorizer()

vect.fit(corpus)

vect.vocabulary_


반응형
반응형

konlpy 한국어 처리 패키지 


https://datascienceschool.net/view-notebook/70ce46db4ced4a999c6ec349df0f4eb0/



konlpy는 한국어 정보처리를 위한 파이썬 패키지이다.


http://konlpy.org/ko/latest/

https://github.com/konlpy/konlpy

konlpy는 다음과 같은 다양한 형태소 분석, 태깅 라이브러리를 파이썬에서 쉽게 사용할 수 있도록 모아놓았다.


Kkma

http://kkma.snu.ac.kr/

Hannanum

http://semanticweb.kaist.ac.kr/hannanum/

Twitter

https://github.com/twitter/twitter-korean-text/

Komoran

http://www.shineware.co.kr/?page_id=835

Mecab

https://bitbucket.org/eunjeon/mecab-ko-dic

konlpy 는 다음과 같은 기능을 제공한다.


한국어 corpus

한국어 처리 유틸리티

형태소 분석 및 품사 태깅



한국어 corpus


 - 예문 호출, 파일리스트 

from konlpy.corpus import kolaw  

kolaw.fileids()


c = kolaw.open('constitution.txt').read()

print(c[:100])


from konlpy.corpus import kobill

kobill.fileids()


d = kobill.open('1809890.txt').read()

print(d[:100])



한국어 처리 유틸리티

konlpy에는 유니코드 한글 문자열이 리스트나 딕셔너리의 내부에 있을 때도 한글 글자 모양을 정상적으로 보여주는 pprint 유틸리티 함수를 제공한다.


x = [u"한글", {u"한글 키": [u"한글 밸류1", u"한글 밸류2"]}]

print(x)


from konlpy.utils import pprint

pprint(x)



형태소 분석 

konlpy는 tag 서브패키지에서 형태소 분석을 위한 5개의 클래스를 제공한다.


Kkma

Hannanum

Twitter

Komoran

Mecab


이 클래스는 다음과 같은 메서드를 대부분 제공한다.


morphs : 형태소 추출

nouns : 명사 추출

pos : pos 태깅



from konlpy.tag import *

hannanum = Hannanum()

kkma = Kkma()

twitter = Twitter()


명사 추출 

문자열에서 명사만 추출하려면 noun 명령을 사용한다.


pprint(hannanum.nouns(c[:65]))

pprint(kkma.nouns(c[:65]))

pprint(twitter.nouns(c[:65]))


형태소 추출 

명사 뿐 아니라 모든 품사의 형태소를 알아내려면 morphs라는 명령을 사용한다.


pprint(hannanum.morphs(c[:65]))

pprint(kkma.morphs(c[:65]))

pprint(twitter.morphs(c[:65]))



품사 태깅 

pos 명령을 사용하면 품사(POS)가 붙어있는(tagging) 형태로 형태소 분석을 한다. 다만 이 때 출력되는 품사의 정의 및 기호는 형태소 분석기 마다 다르므로 각 형태소 분석기에 대한 문서를 찾아봐야 한다.


다음은 많이 쓰이는 형태소 분석기의 품사 기호를 비교한 자료이다.


Korean POS tags comparison chart : https://docs.google.com/spreadsheets/d/1OGAjUvalBuX-oZvZ_-9tEfYD2gQe7hTGsgUpiiBSXI8/edit#gid=0


pprint(hannanum.pos(c[:65]))

pprint(kkma.pos(c[:65]))

pprint(twitter.pos(c[:65]))



반응형
반응형

[Python] 그래프에서 한글 깨질때


bar 차트를 그리기 위해서 먼저 필요한 모듈을 import합니다. matplotlib.pyplot과 numpy 모듈은 기존에도 자주 사용했지만 font_manager와 rc 모듈은 처음으로 import하는 모듈입니다. 해당 모듈은 그래프를 그릴 때 한글 폰트를 설정하기 위해 사용합니다.

import matplotlib.pyplot as plt
import numpy as np
from matplotlib import font_manager, rc

그림 15.23을 참조하면 업종명이 한글로 출력됨을 확인할 수 있습니다. matplotlib는 한글 폰트를 설정해주지 않으면 기본적으로 한글이 제대로 출력되지 않습니다. 따라서 데이터에 한글이 포함되어 있다면 다음과 같이 사용할 한글 폰트를 설정해줘야 한글이 정상적으로 출력됩니다.

font_name = font_manager.FontProperties(fname="c:/Windows/Fonts/malgun.ttf").get_name()
rc('font', family=font_name)

폰트를 설정하기 위해서는 폰트 이름을 알아야 합니다. 윈도우 7부터는 '맑은 고딕'이라는 폰트가 기본 폰트로 사용되고 있기 때문에, 본 예제에서는 'c:/Windows/Fonts/malgun.ttf'라는 경로를 사용했습니다. 폰트의 설치 경로로부터 폰트 이름을 먼저 알아낸 후 rc 함수를 통해서 폰트를 설정했습니다.






.

반응형
반응형

tensorflow, macbook, anaconda 설치하고 실행해보기. 할때마다 새롭다. 


두번째 MACbook pro에서 설치해보기. 

영어가 짧아서 install tensorflow의 설치 방법이 4가지가 있다. 를  4개다 설치해보는 걸로 ㅋㅋ


anaconda를 설치해서 터미널로 실행해보는게 익숙한 느낌이다. PyCharm을 어떻게 셋팅해야 터미널에서 실행하는 것 처럼 하는지 아직은... 


anaconda에서 패키지 설치하고, 터미널에서도 설치하고 뒤죽박죽, 왠지 수박 겉 핡고 있는 느낌이랄까. 


https://tensorflowkorea.gitbooks.io/tensorflow-kr 를 기준으로 보고 셋팅하는게 나을듯하다. 


회사에서는 윈도우 PC로 PyCharm으로 돌리고 있다. 얕은 지식이 오락가락 ㅋㅋㅋ 맥북은 익숙하지도 않고. 


"깃허브의 주소는 https://github.com/tensorflowkorea/tensorflow-kr 입니다.

깃북의 주소는 https://tensorflowkorea.gitbooks.io/tensorflow-kr 입니다.

깃허브의 작업 방법에 대해서는 블로그 포스팅을 참고해 주세요."

라고 되어있으니 잘 참고해야지 




.

반응형
반응형

챗봇 시작해보기   https://www.slideshare.net/ssusercf5d12/ss-69518853


Python 으로 Slackbot 개발하기   https://www.slideshare.net/ssusercf5d12/python-slackbot


20170227 파이썬으로 챗봇_만들기     https://www.slideshare.net/KimSungdong1/20170227-72644192


머신러닝의 자연어 처리기술(I)    https://www.slideshare.net/ssuser06e0c5/i-64267027


인공지능, 기계학습 그리고 딥러닝  https://www.slideshare.net/JinwonLee9/ss-70446412  


[F2]자연어처리를 위한 기계학습 소개   https://www.slideshare.net/deview/f2-14341235





.

반응형

+ Recent posts