NMFはドキュメントのトピックを学習する
動画では、NMFをドキュメントに適用すると、各成分がドキュメントのトピックに対応し、NMFの特徴量がトピックからドキュメントを再現することを学びました。ここでは、以前作成したWikipedia記事を使ったNMFモデルで、このことを実際に確認してみましょう。前の演習では、俳優のアン・ハサウェイとデンゼル・ワシントンに関する記事で、3番目のNMF特徴量の値が高いことが分かりました。この演習では、対応するNMFの成分のトピックを特定します。
先ほど作成したNMFモデルはmodelとして使用できます。またwordsは、単語出現頻度の配列の列ラベルとなる単語のリストです。
すべての工程が終わったら、アン・ハサウェイとデンゼル・ワシントンに関する記事に共通するトピックが何かを確認してみましょう。
この演習はコースの一部です
Pythonで学ぶ教師なし学習
演習の手順
pandasをpdとしてインポートしてください。model.components_からDataFramecomponents_dfを作成し、columns=wordsを指定して、列に単語のラベルを付けてください。components_df.shapeを出力し、DataFrameの次元を確認してください。- DataFrame
components_dfの.iloc[]アクセサを使って行3を選択し、結果をcomponentに代入してください。 componentの.nlargest()メソッドを呼び出し、結果を出力してください。これで、その成分で最も値が高い単語5つがわかります。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Import pandas
import pandas as pd
# Create a DataFrame: components_df
components_df = ____
# Print the shape of the DataFrame
print(components_df.shape)
# Select row 3: component
component = ____
# Print result of nlargest
print(component.nlargest())