■形態素解析を試してみた
結局、MeCabを採用して形態素解析を試してみた。
で、解析結果からキーワードに使えそうな単語を抽出してみたのがこれ↓
GIOS CANTARE nbsp 最近 雨 今日 雨 降る ジャマイカ 心配 幸運 雨 降っ Y sRoad 相棒 連れ帰り 私 今 安物 MTB 乗っ 完全 初心者 店員 ブレーキ 方 ギア チェンジ 注意 事項 最後 乗降 車 ワンポイント アドバイス 基本 的 豆 知識 的 教え 非常 親切 整備 担当 方 親切 親しみ 方 店 初乗り 家 車 通り 激しい 道 路 駐 激しい 道 ビビリ 私 最初 車道 走る 途中 自転車 専用 車線 設置 路 駐 少ない 広め 通り 気持ちよく 乗れ 分類 的 ロード バイク 入っ ギア クロス バイク 的 セッティング
これは5月30日の日記から抽出したキーワードの一部です。ちなみに、検索結果優先順位判定を行うために、重複単語の除外はしてません。
どの単語をキーワードとするかは「ただきちロジック」ですが、もっとまじめに作らないといけない雰囲気をかもし出してますね。
抜き出す単語の品詞種別(いわゆる名詞の中にもいくつか内部的な種別を持ってる)をあらかじめ決めておいて、それ以外を捨ててるだけなんですけど。
後は固有名詞を救う仕組みを用意しておけば、それなりに使える仕組みになるかな。あ、タグを組み合わせればいいのか。
んで、検索キーワードのほうも同じロジックで形態素解析をすれば、それなりに面白い検索結果が得られるかも。
検索機能にはMySQLのFULLTEXT機能を使用する想定ですが、このFULLTEXTインデックスをテーブルにはるとそのテーブルのINSERT/UPDATEが遅くなるとか。
ただ、このサイトのように極めて更新頻度の低いデータに関していえば、性能低下は実感できず。
過去記事を含めて一気に形態素解析&UPDATEをかけてみたけれども、2,3秒で完了した。とは言っても150件程度ですがね。MeCabが優秀なのかサーバリソースがありあまっているだけなのか…?
また、検索性能ですが、他サイトの情報によると通常の部分一致検索に比べて2倍〜100倍(!)の性能向上が期待できるとか。
検索機能は未実装なのでまだ実証はできてないけど。
■形態素解析を組み込んでみよう
記事の全文検索のようなことが出来る機能を実装してみようと思ってみたり。
そうなってくるとやりたいのが題の形態素解析。
要は、文章を最小の単語にまで分解するってこと。
英文の場合は基本的にはスペースで単語が区切られているので分かりやすいのだけど、日本語は単純ではない。
当然ながら私のような素人が一朝一夕で実装できるようなものではないはず。
ということで、やっぱりここは外部ツールに頼ってみましょう。
コマンドラインで実行できて、品詞とともに出力されるやつが希望!
何を使おうかなぁ。
今のところ「茶セン」が有力・・・ってセンの字が出てこねぇ!
追記:MeCabの方がいいかも?
▼メモ
http://php.plus-server.net/function.proc-open.html
明日は天気もよさそうだし、CANTAREを初回点検に持っていこうかな。
走行距離も目安といわれていた100Kmをいつの間にか超えてたし。