実用的かどうかは置いといて、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を算出出来ました。

重複の削除
最後に重複している行を削除して完成です。


コメント