形態素解析で検索キーワード
学生向けに来る就職求人の情報をまとめているが、この入力データからキーワードを抽出したい。
形態素解析すれば手間が省けるだろうとのことで、MeCabを試してみる。
- MeCab (和布蕪): Yet Another Part-of-Speech and Morphological Analyzer
||平均的に ChaSen, Juman, KAKASIより高速に動作- ウノウラボ Unoh Labs: PHPとMecabでキーワード自動リンクを実装する
- クデラボ -KudeLab- » PHPでMeCabを使って形態素解析をするときのメモ
||proc_open でコマンド実行 - php_mecab-0.3.0: 某所より引っ越し – 讃容日記
- MeCab extension php_mecab-0.2.0 – Page2
- MeCabで形態素解析してみた [PHP, 開発日記] – Programming Magic
- Webプログラミングの情報をまとめるブログ » Blog Archive » PHP+Mecabをさくらレンタルサーバーで実行
- pblo» Blog Archive » phpとmecabの連携
- mecab + PHP で形態素解析(出現頻度) – 真夜中のプログラミングTips
- PHPで形態素解析エンジンmecabの使い方
- MeCabを使ってマルコフ連鎖 – sugarbabe335
- 自分のブログの索引の作り方…試行錯誤 – ザリガニが見ていた…。
- MeCab抽出からはてなキーワードへ移行
- ウノウラボ Unoh Labs: PHPとMecabでキーワード自動リンクを実装する
- Sen – 日本語形態素解析システム
||C++ で開発されているMeCabをJavaに移植
php から使える拡張もあるようだが、まずはコマンドラインで実行してみた。結果は、以下の感じ。
$ cat 2009data.html | dehtml | mecab | sort | uniq -c | sort -n -r | grep ‘名詞’ | grep -v ‘数\|地域\|接尾\|接頭\|代名詞\|非自立’
432 / 名詞,サ変接続,*,*,*,*,* 313 - 名詞,サ変接続,*,*,*,*,* 249 県 名詞,一般,*,*,*,*,県,ケン,ケン 241 株式会社 名詞,一般,*,*,*,*,株式会社,カブシキガイシャ,カブシキガイシャ 214 _ 名詞,サ変接続,*,*,*,*,* 140 推薦 名詞,サ変接続,*,*,*,*,推薦,スイセン,スイセン 135 学校 名詞,一般,*,*,*,*,学校,ガッコウ,ガッコー 130 開発 名詞,サ変接続,*,*,*,*,開発,カイハツ,カイハツ 123 機器 名詞,一般,*,*,*,*,機器,キキ,キキ 121 応募 名詞,サ変接続,*,*,*,*,応募,オウボ,オーボ 112 自由 名詞,形容動詞語幹,*,*,*,*,自由,ジユウ,ジユー 98 設計 名詞,サ変接続,*,*,*,*,設計,セッケイ,セッケイ 98 製造 名詞,サ変接続,*,*,*,*,製造,セイゾウ,セイゾー 83 販売 名詞,サ変接続,*,*,*,*,販売,ハンバイ,ハンバイ 79 システム 名詞,一般,*,*,*,*,システム,システム,システム 73 機械 名詞,一般,*,*,*,*,機械,キカイ,キカイ 68 . 名詞,サ変接続,*,*,*,*,* 64 関連 名詞,サ変接続,*,*,*,*,関連,カンレン,カンレン 53 pdf 名詞,一般,*,*,*,*,* 53 PDF 名詞,一般,*,*,*,*,* 50 電子 名詞,一般,*,*,*,*,電子,デンシ,デンシ 46 自動車 名詞,一般,*,*,*,*,自動車,ジドウシャ,ジドーシャ 43 事業 名詞,一般,*,*,*,*,事業,ジギョウ,ジギョー 39 電気 名詞,一般,*,*,*,*,電気,デンキ,デンキ ....
概ね妥当そうだが、記号のようなものも名詞として検出されてしまっている。この箇所は半角カナが使われていたりするのかも?
[追記]
って、上位2件の「/」「-」は単なるアスキーのスラッシュとマイナスだった。なぜこれが名詞…??
[追記]
試すとこれらの記号はやはり名詞扱いになっていた。むー、そういうスタンスのものですか。
$ echo / \( \) – , . | mecab
/ 名詞,サ変接続,*,*,*,*,* ( 名詞,サ変接続,*,*,*,*,* ) 名詞,サ変接続,*,*,*,*,* - 名詞,サ変接続,*,*,*,*,* , 名詞,サ変接続,*,*,*,*,* . 名詞,サ変接続,*,*,*,*,* EOS
同じように半角記号で困っている方が↓。
前処理として、半角記号を全角に置き換えないといけないんでしょうか…。
[追記]
記号の全角変換は、php の mb_convert_kana() を使えば可能のようだ。
$ cat 2009data.html | php -r ‘print mb_convert_kana(file_get_contents(“php://stdin”), “A”);’| dehtml | mecab | sort | uniq -c | sort -n -r | grep ‘名詞’ | grep -v ‘数\|地域\|接尾\|接頭\|代名詞\|非自立’
249 県 名詞,一般,*,*,*,*,県,ケン,ケン 241 株式会社 名詞,一般,*,*,*,*,株式会社,カブシキガイシャ,カブシキガイシャ 140 推薦 名詞,サ変接続,*,*,*,*,推薦,スイセン,スイセン 135 学校 名詞,一般,*,*,*,*,学校,ガッコウ,ガッコー 130 開発 名詞,サ変接続,*,*,*,*,開発,カイハツ,カイハツ 123 機器 名詞,一般,*,*,*,*,機器,キキ,キキ ....
あとは、NGというか不要な語を登録できるようにして、それを除外表示するようにしておけばよさそう。