1. 한국어 분석


파이썬을 이용한 머신러닝, 딥러닝 실전개발 입문

파이썬을 이용한 머신러닝, 딥러닝 실전개발 입문 책과 강의를 바탕으로 코드 리뷰 및 정리를 했습니다. 자세한 내용은 책과 강의를 참고해주세요.


6. 텍스트 분석과 챗봇 만들기

6-1. 한국어 분석 (형태소 분석)

  • 한국어의 경우 최근 확률적 언어모델을 사용한 형태서 분석을 사용합니다.
  • 파이썬 대표 라이브러리 KoNLPy 를 이용하며 한나눔, 꼬꼬마(kkma), Komoran, MeCab, Twitter등의 형태소 분석기를 사용할 수 있습다.
  • Twitter가 성능도 좋고 품사도 보기 쉽게 구별해 준다는 특징이 있어 Twitter위주로 사용해 보도록 하겠습니다.
설치방법
$ apt-get install g++ openjdk-7-jdk python-dev python3-dev
$pip3 install konlpy


from konlpy.tag import Twitter
twitter = Twitter()
malist=twitter.pos("아버지 가방에 들어가신다.",norm=True, stem=True)
print(malist)
[('아버지', 'Noun'), ('가방', 'Noun'), ('에', 'Josa'), ('들어가다', 'Verb'), ('.', 'Punctuation')]


출현빈도 분석

from bs4 import BeautifulSoup
from konlpy.tag import Twitter

#utf-16으로 인코딩.
f=open("BEXX0003.txt","r",encoding="utf-16")
soup=BeautifulSoup(f,"html.parser")
body=soup.select_one("body > text")
text=body.getText()
f.close()

#텍스트를 한 줄씩 처리하기
twitter=Twitter()
word_dic={}
lines=text.split("\n")
for line in lines:
    malist=twitter.pos(line)
    for word in malist:
        if word[1]=="Noun":
            if not(word[0] in word_dic):
                word_dic[word[0]]=0
            word_dic[word[0]]+=1


#명사 출력
keys=sorted(word_dic.items(), key=lambda x:x[1], reverse=True)
for word, count in keys[:50]:
    print("{0}({1})".format(word, count), end="")
print()    
  • 명사 빈도를 통해 책/기사 장르 분류에도 활용할 수 있습니다.






© 2018. by yeo0

Powered by yeo0