PythonによるWordCloudを行いたいのですが、以下のエラーが解消出来ず困っています。
解消方法をアドバイス頂けると助かります m(_ _)m
ちなみに、以下のソースコードについて、他のPCでは問題無く動いたので、コードではなくPCの環境が要因と思われます・・。
そのため、コード中に不要な箇所が多数あるかと思いますが、無視して頂ければです。
【試したこと】
・Pathを通してから再起動
・MeCabインストールし直し
【使用中のソースコード】
### WordCloud単語版 ### #!/usr/bin/env python import os,matplotlib,re,MeCab,itertools,pydotplus,requests,io,string print(os.getcwd()) matplotlib.use('TkAgg') import matplotlib.pyplot as plt # coding: utf-8 #!/usr/bin/env python from wordcloud import WordCloud from PIL import Image import numpy as np from collections import Counter import MeCab as amee from igraph import * def get_text(path): f = open(path, encoding="utf-8") text = f.read() f.close() return text # 形態素解析開始 class Wakati: # コンストラクタ def __init__(self, text): self.text = text self.tokens = None self.targets = ["名詞", "動詞", "形容詞"] # NGワードリスト〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓 self.stopwords = [u'てる', u'いる', u'なる', u'れる', u'する'] # 分かち書きを行うメソッド def tokenize(self): words = self.get_words() self.tokens = self.get_stopped_words(words) return self.tokens # 形態素解析の結果をDataFrameで返す関数 def get_dfw(self): t = MeCab.Tagger("Owakati") t.parse("") node = t.parseToNode(self.text) surfaces = [] stems = [] poss = [] while node: surface = node.surface feature = node.feature.split(",") stem = feature[6] pos = feature[0] surfaces.append(surface) stems.append(stem) poss.append(pos) node = node.next dfw = pd.DataFrame() dfw["SURFACE"] = surfaces[1:-1] dfw["STEM"] = stems[1:-1] dfw["POS"] = poss[1:-1] return dfw # 形態素解析結果から目的となる品詞に一致した単語リストを取得する関数 def get_words(self): dfw = self.get_dfw() words = [] for row in dfw.iterrows(): for target_pos in self.targets: if row[1]["POS"] == target_pos: if row[1]["STEM"] != "*": words.append(row[1]["STEM"]) return words # 単語リストからストップワードを除去した単語リストを返す関数 def get_stopped_words(self, words): stopped_words = [word for word in words if word not in self.stopwords] return stopped_words # トークンリストを半角スペースで結合したテキストに変換する関数 def tokens2linetext(tokens): linetext = "" for token in tokens: linetext += token linetext += " " return linetext[:-1] # テキストデータの取り込み path = u"C:/python/00__text/テキストデータ名.txt" text = get_text(path) # テキストの形態素解析 tokens = Wakati(text).tokenize() # 形態素解析結果を半角スペースで結合されたテキストに変換 linetext = tokens2linetext(tokens) fontpath = "C:/python/08__font/AozoraMinchoHeavy.ttf" datum_mask = np.array(Image.open(mask_path)) wc = WordCloud(height=500,width=700) wc.generate(linetext) # 出力ファイル名設定 filename = os.path.basename(path) filename = os.path.splitext(filename)[0] outname = "wordcloud_" + filename + ".png" wc.to_file(outname) #出力 plt.figure(figsize=(15,12)) plt.imshow(wc) plt.axis("off") plt.show()
【以下、エラーメッセージです】
Traceback (most recent call last): File "C:\python\11w_wordcloud.py", line 118, in <module> tokens = Wakati(text).tokenize() File "C:\python\11w_wordcloud.py", line 57, in tokenize words = self.get_words() File "C:\python\11w_wordcloud.py", line 89, in get_words dfw = self.get_dfw() File "C:\python\11w_wordcloud.py", line 63, in get_dfw t = MeCab.Tagger("Owakati") File "C:\Users\ユーザ名\AppData\Local\Programs\Python\Python37\lib\site-packages\MeCab.py", line 253, in __init__ _MeCab.Tagger_swiginit(self, _MeCab.new_Tagger(*args)) RuntimeError
以上となります。
何卒よろしくお願い致します!m(_ _)m
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/21 08:31