映画クラスタの上位用語
スパース行列を作成できたので、クラスタ中心を計算し、各クラスタの上位3語を出力しましょう。kmeans() 関数で処理できるよう、スパース行列 tfidf_matrix を .todense() メソッドで通常の行列に変換します。続いて、tfidf_vectorizer オブジェクトの .get_feature_names() メソッドで用語リストを取得します。Python の zip() 関数は2つのリストを結合します。
前の演習で作成した tfidf_vectorizer オブジェクトとスパース行列 tfidf_matrix は、この演習でも利用できます。kmeans は SciPy からインポート済みです。
データポイントが多いほど、生成されるクラスタはより明確に定義されます。ただし、その分計算資源が必要になり、この演習の範囲では実行が難しくなります。
この演習はコースの一部です
Pythonで学ぶクラスタ分析
演習の手順
kmeans()関数でクラスタ中心を計算します。tfidf_vectorizerオブジェクトから用語リストを取得します。- 各クラスタの上位3語を出力します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
num_clusters = 2
# Generate cluster centers through the kmeans function
cluster_centers, distortion = ____
# Generate terms from the tfidf_vectorizer object
terms = tfidf_vectorizer.____()
for i in range(num_clusters):
# Sort the terms and print top 3 terms
center_terms = dict(zip(____, ____))
sorted_terms = sorted(____, key=center_terms.get, reverse=True)
print(____)