logo

Ruby & Rails > 第28回 Rubyで始めよう! 形態素解析

CTC教育サービスはコラム「Ruby & Rails > 第28回 Rubyで始めよう! 形態素解析 」を公開しました。

###
こんにちは。 藺藤です。

最近「私たちが作っているWebサービスでも何か応用できないか」と気になっているものがあります。 それは「形態素解析」と呼ばれるものです。(*1)

形態素解析を行う実装は様々なものがあるようですが、今回はGem「natto」(*2)を使ってRubyプログラム上から形態素解析エンジン「MeCab」(*3)を利用する方法を説明します。

動作確認した環境は以下のとおりです。

•CentOS 7.0
•MeCab 0.996
•Ruby 2.3.1
•natto 1.1.0
初めに断っておきますと、申し訳ありませんがRubyコラムにも関わらず前半はRubyコードが全く出てきません。 ですが、後半の準備となる部分ですので読み飛ばさないで頂ければと思います。 それではさっそく始めましょう。


目次

•形態素解析とは
•MeCabのインストール
•MeCabを使って形態素解析
•nattoのインストール
•nattoを使って形態素解析

形態素解析とは
Wikipediaによると、形態素解析とは『文法的な情報の注記の無い自然言語のテキストデータ(文)から、対象言語の文法や、辞書と呼ばれる単語の品詞等の情報にもとづき、形態素(Morpheme, おおまかにいえば、言語で意味を持つ最小単位)の列に分割し、それぞれの形態素の品詞等を判別する作業』とのことです。(*1)

この説明だけではなんだか難しそうに思えますが、実際に例を見ると分かりやすいのではないでしょうか。 例えば、『最近「私たちが作っているWebサービスでも何か応用できないか」と気になっているものがあります。』という文は形態素解析によって次のように分割されます。

(元の文)
最近「私たちが作っているWebサービスでも何か応用できないか」と気になっているものがあります。
(解析結果)
最近 / 「 / 私 / たち / が / 作っ / て / いる / Web / サービス / で / も / 何 / か/ 応用 / でき / ない / か / 」 / と / 気 / に / なっ / て / いる / もの / が / あり / ます / 。与えられた文を、意味のある単位(品詞や記号、数値など)に分解する技術と呼ぶことができそうです。 形態素解析を行うことで、元の文の中からキーワードとなりそうな単語(Web / サービス / 応用)を取り出すことができています。 また、実はこの時点で「気 / に / なっ」の部分は「気 / に / なる」の変形であることも特定されています。

何だか、様々な応用ができそうな気がしてきませんか? すぐに思いつくだけでも、一番単純な応用例ですが「頻出する語彙を調べる」ことや、発展的な例としては「前後に出現する単語に基づき、文の意味解釈を行う」等ができそうです。 単語のペアの出現頻度を調べるのも良いかもしれません。(例えば、文章中にRubyとRailsは一緒に出現することが多いのか、等) また、文章の書き手の癖(例えば、「思います。」や「思いました。」、「思われます。」が多いか、等)を調べるのも面白そうですね。

この続きは以下をご覧ください
リンク

本プレスリリースは発表元企業よりご投稿いただいた情報を掲載しております。
お問い合わせにつきましては発表元企業までお願いいたします。