5분으로 할 수 있는 텍스트 해석【WordCloud】

Python3.x 시스템을 사용하여 매우 간단하게 텍스트 마이닝을 해 봅시다.

이번은 Python을 전혀 사용한 적이 없는 사람이라도 알 수 있도록 최대한 LINUX 터미널에서 처리를 실시하는 것 외에 입력하는 명령 등도 표기하므로 안심을! (이렇게 말하는 나도 Python에 대해서는 아무것도 모릅니다……)

텍스트 마이닝이란?



텍스트 마이닝 (영문 : text mining)은 문자열을 대상으로 한 데이터 마이닝입니다. 통상의 문장으로 이루어지는 데이터를 단어나 문장으로 단락지어, 그 출현의 빈도나 공출현의 상관, 출현 경향, 시계열 등을 해석하는 것으로 유용한 정보를 꺼내는, 텍스트 데이터의 분석 방법이다.
출처 Wikipedia

이번에는 텍스트 마이닝 기술로 워드 클라우드를 만들어 봅시다!
워드 클라우드라는 것은 이런 것입니다. ↓


우선 데이터 준비



처음에 분석할 대상 데이터를 준비합니다.
라고 해도 좀처럼 곧바로는 준비하기 어렵기 때문에 이번은 10월 31일에 개최된 온라인 이벤트 「아이돌 마스터 샤이니 칼라즈 MUSIC DAWN DAY1」의 트윗 데이터를 사용합니다.

다운로드는 이쪽
텍스트 데이터 # 샤니머스 MUSICDAWNday2

GitHub Gist #샤니머스MUSICDAWNday2
※여기에서 오른쪽 클릭으로 저장할 수 있습니다

Python3.x 시스템 설치


sudo apt install python3.7

데이터의 형태소 해석을 실시한다



영어와 달리 일본어는 공백으로 분절을 구분하지 않기 때문에 처음부터 텍스트 마이닝을 할 수는 없습니다.
거기서 이번은 항에서는 친숙한 오픈 소스 형태소 해석 엔진 MeCab를 사용합니다.
※덧붙여 mecab는 교토 대학 정보학 연구소가 주도의 프로젝트입니다.

MeCab 관계 설치



다음 명령 순서로 치십시오.
udo apt install mecab
sudo apt install libmecab-dev
sudo apt install mecab-ipadic
sudo apt install mecab-ipadic-utf8
pip install mecab-python3

검색 정밀도를 높이는 경우는 NEologd등의 추가의 사전도 인스톨 하는 편이 좋습니다만, 이번은 귀찮게 하기 때문에 하지 않습니다.

실제로 형태소 해석을 실시



많은 사이트에서는 파이썬에서 가고 있지만 이쪽이 훨씬 쉽다고 생각합니다.
먼저 해석원의 파일을 「test.txt」로 합니다.
그런 다음 터미널에서 다음을 입력합니다.
mecab -Owakati test.txt -o sample.txt

이상!
파일을 확인하면 제대로 해석되고 있습니다.



드디어 WordCloud에서 작업!



wordcloud 설치


pip install wordcloud

이것으로 끝입니다.

워드클라우드 만들기



아래의 샘플 코드를 copipe.

sample.py
from wordcloud import WordCloud
with open('sample.txt') as f:
        text = f.read()
stop_words = [ u'https', u'co', u'ござい', u'RT', u'ああ', u'']
wc = WordCloud(background_color="white",width=1600, height=1200, font_path='GenEiLateGoP_v2.ttf', stopwords=set(stop_words))
wc.generate(text)
wc.to_file('wc1.png')

코드 해설



① wordcloud 로드 및 파일 가져오기
from wordcloud import WordCloud
with open('sample.txt') as f:
        text = f.read()

② 각종 설정
stop_words ... 제외 할 키워드 설정 몇 번 시도하여 키워드를 설정하는 것이 좋습니다.
background_color ... 배경색
width,height・・・이미지의 크기를 설정(단위는 픽셀)
fonf_path···폰트 패스의 지정(이번은 영원 라테민을 사용하고 있습니다)
      ↑【초대사! 일본어 폰트를 읽지 않으면 두부가 돋보입니다! ! ! 】
stop_words = [ u'https', u'co', u'ござい', u'RT', u'ああ', u'']
wc = WordCloud(background_color="white",width=1600, height=1200, font_path='GenEiLateGoP_v2.ttf', stopwords=set(stop_words))

③실행 처리
wc.generate(text)
wc.to_file('wc1.png')

실제로 가보았다.


python3 sample.py

실행 결과


굉장해! ! ! 츠다씨 존재감 야바! (웃음)

푸른 하늘 문고등을 소재로 해도 좋을지도 모릅니다.
꼭 이것을 계기로 감정 해석 등에도 흥미를 가져 주셨으면 합니다.
끝까지 고맙습니다.

Twitter하고 있습니다.
※検証環境
Ubuntu 18.04 LTS
Python 3.7

좋은 웹페이지 즐겨찾기