アプリケーションのソースコードの頻出キーワードを探すために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
ただし結果は記号も含めて形態素解析されてしまうのでノイズが多いことに注意が必要です。