2008-01-08 パコス メイド シンプル
Sennaではてなキーワード自動リンクを実装する
[注意]このエントリはPHPとMecabでキーワード自動リンクを実装するのパクリです。
こんにちは、末永です。
今年もどうぞよろしくお願い致します。
Webサービスを開発していると、特定のキーワードを自動でURLリンクにする処理が必要になることがあると思います。今回は、このキーワード自動リンク機能を全文検索エンジンSennaを使って実装する方法を紹介したいと思います。
1. Sennaインストール
MeCabのインストールは必要ないので、こんな感じでインストールしてください。
$ ./configure --prefix=/usr --without-mecab $ make $ sudo make install
2. 辞書を作る
テキストファイルに、改行区切りでキーワードを記述したファイルkeyword.txtを作成します。
Wikipediaのタイトル一覧なんかを持ってくるのもいいでしょう。
gzipされたUTF-8なので、解凍&nkfでコンバートしましょう。
以下のコマンドを打ちます。
$ test/hatenapo keyword.dic ins < keyword.txt
3. キーワードリンクを確認
キーワードを付与する対象のarticle.txtというファイルを用意します。
2.と同じディレクトリで以下のように実行します。
$ test/hatenapo keyword.dic sel < article.txt
はてなキーワードがリンクされて出てきます!
問題点1: PHPじゃない…
SennaのPHPバインディングをid:rskyが作っているのですが、
sen_symへのインターフェースがない…
sen_symへのインターフェースがあればPHPから使えて、元記事の完パクリが出来たんだけどなあ。
問題点2: 文字コードがEUCのみ
hatenapo.cのsen_enc_euc_jpをsen_enc_utf8なんかに全て置換すればOK。
まとめ
パクリきれなかった。非常に残念…
トラックバック - http://d.hatena.ne.jp/tasukuchan/20080108/php_senna_keywordlink
リンク元
- 95 http://reader.livedoor.com/reader/
- 24 http://b.hatena.ne.jp/mattn/favorite
- 22 http://images.google.co.jp/imgres?imgurl=http://f.hatena.ne.jp/images/fotolife/t/tasukuchan/20080107/20080107213527.jpg&imgrefurl=http://d.hatena.ne.jp/tasukuchan/20080108/hiroyuki_yokoyama_takashi&h=450&w=301&sz=54&hl=ja&start=27&um=1&tbnid=5fhwyI4mlCCON
- 17 http://b.hatena.ne.jp/entry/http://labs.unoh.net/2008/01/keyword-autolink-using-php-and-mecab.html
- 17 http://www.google.com/reader/view/
- 13 http://fastladder.com/reader/
- 11 http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rlz=1T4GGIH_jaJP253JP253&q=php+自動リンク
- 10 http://d.hatena.ne.jp/
- 10 http://images.google.com/imgres?imgurl=http://f.hatena.ne.jp/images/fotolife/t/tasukuchan/20080107/20080107213527.jpg&imgrefurl=http://d.hatena.ne.jp/tasukuchan/20080108/hiroyuki_yokoyama_takashi&h=450&w=301&sz=54&hl=ja&start=1&tbnid=5fhwyI4mlCCONM:&tbnh=
- 9 http://209.85.175.104/search?q=cache:3dB7ljNm60sJ:d.hatena.ne.jp/tasukuchan/20071231/1199105717+softbank+flash+判別&hl=ja&ct=clnk&cd=9&gl=jp&lr=lang_ja&client=firefox-a


