MeCabを使って日本語の単語数を数える。Android版「何色?」アプリをリリースしました。ソフトウェア開発技術者募集デザイナー(短時間社員)MeCabを使って日本語の単語数を数える。公開日:2016/01/18最終更新日:2017/12/27カテゴリー:雑記タグ:MeCab/形態素解析/日本語処理こんにちは、高木です。最近、日本語の単語数を数える方法について検討する機会がありました。その検討結果について書いておきます。検討といっても、実際にはほどんど秒殺でした。した機能をスクラッチで実装するのは気が遠くなりそうですが、既存のツールやライブラリを使うのであれば難なくできます。ヨーロッパ語の場合、単語数は概ねスペース等で区切られたアルファベット列を数えれば済みます。厳密なことをいえば、ハイフンを使って2行にまたがる単語の処理や、アポストロフィを用いた省略形の処理、数をどう扱うかなどに配慮する必要はありますが......。日本語の場合、特殊なケースを除けば分かち書きされていません。よって、漢字仮名交じり文を見て単語数を数えるのは、文を単語に分割する作業が大部分を占めます。いうときに役に立つのが形態素解析ツールです。形態素解析を行うウェブサービスもありますが、いつでも確実に動作させるためには、外部サービスに依存するより自分のシステムに組み込んでしまうほうが確実です。形態素解析ツールは昔からいくつかあり、中でもChasenやMeCabが有名です。分かち書きをしたいだけであれば、kakasiというツールも使えると思います。具体的は方法を紹介することにしましょう。ここではMecabを使うことにします。-Owakatiをいうコマンドを打ち、標準入力から解析対象を文字列を与えれば、分かち書きされた結果が標準出力に出力されます。昨日、天王寺に買い物に行きました。-Owakati昨日、天王寺に買い物に行きました。結果から句読点などの記号を取り除き、空白で区切られた文字列の数を数えれば単語数を求めることができそうです。若干注意が必要なこともあります。「MeCabを調査した。」という文を分かち書きすると、次のようになります。MeCabを調査した。12MeCabを調査した。中学校で習った国文法では、「調査する」はサ行変格活用の動詞なので1語に数えるべきです。MeCabでは、「調査」という名詞と「し」というサ変動詞「する」の連用形と解釈されてしまいます。日本語の文法については専門家の間でも意見がわかれるところがあります。MeCabの解釈が間違いというわけではありませんが、どんな流儀に従うかによって、ある程度の調整が必要なことがわかります。このような細かい調整を行う場合、単に分かち書きするだけでは不十分です。ここからがMeCabの本領発揮です。コマンドプロンプトからオプション無しで単にmecabとだけ入力すれば次のような結果を得ることができます。MeCabを調査した。助動詞,*,*,*,特殊・タ,基本形,た,タ,タ。記号,句点,*,*,*,*,。