実用的かどうかは置いといて、Power QueryでTF-IDFを算出してみます。
TF-IDFは複数の文書の中から、文書中の単語の重要度を評価する手法です。→参考
使用するテーブル
![](https://powerplatformnikki.com/wp-content/uploads/2022/07/image-10.png)
文書名-単語名になっているテーブルを用意します。
全文書ごとの単語数リストを作る
![](https://powerplatformnikki.com/wp-content/uploads/2022/07/image-11.png)
文書名-単語名テーブルを右クリック、参照をクリックして文書名-単語数テーブルを作成します。
ホームタブのグループ化をクリックして、下記のように設定します。
![](https://powerplatformnikki.com/wp-content/uploads/2022/07/image-12.png)
![](https://powerplatformnikki.com/wp-content/uploads/2022/07/image-13.png)
文書名-単語数のテーブルが出来ました。
TF算出テーブルを作る
![](https://powerplatformnikki.com/wp-content/uploads/2022/07/image-14.png)
文書名-単語名テーブルを右クリック、参照をクリックしてTF算出テーブルを作成します。
BoW
BoW(Bag of Words)は、文書中に出現する単語を単語ごとに数えた数です。
![](https://powerplatformnikki.com/wp-content/uploads/2022/07/image-15.png)
文書・単語列をクリックした状態でグループ化をクリックして、上記のように入力します。
![](https://powerplatformnikki.com/wp-content/uploads/2022/07/image-16.png)
きちんと算出出来ました。
文書ごとの単語数
文書名-単語数テーブルとマージして、文書ごとの単語数列を追加します。
ホームタブのクエリのマージをクリックして、下記の画像のように設定します。
![](https://powerplatformnikki.com/wp-content/uploads/2022/07/image-17.png)
追加された文書名-単語数列の右横の矢印をクリックし、以下の様に設定します。
![](https://powerplatformnikki.com/wp-content/uploads/2022/07/image-18.png)
わかりやすいように、列名を文書ごとの単語数に変更します。
![](https://powerplatformnikki.com/wp-content/uploads/2022/07/image-19.png)
TFを算出
TFはBoW/文書ごとの単語数で算出出来ます。
列の追加タブのカスタム列をクリックし、以下の様に設定します。
![](https://powerplatformnikki.com/wp-content/uploads/2022/07/image-20.png)
TF値を算出出来ました。
![](https://powerplatformnikki.com/wp-content/uploads/2022/07/image-21.png)
IDF算出テーブルを作る
文書名-単語名テーブルを右クリック、参照をクリックしてIDF算出テーブルを作成します。
![](https://powerplatformnikki.com/wp-content/uploads/2022/07/image-22.png)
単語ごとに単語が含まれる文書の数を算出する
単語列を個別の行数でカウントします。
![](https://powerplatformnikki.com/wp-content/uploads/2022/07/image-25.png)
単語が含まれる文書の数を算出出来ました。
![](https://powerplatformnikki.com/wp-content/uploads/2022/07/image-26.png)
全文書数を算出する
列の追加タブのカスタム列をクリックし、以下の様に設定します。
![](https://powerplatformnikki.com/wp-content/uploads/2022/07/image-27.png)
全文書数が算出されました。
![](https://powerplatformnikki.com/wp-content/uploads/2022/07/image-28.png)
IDFの算出
列の追加タブのカスタム列をクリックし、以下の様に設定します。
![](https://powerplatformnikki.com/wp-content/uploads/2022/07/image-29.png)
IDF値が算出されました。
![](https://powerplatformnikki.com/wp-content/uploads/2022/07/image-30.png)
TF-IDF算出テーブルを作る
文書名-単語名テーブルを右クリック、参照をクリックしてTF-IDF算出テーブルを作成します。
![](https://powerplatformnikki.com/wp-content/uploads/2022/07/image-31.png)
TFをマージ
ホームタブのクエリのマージから、TFをマージします。
![](https://powerplatformnikki.com/wp-content/uploads/2022/07/image-32.png)
単語と文書列を選択し、追加されたTFテーブル列の横の矢印をクリックし、TF値を表示します。
![](https://powerplatformnikki.com/wp-content/uploads/2022/07/image-33.png)
IDFをマージ
同様にIDFを単語列でマージします。
![](https://powerplatformnikki.com/wp-content/uploads/2022/07/image-34.png)
IDF列をマージ出来ました。
![](https://powerplatformnikki.com/wp-content/uploads/2022/07/image-35.png)
TF-IDFの算出
TF-IDFを算出します。
列の追加タブのカスタム列をクリックし、以下の様に設定します。
![](https://powerplatformnikki.com/wp-content/uploads/2022/07/image-36.png)
TF-IDFを算出出来ました。
![](https://powerplatformnikki.com/wp-content/uploads/2022/07/image-37.png)
重複の削除
最後に重複している行を削除して完成です。
![](https://powerplatformnikki.com/wp-content/uploads/2022/07/image-38.png)
![](https://powerplatformnikki.com/wp-content/uploads/2022/07/image-39.png)
コメント