Leverages データ戦略ブログ

インハウスデータ組織のあたまのなか

SEO対策にTF-IDFを使った理由について

データサイエンスグループの榮田です。今回はテキストマイニングの手法の一つである、TF-IDFを使ったSEO対策について紹介します。

TF-IDFとは

TF-IDFは、文書中に含まれる単語の重要度を評価する手法の1つであり、主に情報検索やトピック分析などで用いられています。 SEO対策の場合、関連単語の分析や文書の類似度を調べるのに役立ちます。 それぞれの単語で次の2つの要素を計算し、その2つの要素の積をとることでそれぞれの単語のTF-IDFを計算しています。 TF(Term Frequency: 単語の出現頻度):文書内の特定の単語の出現回数を、文書内の全ての単語数で割ったものです。つまり、各文書においてそれぞれの単語がどれくらい出現したのかを調べます。

IDF(Inverse Document Frequency: 逆文書頻度):全ての文書の数を、特定キーワードが出てくる文書の数で割り対数をとったものです。つまり、「あれ」や「する」など出現頻度は高くとも重要度が低い単語では小さくなり、「心房性期外収縮」や「Blumberg徴候」など出現頻度は低いがより重要な単語では大きくなります。

TFとIDFの積をとることにより、特定の文書内では高頻度で出現するが、他の文書での出現頻度が低い単語においてTF-IDFが大きくなります。各単語のTF-IDFを使うことにより文書間の類似度も調べることができます。

TF-IDFの活用法

TF-IDFの活用方法として、特徴語抽出があります。各文書中に出現する単語のTF-IDF値が高い単語を抽出します。
例1: 「しかもあとで聞くとそれは書生という人間中で一番獰悪な種族であったそうだ」
例2: 「ここで吾輩は彼の書生以外の人間を再び見るべき機会に遭遇したのである」
例3: 「これは前の書生より一層乱暴な方で吾輩を見るや否やいきなり頸筋をつかんで表へ抛り出した」
例1~3中のそれぞれの単語のTF-IDFは
例1: 種族: 0.30, 獰悪: 0.30, 人間: 0.23, 書生: 0.18, ...
例2: 遭遇: 0.33, 機会: 0.33, 人間: 0.25, 吾輩: 0.25, 書生: 0.20, ..
例3: 頸筋: 0.31, 乱暴: 0.31, 吾輩: 0.23, 書生: 0.18, ..
となり、各文の最大のTF-IDFの単語はそれぞれ単語1_x, 単語2_y, 単語3_zになります。

もう一つの活用法としては、類似文書の検索があり、各文の単語のTF-IDF値を単語の分だけならべてCOS類似度を計算します。 上記の例文の場合、例1と例2の類似度は0.09になり、例1と例3の類似度は0.03になりました。実際に見比べてみると例1は例2とより関連していそうです。

TF-IDFを使うときの注意点

文書数が少ない場合には注意が必要で、1文書しかないなどの場合、いくつかの文に分割してTF-IDFを計算することがありますが、出現する単語に違いがほとんどない場合などは、IDF値がどの単語でも同じくらいになり、有効に機能しないことが考えられます。なので、SEO対策にTF-IDFを使う際に、手持ちの文書が少ない場合には、注意して使いましょう。

文書長が短い場合にも注意が必要です。この場合は文が短いために、1投稿分で区切ってしまうと、それぞれの単語の出現頻度が1になってしまい、TFが有効に機能しなくなることが考えられます。

TF-IDFはあくまでも簡潔な計算で、ある程度満足いく計算ができる手法であることを踏まえた上で使用しましょう。

SEO対策にTF-IDFを活用する方法

ナースときどき女子の任意の文書に近い文書をTF-IDFをつかって見つけ、ある記事を見ている人へ別の記事を推薦するのに使うというようなことが考えられます。例えば、弊社のサイトである「ナースときどき女子」中の記事

kango-oshigoto.jp

この記事に似ている文書は

kango-oshigoto.jp

この記事というような結果が得られたりします。これを使って、例えばページの下部などにおすすめの記事などとして表示すると回遊率などの指標が改善することが見込めます。

まとめ

・TF-IDFは下記のような用途でSEO対策に使用することができます。
 ・特徴語の抽出
 ・文書の類似度の計算がある程度できる。
低コストで色々な使い道があるので、サイトの改善に利用してみてください。