1. TOP
  2. ブログ
  3. 形態素解析について

形態素解析について

車の買取価格を提示してくれるチャットbot作成、第3弾。今回は形態素解析についてです。

形態素解析とは、「車種はトヨタのプリウスです」といった入力文を品詞毎に分類し、

車種: 名詞
は: 助詞
トヨタ: 名詞
の: 助詞
プリウス: 名詞
です: 助動詞

という風にパーツごとにラベルをつけてくれるツールです。つまり、これを使えば、チャットbotが受け取った情報を簡単に解析できるわけです。
形態素解析ツールにはどのようなものがあるのでしょうか?

おおまかにわけて、

  • ウェブサービスとして利用できるもの
  • 呼び出し元のプログラムと同じコンピューターに設置するもの

の2種類があります。

前者には、Yahoo! Japanが運営する「Yahoo!形態素解析API」や、gooラボが提供するもの、NTTドコモが提供するものがありますが、いずれも商用利用は要問合せとなっています。

Web API呼び出しではなくサーバー内で利用する後者のタイプとしては、

  • MeCab(定番ツールです)http://taku910.github.io/mecab/
  • Juman++(表記の揺れを代表表現に置き換える機能がある)http://nlp.ist.i.kyoto-u.ac.jp/index.php?JUMAN++
  • Janome(MeCabと同等の結果が得られるPythonモジュール)http://mocobeta.github.io/janome/

などがあります。今回はPythonから利用しやすいこから、Janomeを利用することにします。サーバーにJanomeのモジュールをインストールしておきます

sudo pip install janome

これでJanomeを利用する準備は完了です。

下記のプログラムをtest.pyとして保存して、サーバーで走らせてみましょう。

import requests
from janome.tokenizer import Tokenizer

phrase = u’車種はトヨタのプリウスです’
t = Tokenizer()
for token in t.tokenize(phrase):
print(token.surface + ‘:’ + token.part_of_speech)

python test.pyで下記のような結果が表示されるはずです。

車種:名詞,一般,,
は:助詞,係助詞,,
トヨタ:名詞,固有名詞,組織,*
の:助詞,連体化,,
プリウス:名詞,一般,,
です:助動詞,,,*

形態素解析が使えるようになったので、これで利用者の問い合わせから、車種や色の情報を簡単に抽出することができます。例えば、

「車種を教えてください」

という質問をbotが返したときに利用者が入力した内容を解析し、名詞の部分を取り出せば、それが車種の情報を推測することができます。このようにして車種、年式、走行距離、色の情報を収集できるようになったら、いよいよ機械学習にとりかかります。

Error, group does not exist! Check your syntax! (ID: 1)

    カテゴリ一覧

    PAGE TOP