NMFは文書のトピックを学習します
この動画では、文書にNMFを適用すると、コンポーネントが文書のトピックに対応し、NMFの特徴量はトピックから文書を再構成することを学びました。ここでは、先ほどWikipediaの記事で作成したNMFモデルについて、これを自分で確かめてみましょう。以前、俳優のAnne HathawayとDenzel Washingtonに関する記事で、3番目のNMF特徴量の値が高かったことを見ました。この演習では、対応するNMFコンポーネントのトピックを特定します。
先ほど作成したNMFモデルは model として利用でき、words は単語頻度配列の列に対応する単語のリストです。
終わったら、Anne Hathaway と Denzel Washington に関する記事が共通して持つトピックにぜひ気づいてみてください!
この演習はコースの一部です
Pythonで学ぶ教師なし学習
演習の手順
pandasをpdとしてインポートします。model.components_から DataFramecomponents_dfを作成し、列名が単語になるようにcolumns=wordsを指定します。- DataFrame の次元を確認するために
components_df.shapeを出力します。 - 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())