pslaboが試したことの記録

はてなダイヤリーからはてなブログに引っ越してきました

この日記は現在実行中の減量記録を含む個人的なメモとして始めましたが、最近はコンピュータやガジェット、ハック、セキュリティネタのほうがメインになっております。

はてなダイヤリー時代はカテゴリ分けが適当だったのですが、これはそのうち直します。


アプリケーションのソースコードの頻出キーワードを探すためにmecabでの形態素解析を試す

古いアプリケーションプロジェクトをリファクタリングする際の予備調査として、ソースコードmecab にかけて形態素解析を行い、頻出キーワードを探すという、実用性があるともないともよくわからない方法を思いつきました。

grep みたいな方法で探すと、たとえば Length というキーワードで探したときに MaxLength や MinLength もヒットしてしまうため、Length 自体を抽出できません。

しかし形態素解析すれば MaxLength や MinLength と Length は区別されますので、Length だけをチェックできます。

とりあえず試行中の手順をメモとして残しておきます。

まず、こうすると、形態素解析した結果が手に入ります。

find . -type f -name '*.c' | xargs -n1 mecab >> mecab.txt
find . -type f -name '*.cc' | xargs -n1 mecab >> mecab.txt
find . -type f -name '*.h' | xargs -n1 mecab >> mecab.txt

mecab の出力結果は実際にやってみればわかるので省略。

この結果を次のように sort | uniq -c | sort -nr すれば頻出回数の多い順にキーワードが並びます。sort | uniq -c に時間がかかるので、できれば別の方法を使ってキーワードの頻出回数を集計したほうがよいでしょう。

sort mecab.txt | uniq -c | sort -nr > result.txt

ただし結果は記号も含めて形態素解析されてしまうのでノイズが多いことに注意が必要です。