0
我正在嘗試使用雙元生成詞雲。我能夠生成前30個區分性詞語,但無法在繪圖時一起顯示單詞。我的文字雲圖像仍然看起來像一個單克雲。我使用了以下腳本和sci-kit學習軟件包。使用python創建n-gram詞雲
def create_wordcloud(pipeline):
"""
Create word cloud with top 30 discriminative words for each category
"""
class_labels = numpy.array(['Arts','Music','News','Politics','Science','Sports','Technology'])
feature_names =pipeline.named_steps['vectorizer'].get_feature_names()
word_text=[]
for i, class_label in enumerate(class_labels):
top30 = numpy.argsort(pipeline.named_steps['clf'].coef_[i])[-30:]
print("%s: %s" % (class_label," ".join(feature_names[j]+"," for j in top30)))
for j in top30:
word_text.append(feature_names[j])
#print(word_text)
wordcloud1 = WordCloud(width = 800, height = 500, margin=10,random_state=3, collocations=True).generate(' '.join(word_text))
# Save word cloud as .png file
# Image files are saved to the folder "classification_model"
wordcloud1.to_file(class_label+"_wordcloud.png")
# Plot wordcloud on console
plt.figure(figsize=(15,8))
plt.imshow(wordcloud1, interpolation="bilinear")
plt.axis("off")
plt.show()
word_text=[]
這是我的管道代碼
pipeline = Pipeline([
# SVM using TfidfVectorizer
('vectorizer', TfidfVectorizer(max_features = 25000, ngram_range=(2, 2),sublinear_tf=True, max_df=0.95, min_df=2,stop_words=stop_words1)),
('clf', LinearSVC(loss='squared_hinge', penalty='l2', dual=False, tol=1e-3))
])
這些都是我的類別「藝術」
Arts: cosmetics businesspeople, television personality, reality television, television presenters, actors london, film producers, actresses television, indian film, set index, actresses actresses, television actors, century actors, births actors, television series, century actresses, actors television, stand comedian, television personalities, television actresses, comedian actor, stand comedians, film actresses, film actors, film directors
它沒有工作。它用(_)替換所有單詞而沒有任何中斷。 – VKB
我編輯了我的答案。你有沒有嘗試過這樣的事情? – CrazyElf
謝謝你的作品。 – VKB