さて、偉そうな事を言っとかないと中々改造しなそうなので記事にする事にします。
Yomi-Searchでタグクラウドを作るために「$Slog[15]を分解表示する」事まではしてたんですが、それはあくまでログに項目を増やしただけです。ちなみにコメント頂いた「ばんかぶるさん」の仰ってた通り「網の目状のリンク構成」になり、Google Webmaster Tools上では凄まじいリンク構造が確認出来てます(笑)
内部リンクは6万以上あります(汗)
さて、そんな事はさて置き次はこれをクラウド化しなければなりません。ちなみにぶつかって来る問題が2点。まず「kazuking search」はYomi-Searchの機能外の部分は全てPHPファイルで作成しています。この為にPerlでもPHPでも利用できるようにしたいわけです。
手作業でいちいちそんな事はやってられないので、「ys4.cgi」と言うログファイルからタグクラウド用のタグを切り出し新たなファイルを作成する事にしました。分からないですが毎回呼び出すのは負荷を考えると良くないんじゃないか(Yomi-search本体的に)と言う憶測です(笑)
んで、Perl、PHPのどっちでその作業をするか悩んだんですが、最近PerlばっかりだったのでPHPを少し覚えるためにマニュアル見ながら下記のようなのを作りました。ちなみに数行ですが悩んで悩んで3時間かかりました(汗)
- <?php
- //書き込みファイル設定
- $filename = "log.txt";
- $fp = fopen($filename, "w");
- //ログファイル配列処理
- $arr = file("./log/ys4.cgi");
- //書き込み開始
- foreach ($arr as $line) {
- $lines = explode("<>", $line);
- fwrite($fp, $lines[15]);
- }
- //書き込み終了
- fclose($fp);
- ?>
取りあえず「log.txt」と言うファイルを作成(空のファイルを作っておく)しました。これには「ys4.cgi」から$Slog[15]だけを切り出したファイルになります。これをどう使うかは人それぞれなんでしょうけど、私はこいつを正規表現(最近覚えた)でスペース(半角、全角)毎に分解し、配列(最近覚えた)かハッシュ(最近覚えた)に収めようと思います。
ちなみに今、「重複キーワードをカウントする」と言う技能がありません・・・。Perl、PHPでは「HTML::TagCloud」と言うモジュールがあって、それを使って実現したいのですがモジュールの構造をやっと理解したばかり(オブジェクト指向とか難しいっす)で30歳手前の営業人間には煙出っ放しです。
「mecab」と言う形態素解析を使った方法もあるのですが、サーバーにPerlとPHPのモジュールがインストール出来ないんですよね。多分権限の問題だと思うんですが違う気もします。「mecab」自体は設置出来たんでどうにかなりそうな気もしますが・・・。
「mecab」を使ったほうが楽そうですがタグ($Slog[15])が品詞毎に分解されすぎちゃって、それも如何なものかと悩んでおります。っとなると自分で作ったほうが良いのかな?とも思って悩んでいる今日この頃です。ま、入力して貰った$Slog[15]を使うんで、そこまで変化もなさそうですしね。。
とにかく難しいです(涙)
ま、どうなるかは不明ですが実現(タグクラウド)したいのです!