すみません。。。タイトルに何のひねりも無くて(笑)MeCab(めかぶ)とは、オープンソースの形態素解析エンジンで、日本語入力の第一人者である工藤拓氏によって開発されました。この名称は開発者の好物「和布蕪(めかぶ)」から取られています。何やら怪しい雰囲気を醸し出していますが、そんなことありません!実は世界中の自然言語処理で広く使われているソフトウェアなんです。
「自然言語処理」 と 「形態素解析」
Twitter で呟かれている言葉にどんなものが含まれているかとか、分析した例はたくさんありますよね。(※1)
英語の文章は、空白で単語が区切られているので抽出は簡単です。しかし日本語の場合はちょっと面倒です。日本語は英語のように単語を空白で区切らないので、単語の境界(切れ目)を判別するのが難しい です。
特に「つぶやき」はビジネス文書などとは違い、日常会話に近い文体が使われます。また、同じ意味を持つ言葉でも人によって使い方が異なります。例えば 「サーバー」 と 「サーバ」 とか、「バイオリン」 と 「ヴァイオリン」 など、挙げればきりがありません。
(IT用語辞典バイナリ – 表記ゆれ)
ところで、人間が日常的に使っている言葉を 「自然言語」 と呼びます。これをコンピュータで処理することを 「自然言語処理」 といいます。
「自然言語処理」を行うために 「形態素」 という単位へ分割することを 「形態素解析」 といいます。
形態素とは元々言語学の用語で、意味を持つ最小単位 のことです。自然言語処理を行うにあたり、単語はこの単位で区切られる必要があります。なぜこの分割が重要かというと、以下の文章を解釈してみてください。
「ここではきものをぬいでください」
これは以下のように解釈することが可能です。
「ここで履物を脱いでください」
「ここでは着物を脱いでください」
(形態素解析の実例より)
言葉を区切る位置によって意味が全く異なります。また、文章を意味のある単語へ分割することの重要性をお分かりいただけるかと思います。形態素解析は 日本語処理 を行う上での第一段階となっています。
(参考:自然言語(日本語)処理 )
MeCab は オープンソースの形態素解析エンジン で、分割規則を定義した辞書を併用 しています。某大手メーカーの かな漢字変換 等にも応用されており、単独での使用はもちろん、C/C++、Python、Java、R などへ組み込んで使うこともできます。
※1 Twitter の解析例
・Rを使った解析例
・あなたのつぶやきを分析するサービス14選
などいろいろあります。
MeCab をインストールしてみよう!!
本記事は、日本サード・パーティ株式会社(JTP)にて、執筆しています。
JTPは約30年に渡り、様々なベンダーのサポートを行う企業です。 設計、構築、開発、運用、ヘルプデスク、トレーニングなど、ITのライフサイクルを通して技術サービスを提供しています。
中でも、JTP の IT教育サービスでは、クラウド、Hadoop関連技術など、OSS の最新技術 トレーニングを数多く実施しています。
JTPでは、経験豊富なエンジニア、講師陣により、多くの技術記事を公開しております。
▼JTPの情報メディア「JTP Technology Port」はこちらから!