J'ai des problèmes pour générer un wordcloud en utilisant un tableau numpy où Column 1 = terms et Column 2 = frequency. Compte tenu de la documentation sur wordcloud disponible ici: Wordcloud Documentation pour utiliser .generate_from_frequencies vous avez besoin d'un dictionnaire.Wordcloud de Numpy Array en Python
J'ai essayé de le faire dans le code ci-dessous, mais il en résulte:
TypeError: unsupported operand type(s) for /: 'numpy.string_' and 'float'
Est-ce que quelqu'un sait comment je peux surmonter cela? Je suis coincé là-dessus depuis des heures et je me suis arraché les cheveux.
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()