한국어 분석(형태소 분석)

2018. 5. 17. 04:53Python-이론/python-인공지능

한국어 분석(형태소 분석)



형태소 분석이란 한국어를 의미를 갖는 최소 단위로 분할하고, 품사를 판별하는 작업입니다. 우리가 이러한 기능을 직접구현 하려면 어렵겠죠 ..... 하지만 이러한 기능은 모듈로 이미 만들어져있어서 편리하게 사용할 수 있습니다.

모듈 다운로드 방법 


apt-get install g++ openjdk-7-jdk python-dev python3-dev

만약 jpype오류가 발생한다면 pip3 install jpype1을 다운로드 해주세요.

konlpy 설치

pip3 install konlpy 



안정적이게 설치가 됩니다. 그럼 이제부터 예제 코드를 실행시켜 보겠습니다.



예제 코드
from konlpy.tag import Twitter

twitter = Twitter()
print("구분할 문장을 입력해주세요")
text = input()
#norm은 현대적인말 그래욬ㅋㅋㅋ 같은 것을 그래요로 바꾸어 주는 것이다. 
#stem은 그래요를 그렇다처럼 원형으로 바꾸어 주는 것이다.
classifiedData = twitter.pos(text,norm=True,stem=True)
print(classifiedData)






위의 예제와 달리 조금 응용해서 사용 해보겠습니다.




from konlpy.tag import Twitter
import codecs
from bs4 import BeautifulSoup
text = codecs.open("toji.txt",'r',encoding = "utf-16")
bsData = BeautifulSoup(text,'html.parser')
body = bsData.select_one("body > text")
text = body.getText()
twitter = Twitter()
text = text.split('\n')
dic = {}
for line in text:
    malist = twitter.pos(line)
    for word in malist:
        if word[1] == "Noun":
            if word[0] not in dic:
                dic[word[0]] = 0
            dic[word[0]]+=1

sortedDic = sorted(dic.items(), key=lambda k :k[1], reverse=True)

for word, count in sortedDic[:30]:
    print("{0}({1})".format(word,count))