始める無料で始める

NMFは文書のトピックを学習します

この動画では、文書にNMFを適用すると、コンポーネントが文書のトピックに対応し、NMFの特徴量はトピックから文書を再構成することを学びました。ここでは、先ほどWikipediaの記事で作成したNMFモデルについて、これを自分で確かめてみましょう。以前、俳優のAnne HathawayとDenzel Washingtonに関する記事で、3番目のNMF特徴量の値が高かったことを見ました。この演習では、対応するNMFコンポーネントのトピックを特定します。

先ほど作成したNMFモデルは model として利用でき、words は単語頻度配列の列に対応する単語のリストです。

終わったら、Anne Hathaway と Denzel Washington に関する記事が共通して持つトピックにぜひ気づいてみてください!

この演習はコースの一部です

Pythonで学ぶ教師なし学習

コースを見る

演習の手順

  • pandaspd としてインポートします。
  • model.components_ から DataFrame components_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())
コードを編集して実行