質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

自然言語処理

自然言語処理は、日常的に使用される自然言語をコンピューターに処理させる技術やソフトウェアの総称です。

Q&A

解決済

1回答

1758閲覧

ワードクラウドが表示できない

ren0001

総合スコア1

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

自然言語処理

自然言語処理は、日常的に使用される自然言語をコンピューターに処理させる技術やソフトウェアの総称です。

0グッド

0クリップ

投稿2022/10/15 10:14

前提

ワードクラウドを生成するプログラムを書いています。

発生している問題・エラーメッセージ

Traceback (most recent call last): File "wordcloud/analyze_wordcloud1.py", line 22, in <module> wc = WordCloud( File "/home/ren0525/.local/lib/python3.8/site-packages/wordcloud/wordcloud.py", line 639, in generate return self.generate_from_text(text) File "/home/ren0525/.local/lib/python3.8/site-packages/wordcloud/wordcloud.py", line 621, in generate_from_text self.generate_from_frequencies(words) File "/home/ren0525/.local/lib/python3.8/site-packages/wordcloud/wordcloud.py", line 503, in generate_from_frequencies font = ImageFont.truetype(self.font_path, font_size) File "/home/ren0525/.local/lib/python3.8/site-packages/PIL/ImageFont.py", line 959, in truetype return freetype(font) File "/home/ren0525/.local/lib/python3.8/site-packages/PIL/ImageFont.py", line 956, in freetype return FreeTypeFont(font, size, index, encoding, layout_engine) File "/home/ren0525/.local/lib/python3.8/site-packages/PIL/ImageFont.py", line 247, in __init__ self.font = core.getfont( OSError: cannot open resource

該当のソースコード

import re import sys import matplotlib.pyplot as plt import spacy from wordcloud import WordCloud if len(sys.argv) != 2: sys.exit("利用法:{}(ファイル名)".format(sys.argv[0])) include_pos = ('NOUN', 'VERB', 'ADJ') stopwords = ('する', 'ある', 'ない', 'いう', 'もの', 'こと', 'よう', 'なる', 'ほう') nlp = spacy.load("ja_ginza") with open(sys.argv[1], 'r', encoding="UTF-8") as f: text = f.read() doc = nlp(text) words = [token.lemma_ for token in doc if token.pos_ in include_pos and token.lemma_ not in stopwords] wc = WordCloud( background_color='white', font_path='C:/Windows/Fonts/HGRGE.TTC', max_font_size=100).generate(' '.join(words)) plt.figure(figsize=(8, 4)) plt.imshow(wc, interpolation='bilinear') plt.axis("off") plt.tight_layout(pad=0) plt.show()

試したこと

以下のサイトを参考にエラーの解決を試みましたが上手くいきませんでした。
【実践】PythonでWordCloud(ワードクラウド)しようぜ!

補足情報(FW/ツールのバージョンなど)

Windows10
Ubuntu20.05
Python3.9.5

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jbpb0

2022/10/15 12:22

> Windows10 Ubuntu20.05 pythonを実行してるosは上記のどちらでしょうか? エラーメッセージの > File "/home/ren0525/.local/lib/python3.8/site-packages/wordcloud/wordcloud.py", line 639, in generate とかのパスはlinuxのようなので、linux上でpythonを実行してるようですが、その場合は、 > font_path='C:/Windows/Fonts/HGRGE.TTC', のようにwindowsのフォントのパスを指定してもダメですよ
ren0001

2022/10/15 15:43

ご回答ありがとうございます! PCはWindows10ですが、WSLのUbuntuでPythonを実行しています。
guest

回答1

0

自己解決

コメントで指摘していただいた通り、実行環境であるUbuntuからWindowsのフォントのパスを指定したことで今回のようなエラーが発生しました。
【解決方法】「C:Windows/Fonts」→「/mnt/c/Windows/Fonts」に変更することで、UbuntuからWindowsに設定されているフォントを参照でき、ワードクラウドの生成が出来ました。コメントをくださった方、ありがとうございました!

投稿2022/10/15 16:05

ren0001

総合スコア1

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問