2017-08-20 13 views
0

numpy配列を使用してワードクラウドを生成する際に問題があります。ここで、列1 =用語、列2 =頻度です。PythonのNumpy ArrayのWordcloud

wordcloudに関する文書がここにあります:Wordcloud Documentation .generate_from_frequenciesを使用するには辞書が必要です。私はこれを克服することができますどのように誰もが知ってい

TypeError: unsupported operand type(s) for /: 'numpy.string_' and 'float'

私は以下のコードでこれを行うことを試みてきました、しかし、それは、その結果?私はこれで今何時間も立ち往生していて、髪の毛を引っ張っている。

from wordcloud import WordCloud, STOPWORDS 

# Create array with all documents classifed as "0" cluster from best performing Kmeans 

Cluster_1 = np.empty((0,4613)) 
Cluster_1_FW = terms 

for n in range (0,737): 
    if Euclidean_best[n] == 0: 
     Cluster_1 = np.vstack([Cluster_1,X[n,:]]) 

# Sum frequencies of all words in cluster 
Cluster_1_f = np.sum(Cluster_1,axis=0) 

print(Cluster_1_f.shape) 

Cluster_1_FW = np.vstack([Cluster_1_FW,Cluster_1_f]) 
Cluster_1_FW = np.transpose(Cluster_1_FW) 

d = {} 
for a, q in Cluster_1_FW: 
    d[a] = q 



print(Cluster_1_FW.dtype) 

print(np.max(Cluster_1_f)) 
print(Cluster_1_FW.shape) 
print(Cluster_1_FW[0:5,:]) 
# Create word cloud from word-frequency table stored in Cluster_1_FW 
wcCluster1 = WordCloud(stopwords=STOPWORDS,background_color='white', width=1200, 
          height=1000).generate_from_frequencies(d) 
fig = plt.figure() 
plt.imshow(wcCluster1) 
fig.show() 

答えて

0

私は2番目の部分は、文字列ではなく、フロートにそれを作っていたとして、単純に以下のコードを変更しなければならなかった、とても幸せだし、それを修正:

d = {} 
for a, q in Cluster_1_FW: 
    d[a] = float(q) 
関連する問題