반응형
파이썬에서 문자열 분석으로 많은 인사이트를
얻어낼 수 있다. 영어 같은 경우는 문자열 분석이
용이하지만 한글의 경우 형태소 단위로 분석
해야 하기 때문에, 까다로운 편이다.
영어를 사용하지 않는 나라에서 문자열을 분석
하기 위해서는 인코딩/디코딩의 과정을 거쳐야
하고 문자에 맞는 분석방법을 사용해야 하기
때문에, 어려움을 겪는 것이다. 특히나 한글의 경우
전 세계에서 가장 어려운 언어중 하나이기 때문에,
한글을 분석할 수 있다면 다른 나라의 언어들은
용이하게 분석할 수 있을 것이다.
1. konlpy 모듈 사용하기
한글이 전 세계에서 13번째로 많이 사용하는 언어라고 한다.
먼저 konlpy를 설치해준다.
1
|
pip3 install konlpy
|
cs |
konlpy 모듈에서 Twitter 클래스를 사용한다.
norm 형태소를 깔끔하게 만들어준다. 불필요한 데이터를 지워준다.
stem은 형태소의 원형을 찾아서 반환해준다.
1
2
3
4
5
6
7
8
|
from konlpy.tag import Twitter
import tweepy
import jpype
twitter = Twitter()
text = "게임을 통해 디지털 트렌스포메이션의 자본적 수혜자가 일반 대중으로 확산되고 있고, 소비자에 머물렀던 일반 대중이 디지털 생산자로 변화하고 있다며 일부 인플루언서에 그치지 않고 일반 대중으로 확산될 것이며 디지털 컨텐츠는 대중이 접근 하기 쉬운 아르바이트, 투잡이 될 것이다 게임을 통해 디지털 트렌스포메이션의 자본적 수혜자가 일반 대중으로 확산되고 있고, 소비자에 머물렀던 일반 대중이 디지털 생산자로 변화하고 있다며 일부 인플루언서에 그치지 않고 일반 대중으로 확산될 것이며 디지털 컨텐츠는 대중이 접근 하기 쉬운 아르바이트, 투잡이 될 것이다 게임을 통해 디지털 트렌스포메이션의 자본적 수혜자가 일반 대중으로 확산되고 있고, 소비자에 머물렀던 일반 대중이 디지털 생산자로 변화하고 있다며 일부 인플루언서에 그치지 않고 일반 대중으로 확산될 것이며 디지털 컨텐츠는 대중이 접근 하기 쉬운 아르바이트, 투잡이 될 것이다 게임을 통해 디지털 트렌스포메이션의 자본적 수혜자가 일반 대중으로 확산되고 있고, 소비자에 머물렀던 일반 대중이 디지털 생산자로 변화하고 있다며 일부 인플루언서에 그치지 않고 일반 대중으로 확산될 것이며 디지털 컨텐츠는 대중이 접근 하기 쉬운 아르바이트, 투잡이 될 것이다"
malist = twitter.pos(text, norm=True, stem=True)
print(malist)
|
cs |
코드를 실행하면 다음 결과값을 얻는다.
한글의 형태소에 따라서 문자열을 분석한 후
반환해주는 것이다.
모델을 좀더 발전시켜서, 명사 중에서 가장 많이
등장하는 단어를 찾는 프로그램도 가능하다.
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 32 33 34 35 | import codecs import csv from konlpy.tag import Twitter twitter=Twitter() word_dic={} lines=[] # CSV 에서 데이터를 읽어온다. with open('koreanTest.csv', 'r') as raws: reader = csv.reader(raws) for raw in reader: lines.append(raw) for line in lines: malist = twitter.pos(''.join(line)) print(malist) # 명사들을 수집해서 반복되는 명사 count를 진행한다. 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) # 50개 까지 결과값을 출력한다. for word, count in keys[:50]: print("{0}({1})".format(word, count), end="") | cs |
결과값은 다음과 같다.
형태소 분석결과를 보여주고,
"카카오"라는 명사가 20번
반복되었다는 결과를 반환한다.
반응형
'Programming' 카테고리의 다른 글
json.decoder.jsondecodeerror: expecting value: line 1 column 1 (char 0) 도대체 어디서 에러가 발생한 건가 해결방법 (0) | 2022.01.10 |
---|---|
우분투에서 wordcloud 사용하기, 테스트 파일 , 리스트 형식 데이터 우분투 wordcloud 한글 한글 워드클라우드 mask (0) | 2021.12.20 |
ubuntu anaconda intall 설치 실행 path uninstall jupyter notebook tensorflow 설치 (0) | 2021.12.13 |
Python from datetime import datetime / Datetime 모듈 사용하는 방법 (0) | 2021.12.07 |
python os 모듈 사용하는 방법 (0) | 2021.12.07 |
[Linux] nano 에디터 사용하는 방법 (0) | 2021.12.06 |
댓글