前提・実現したいこと
https://qiita.com/uminchu987/items/07baa1a354cf96d2564bを参考に、青空文庫から「走れメロス」のテキストをスクレイピングして、Worldcloud画像を作成したいです。
ライブラリはスクレイピング用にurllib.requestとBeautifulSoup、形態素解析にMeCab、画像作成にWordCloudを使用しました。
発生している問題・エラーメッセージ
ValueError: Couldn't find space to draw. Either the Canvas size is too small or too much of the image is masked out.
該当のソースコード
Python
1import urllib.request 2from bs4 import BeautifulSoup 3import MeCab 4from wordcloud import WordCloud 5 6def scraping(url): 7 text = '' 8 html = urllib.request.urlopen(url) 9 soup = BeautifulSoup(html, 'html.parser') 10 11 meros = soup.findAll('div', class_ = 'main_text') 12 13 for i in meros: 14 text += i.text 15 16 return text 17 18 19def analysis(words): 20 mecab = MeCab.Tagger('-Ochasen') 21 mecab.parse('') 22 node = mecab.parseToNode(words) 23 text = [] 24 25 while node: 26 # 単語部分 27 word = node.surface 28 # 品詞部分 29 hinsi = node.feature.split(',')[0] 30 31 if hinsi in ['動詞',"副詞","形容詞","名詞"]: 32 text.append(word) 33 34 node = node.next 35 36 if node is None: 37 break 38 39 return text 40 41def make_img(word): 42 text = ''.join(word) 43 #日本語フォントのパス 44 fpath = 'C/Windows/Fonts/YuGothM.ttc' 45 cloud_img = WordCloud(background_color='white', font_path=fpath, width=800, height=600).generate(text) 46 47 #pngで保存 48 cloud_img.to_file('./wordcloud.png') 49 50 51if __name__ == '__main__': 52 #走れメロス 53 url = "https://www.aozora.gr.jp/cards/000035/files/1567_14913.html" 54 text = scraping(url) 55 node = analysis(text) 56 make_img(node)
試したこと
WordCloudの引数、width, height, max_wordsの値を大きくしたのですが、同じエラーメッセージが表示されました。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/06 03:37