作成日:2003年04月04日、更新日:2003年04月04日 作成:鷹の巣

自分のホームページで使用している単語(キーワード)の使用頻度を測定し、最適かどうかを検討します。


ホームページの単語の使用頻度測定Perlスクリプト

キーワードがスパム扱いにならないように、単語の使用頻度を測定することにしました。Windows 2000/XPのクライアント機でPerlスクリプトを使用することにします。

日本語の単語をスペースで区切る分かち書きには、Chasenを使用することにしました。このWebページでは、簡単に単語の使用頻度を測定するPerlスクリプトを紹介します。

目次

  1. はじめに
  2. インストールと起動
  3. 実行結果の説明
  4. あとがき

1.はじめに

2003年3月末に突然、inktomi系の検索エンジンで、自サイトが「自宅サーバー」をキーワードで検索できなくなりました。「自宅」で検索すると自サイトが検索できますので、もしや「サーバー」がスパムのキーワードになっているのではと考え、単語の使用頻度を測定することにしました。別に意識して使用しているのではないのですが、確かに「サーバー」という言葉は、私のサイトでは、頻繁に現れます。

英語では、「Keyword Density Analyzer」や「Keyword Frequency Analyzer」や「Keyword Counter」で検索しますと、多くのWebサービスのサイトがヒットしますが、日本語は、単語がスペースで区切られていないので、使用できません。日本語では、オンラインの「SEOツール - SEO検索エンジン最適化」があり、簡単に単語の使用頻度を測定することができます。このサイトを煩雑に利用することは、迷惑になると考えて、実施されている機能を簡単にして最小限の内容を表示するPerlスクリプトを作成してみました。

後でわかったのですが、アフィリエイト研究室さんの「Googleでの検索順位を一括調査(SEO対策ソフト)」に「Goomani(ぐーまに)」(メール登録が必要なフリーソフト)というのもあるようです。私は使用していませんが、画面を見た限りは高機能の様です。

2.インストールと起動

Windows 2000/XPのクライアント機でPerlスクリプトを使用します。Perlの実行環境と分かち書きソフトフェアのchasenをインストールします。

  1. まず、Active Perl(5.8以降を推奨)が必要となります。インストールされていない方は、「Windows用CGI(Common Gateway Interface)設定方法の解説サイトリンク集」をご参照の上、インストール願います。

  2. Distribution of ChaSenから、ChaSen for Windows(ipadic つき)自己解凍型ファイルのcha21244.exe(2003年3月末現在)をダウンロードし、インストールします。

  3. Chasenの実行ファイル(Windowsでしたら、Chasen.exe)のあるフォルダ(ディレクトリ)にhindo.plを設置します。

  4. hindo.plの基本設定部分で、調査するhtmlファイルの絶対パスを変更します。
    (ここでは、D:/www/public_html/index.htmlとしています。)

  5. 起動方法は、コマンドプロンプト画面(DOS窓)から、perl hindo.plを実行します。

    hindo.plの実行例(2003年2月のHTMLファイルを作成)

    C:\Documents and Settings\user>D:\↓
    D:\>cd  chasen↓ <--- chasen.exeとhindo.plのあるフォルダ(ディレクトリ)に移動します。
    D:\chasen>perl  hindo.pl↓ <--- 拡張子のplがperlに関連付けされている場合は、hindo.plだけを入力するだけでも良いです。
    hindo.pl   Rev.1.000(作成:鷹の巣)
    D:/www/public_html/index.htmlを解析中です。
    D:/www/public_html/index.html.txtに頻度表を出力中です。
    
    D:\chasen>

    画面の文字色は、水色がキーボード入力を表わし、赤色が私が書き込んだ説明を表わしています。緑色は、各コマンドを実行した結果の表示です。

  6. 結果は、調査するhtmlファイルのフォルダ(ディレクトリ)に.txtファイルが追加生成されます。
    (ファイル名がD:/WWW/public_html/index.htmlであれば、D:/WWW/public_html/index.html.txtが生成されます。)

3.実行結果の説明

実行結果として得られたファイル内容(本例では、D:/WWW/public_html/index.html.txt)の説明を下記に示します。

ファイルサイズ  :15873 bytes
ページタイトル  :「鷹の巣」の自宅サーバー
ページのキーワード:自宅サーバー,独自ドメイン名,自分のドメイン名,非固定IPアドレス,動的IPアドレス,格安レジストラ,構築手順,検証方法,運用,運営,www,ftp,smtp,pop3,dns,メール
ページの説明   :初期費用0円年間1200円以下で、ドメイン名(sakaguch.com)を取得し、非固定IPアドレス(動的IPアドレス)にて自宅サーバー(WWW,FTP,SMTP,POP)の構築手順や検証方法や運用(運営)方法を紹介します。
単語の種類    :421 種類
使用単語数    :1084 語 <--- 使用する辞書によって変化します。

使用回数 頻度   占有率             単語
  69回    6.37(%)  2.69(%)                               の                    助詞-連体化
  40回    3.69(%)  6.23(%)                         サーバー                      名詞-一般 <--- 注)
  28回    2.58(%)  2.18(%)                             自宅                      名詞-一般
  26回    2.40(%)  1.01(%)                               を               助詞-格助詞-一般
  22回    2.03(%)  0.86(%)                               に               助詞-格助詞-一般
  21回    1.94(%)  0.82(%)                               は                    助詞-係助詞
  21回    1.94(%)  0.82(%)                               し                      動詞-自立
  20回    1.85(%)  1.56(%)                             手順                      名詞-一般
  18回    1.66(%)  1.40(%)                             ます                         助動詞
  17回    1.57(%)  0.66(%)                               て                  助詞-接続助詞
  16回    1.48(%)  2.49(%)                         ドメイン                      名詞-一般
  14回    1.29(%)  0.55(%)                               名                 名詞-接尾-一般
  12回    1.11(%)  0.47(%)                               た                         助動詞
  11回    1.01(%)  0.86(%)                             設定                  名詞-サ変接続
  11回    1.01(%)  0.86(%)                             更新                  名詞-サ変接続
 ...中略...
   1回    0.09(%)  0.02(%)                                /                         未知語

HTMLの本体部分の表示(5136 bytes)<--- HTMLタグを抜いた部分を表示しています。
|目次|更新履歴|ご訪問客帳|掲示板|リンク集|備忘録|アクセス統計|アクセス解析|作成日:2001年06月01日、更新日:2003年03月19日
 ...中略...
□当サイトの管理人は、「鷹の巣」です。当サイトに関するご指摘は、鷹の巣まで、お願い致します。
注)
  1. 使用頻度は、使用回数を使用単語数で割った百分率です。
  2. 占有率とは、単語のバイト数に使用回数を掛けて、HTMLの本体部分のバイト数で割った百分率で、私が勝手に作りました。
    例)サーバーの場合、8バイト×40回×100%÷5136バイト=6.23(%)

4.あとがき

Googleでは、記号文字での検索が出来ませんので、初期設定では、記号文字を除外しています。真偽の程は別として、Googleでは、最適な使用頻度は、2から5%程度ということになっているようです。(検索エンジンで「SEO」をキーワードとして検索して見ますと、色々なサイトが解説されています。)

ただし、Googleが分かち書きに使用している辞書とは異なるため、当然、使用単語数が異なります。従って、使用頻度の計算における分母の数値が異なるため、使用頻度は、正確な数値ではありません。(辞書をchasenからkakasiに変更するだけでも使用頻度の数値は変わってしまいます。)

このPerlスクリプトは、簡単に作成したため、あくまでも参考用として下さい。もし、このスクリプトを参考にWeb上で動作するようなCGIを作成される場合は、kakasiのモジュールをPerlにインストールすると、一時ファイルを作成することなく使用できます。

念のために書いておきますが、私のサイトがinktomi系の検索エンジンで、「自宅サーバー」をキーワードで検索できなくなった理由は、使用頻度ではありませんでした。いつのまにか自サイトがsakaguch.com以外にwww.sakaguchi.2y.netでクロールされていました。inktomi系の検索エンジンは、どうもホスト名のwwwが好きなようです。www.sakaguchi.2y.netでアクセスされた場合は、404エラーページとしました。現在、経過観察中です。

目次▲頁先頭