twitter API로 플레이하기 #6 (가시화 도구 wordcloud를 사용해보기)

마지막까지의 이야기



twitter API로 놀아보기 #1 (환경 만들기)
twitter API로 놀아보기 #2 (사용자 타임 라인 취득)
twitter API로 플레이하기 #3 (검색 결과 얻기)
twitter API로 놀아보기 #4 (형태소 해석해 보기(MeCab의 환경 만들기))
twitter API로 놀아보기 #5 (twitter의 검색 결과를 형태소 해석해 본다)

소개



마지막까지 twitter의 검색 결과를 MeCab 로 형태소 해석할 수 있게 되었습니다. 형태소 해석을 한 데이터로 놀고 싶습니다. 단어의 출현 빈도를 가시화할 수 있다 wordcloud

wordcloud란?



WordCloud는 텍스트 데이터를 빈도가 높은 단어만큼 큰 문자로 표시한 단어 빈도도를 생성하는 라이브러리입니다.

이런 녀석이네요.

텍스트 데이터를 WordCloud에 입력하는 것만으로는 작동하지 않습니다. WordCloud에서 텍스트 단어 빈도 다이어그램을 만들려면 텍스트 わかちがき를 사용해야합니다. 요점은 반각 스페이스로 단락지어져 있으면 그것으로 좋을 것 같습니다.

전회까지로 MeCab로 문장의 わかちがき 는 되어 있기 때문에, 데이터를 붓는 것만으로 좋을 것 같습니다.
이번은 거기까지 하지 않고, 적당한 영문을 주워 와 투입하려고 합니다. 영문이라면 그대로라도 단어마다 반각 공간으로 구분되어 있으니까요.

환경 만들기



전회까지의 환경 만들기는 실시 ​​완료한 후, 이하를 실시합니다.
# 必要なモジュールのインストール
sudo pip3 install matplotlib wordcloud pandas

# 元画像の取得
wget https://github.com/amueller/word_cloud/raw/master/examples/alice_mask.png

wordcloud 모듈에 대한 자세한 내용은 다음 github에 기록되어 있습니다.
htps : // 기주 b. 이 m / 아무에 r / rd_c ぉ d

원본 이미지는 위의 github examples에서 가져 왔습니다. 문자를 기재하는 형태와 같은 이미지입니다.
다운로드한 이미지는 이런 이미지입니다.

이 검은 부분에, 해석한 단어가 그려져 가는 것 같습니다.

우선 wordcloud를 사용해 본다.



우선 간단히 wordcloud 를 사용해 보겠습니다. 코드는 위의 github examples에 들어있는 코드를 참조했습니다.
덧붙여서 프로그램의 파일명을 wordcloud.py 라고 하면(자) 다음과 같은 에러가 되므로 주의해 주세요. 나는 이것으로 15분 정도 시간을 낭비했습니다.

그때의 오류
root@localhost:twitter$ ./wordcloud.py
Traceback (most recent call last):
  File "./wordcloud.py", line 5, in <module>
    from wordcloud import WordCloud, STOPWORDS
  File "/root/twitter/wordcloud.py", line 5, in <module>
    from wordcloud import WordCloud, STOPWORDS
ImportError: cannot import name 'WordCloud'

코드(wc.py)
wordcloud에 건네주는 문장은, 영어 wikipedia Hamburger 의 서두를 복사해 왔습니다.
#!/usr/bin/env python3
# -*- coding:utf-8 -*-
from os import path
from PIL import Image
from wordcloud import WordCloud, STOPWORDS
import numpy as np
import matplotlib.pyplot as plt

# カレントディレクトリの設定
d = path.dirname(__file__)

# WordCloudに渡す文章
text = "This article is about the sandwich. For the meat served as part of such a sandwich, see Patty. For other uses, see Hamburger (disambiguation).Hamburger RedDot Burger.jpg Hamburger with french fries and a beer Course Main course Place of origin United States or Germany disputed Created by Multiple claims (see text) Serving temperature Hot Main ingredients Ground meat, bread Cookbook: Hamburger Media: Hamburger A hamburger, beefburger or burger is a sandwich consisting of one or more cooked patties of ground meat, usually beef, placed inside a sliced bread roll or bun. The patty may be pan fried, grilled, or flame broiled. Hamburgers are often served with cheese, lettuce, tomato, onion, pickles, bacon, or chiles; condiments such as ketchup, mayonnaise, mustard, relish, or special sauce and are frequently placed on sesame seed buns. A hamburger topped with cheese is called a cheeseburger. The term burger can also be applied to the meat patty on its own, especially in the United Kingdom, where the term patty is rarely used, or the term can even refer simply to ground beef. The term may be prefixed with the type of meat or meat substitute used, as in turkey burger, bison burger, or veggie burger Hamburgers are sold at fast-food restaurants, diners, and specialty and high-end restaurants (where burgers may sell for several times the cost of a fast-food burger, but may be one of the cheaper options on the menu). There are many international and regional variations of the hamburger."

# 元画像の指定
alice_mask = np.array(Image.open(path.join(d, "alice_mask.png")))

# WordCloudのパラメーター設定
wc = WordCloud(
               background_color = "white",
               max_words        = 2000,
               mask             = alice_mask,
              )

# WordCloudの実行
wc.generate(text)

# 生成した画像をファイルとして出力
wc.to_file(path.join(d, "alice.png"))


실행 결과alice.png 가 출력되었습니다.

할 수있는 것 같습니다!

끝에



이것으로 wordcloud 의 간단한 사용법을 알았습니다. 단어 빈도 그림은 재미 있네요.
다음은 형태소 해석한 (반각 스페이스로 분할된) 일본어 문장 데이터를 wordcloud 에 투입하고 싶습니다.

좋은 웹페이지 즐겨찾기