実用的かどうかは置いといて、Power QueryでTF-IDFを算出してみます。
TF-IDFは複数の文書の中から、文書中の単語の重要度を評価する手法です。→参考
使用するテーブル
文書名-単語名になっているテーブルを用意します。
全文書ごとの単語数リストを作る
文書名-単語名テーブルを右クリック、参照をクリックして文書名-単語数テーブルを作成します。
ホームタブのグループ化をクリックして、下記のように設定します。
文書名-単語数のテーブルが出来ました。
TF算出テーブルを作る
文書名-単語名テーブルを右クリック、参照をクリックしてTF算出テーブルを作成します。
BoW
BoW(Bag of Words)は、文書中に出現する単語を単語ごとに数えた数です。
文書・単語列をクリックした状態でグループ化をクリックして、上記のように入力します。
きちんと算出出来ました。
文書ごとの単語数
文書名-単語数テーブルとマージして、文書ごとの単語数列を追加します。
ホームタブのクエリのマージをクリックして、下記の画像のように設定します。
追加された文書名-単語数列の右横の矢印をクリックし、以下の様に設定します。
わかりやすいように、列名を文書ごとの単語数に変更します。
TFを算出
TFはBoW/文書ごとの単語数で算出出来ます。
列の追加タブのカスタム列をクリックし、以下の様に設定します。
TF値を算出出来ました。
IDF算出テーブルを作る
文書名-単語名テーブルを右クリック、参照をクリックしてIDF算出テーブルを作成します。
単語ごとに単語が含まれる文書の数を算出する
単語列を個別の行数でカウントします。
単語が含まれる文書の数を算出出来ました。
全文書数を算出する
列の追加タブのカスタム列をクリックし、以下の様に設定します。
全文書数が算出されました。
IDFの算出
列の追加タブのカスタム列をクリックし、以下の様に設定します。
IDF値が算出されました。
TF-IDF算出テーブルを作る
文書名-単語名テーブルを右クリック、参照をクリックしてTF-IDF算出テーブルを作成します。
TFをマージ
ホームタブのクエリのマージから、TFをマージします。
単語と文書列を選択し、追加されたTFテーブル列の横の矢印をクリックし、TF値を表示します。
IDFをマージ
同様にIDFを単語列でマージします。
IDF列をマージ出来ました。
TF-IDFの算出
TF-IDFを算出します。
列の追加タブのカスタム列をクリックし、以下の様に設定します。
TF-IDFを算出出来ました。
重複の削除
最後に重複している行を削除して完成です。
コメント