自動車を手放してから随分経ってバスや電車での移動にも慣れてきました。車に使っていたお金は他のことに使えるし、事故はしないし、移動中も仕事ができるしで、いいことばかりです。特に移動中はこうしてブログを書くにはうってつけの時間で、ハンドル握って考え事していていもまあ大したアイデアも浮かばないので、実際にこうして1文字タイプを進める方が有意義だと思っています。
昨年に引き続きまして、金城学院大学の市場調査論にて1コマお任せいただきまして、インターネットと市場調査という2つのキーワードで講義をさせていただきました。
「市場調査論」というタイトルですが、テレビも書籍も個人のブログであっても "タイトルで釣る" 時代に一見地味なようで講義にしようとするととても奥が深い世界でして、あれ?これ僕が講義してて大丈夫なんでしたっけ?となります。が、僕にお話をいただいている時点で市場調査におけるテクニカルな内容は期待されていないだろうということで、現在のインターネットを取り巻く環境だとか、自身で体験してきたことなんかをお伝えすることで、学生さんたちがこれから新しい発想を生み出すための材料にならないか、人生のどこかの瞬間に役に立てないか、ということで講義をしてきました。
今回の講義では、インターネットの世界が多様化してそれぞれのコミュニティが小さく・クローズドに向かっている状況で、情報を発信することで情報を集めるという考え方もできるよという内容をメインに(ちょっと無理やり感もあるのですが)Botや深層学習などの概要を合わせてお話しました。市場調査とマーケティングの間の内容(と思いたい)だったかと思います。
講義の後には全てのレポートに目を通すのですが、講義の冒頭で「この5月で40歳になりまして、みなさんよりもお親御さんに近いかもしれないですね。聞くの怖いけど」というお話をしましたところ、お父さんが43歳というレポートをいただきまして、理由はわかりませんが講師の武田先生とともにうな垂れていたところです。
今年も本当に貴重な機会をいただきまして講師の武田先生、ありがとうございました!感謝しております。また学生のみなさんお疲れ様でした。これからも素敵な学生生活を送られますことをお祈りしております!
次は、6月に三重大がありますので、また宜しくお願いいたします。
2016年5月23日月曜日
2016年5月11日水曜日
AWS EC2に日本語形態素解析システムMeCab(IPA辞書 + 新語辞書:mecab-ipadic-neologd)と日本語係り受け解析器J.DepPで日本語を処理する環境をつくる
LINE Bot API、Facebook Messenger Platform が公開されてIT業界は一気に Bot ブームですが、一番の特徴である「ユーザーとの会話をベースに様々なサービスを提供する」ことを実現するためには、少なからず日本語を解析する処理が必要になってきます。そこで今回は、AWS の EC2 に日本語を処理するための環境を構築します。
(mecab-ipadic-neologd をインストールする際にメモリに1.5G以上の空きがないとビルドが落ちてしまうため、EC2のSmall 以上のインスタンスで行ってください)
使用したインスタンスのイメージですが、『Amazon Linux AMI 2016.03.1 (HVM), SSD Volume Type - ami-29160d47』を使用しました。
インストールが正しく行われたかを動作確認します。この後にインストールする mecab-ipadic-neologd が出力する結果と比較するために、mecab-ipadic-neologd の公式サイトにあるサンプル文字列を使いました。番組名などが別の単語として扱われているのが分かります。
読みやすいようにコマンドを2行に分けていますが、実際は1行にして実行してください。
インストールの最後にIPA辞書との比較が表示され、インストールをするかの確認がされますので「yes」を入力します。
インストールが正しく行われたかを動作確認します。MeCab の -d パラメータで辞書を mecab-ipadic-neologd に指定しています。先ほどとは異なり、番組名などが1つの単語として扱われるようになりました。mecab-ipadic-neologd すごい。
読みやすいようにコマンドを2行に分けていますが、実際は1行にして実行してください。
MeCab で単語ごとに分かち書きを行えるようになりましたが、このままだと単語同士の関連がつかめないため、その係り受けを解析するためのソフトウェアが J.depP です。係り受の解析は、CaboCha が有名ですが、この記事を書いている時点では、J.depP の方も一度試してみようということで選択しています。
ソースからビルドしてインストールします。--with-postagger で mecab を指定、辞書は --with-mecab-dict でIPA(その他にJUMAN、NAIST-J、UNIが指定可能)を指定しています。
(mecab-ipadic-neologd をインストールする際にメモリに1.5G以上の空きがないとビルドが落ちてしまうため、EC2のSmall 以上のインスタンスで行ってください)
使用したインスタンスのイメージですが、『Amazon Linux AMI 2016.03.1 (HVM), SSD Volume Type - ami-29160d47』を使用しました。
管理者権限になる
インストールと設定は管理者権限で行いますので権限を取ります。
$sudo su -
MeCab - 日本語形態素解析システムのインストール
MeCabは、分かち書き(”私は日本人です” を ”私_は_日本人_です” と分解する)を行うためのものです。辞書には標準のIPA辞書に加えて、IPA辞書には含まれていない新しい単語(芸能人の名前やテレビ番組名など)に対応するために新語辞書 mecab-ipadic-neologd をインストールします。
MeCab:http://taku910.github.io/mecab/
まず、MeCab のインストールに必要なコンパイラなどのツールを準備します。既にインストール済みのものはスキップされますのでこのまま実行できます。
MeCab:http://taku910.github.io/mecab/
まず、MeCab のインストールに必要なコンパイラなどのツールを準備します。既にインストール済みのものはスキップされますのでこのまま実行できます。
#yum install -y gcc-c++ gcc-objc++ gcc41-c++ make
次に MeCab をソースからビルドしてインストールします。文字コードですが、UTF-8以外は使う予定がないので --enable-utf8-only を指定しています(他のコードを含まないためビルド後のバイナリサイズが小さくなる。公式サイトのこちらの記述より)が、このオプションは外しても大丈夫です。あと、デフォルトのキャラセットを --with-charset オプションでUTF-8にしています。(指定しないとEUCが使用される)
#cd /usr/local/src #wget https://mecab.googlecode.com/files/mecab-0.996.tar.gz #tar zxfv mecab-0.996.tar.gz #cd mecab-0.996 #./configure --enable-utf8-only --with-charset=utf8 #make #make install
IPA辞書のインストール
MeCab が標準辞書として推奨しているIPA辞書を MeCab 同様にソースからビルドしてインストールします。MeCabに合わせて文字コードには、UTF-8を指定しています。
#cd /usr/local/src/ #wget https://mecab.googlecode.com/files/mecab-ipadic-2.7.0-20070801.tar.gz #tar xvfz mecab-ipadic-2.7.0-20070801.tar.gz #cd mecab-ipadic-2.7.0-20070801 #./configure --with-mecab-config=/usr/local/bin/mecab-config --with-charset=utf8 #make #make install
インストールが正しく行われたかを動作確認します。この後にインストールする mecab-ipadic-neologd が出力する結果と比較するために、mecab-ipadic-neologd の公式サイトにあるサンプル文字列を使いました。番組名などが別の単語として扱われているのが分かります。
読みやすいようにコマンドを2行に分けていますが、実際は1行にして実行してください。
#echo "10日放送の「中居正広のミになる図書館」(テレビ朝日系)で、SMAPの中居正広が、篠原信一の過去の勘違いを明かす一幕があった。"
| mecab
10 名詞,数,*,*,*,*,*
日 名詞,接尾,助数詞,*,*,*,日,ニチ,ニチ
放送 名詞,サ変接続,*,*,*,*,放送,ホウソウ,ホーソー
の 助詞,連体化,*,*,*,*,の,ノ,ノ
「 記号,括弧開,*,*,*,*,「,「,「
中居 名詞,固有名詞,人名,姓,*,*,中居,ナカイ,ナカイ
正広 名詞,固有名詞,人名,名,*,*,正広,マサヒロ,マサヒロ
の 助詞,連体化,*,*,*,*,の,ノ,ノ
ミ 名詞,一般,*,*,*,*,ミ,ミ,ミ
に 助詞,格助詞,一般,*,*,*,に,ニ,ニ
なる 動詞,自立,*,*,五段・ラ行,基本形,なる,ナル,ナル
図書館 名詞,一般,*,*,*,*,図書館,トショカン,トショカン
」 記号,括弧閉,*,*,*,*,」,」,」
( 記号,括弧開,*,*,*,*,(,(,(
テレビ朝日 名詞,固有名詞,組織,*,*,*,テレビ朝日,テレビアサヒ,テレビアサヒ
系 名詞,接尾,一般,*,*,*,系,ケイ,ケイ
) 記号,括弧閉,*,*,*,*,),),)
で 助詞,格助詞,一般,*,*,*,で,デ,デ
、 記号,読点,*,*,*,*,、,、,、
SMAP 名詞,固有名詞,組織,*,*,*,*
の 助詞,連体化,*,*,*,*,の,ノ,ノ
中居 名詞,固有名詞,人名,姓,*,*,中居,ナカイ,ナカイ
正広 名詞,固有名詞,人名,名,*,*,正広,マサヒロ,マサヒロ
が 助詞,格助詞,一般,*,*,*,が,ガ,ガ
、 記号,読点,*,*,*,*,、,、,、
篠原 名詞,固有名詞,人名,姓,*,*,篠原,シノハラ,シノハラ
信一 名詞,固有名詞,人名,名,*,*,信一,シンイチ,シンイチ
の 助詞,連体化,*,*,*,*,の,ノ,ノ
過去 名詞,副詞可能,*,*,*,*,過去,カコ,カコ
の 助詞,連体化,*,*,*,*,の,ノ,ノ
勘違い 名詞,サ変接続,*,*,*,*,勘違い,カンチガイ,カンチガイ
を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
明かす 動詞,自立,*,*,五段・サ行,基本形,明かす,アカス,アカス
一幕 名詞,一般,*,*,*,*,一幕,ヒトマク,ヒトマク
が 助詞,格助詞,一般,*,*,*,が,ガ,ガ
あっ 動詞,自立,*,*,五段・ラ行,連用タ接続,ある,アッ,アッ
た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
。 記号,句点,*,*,*,*,。,。,。
新語辞書 mecab-ipadic-neologd のインストール
この新語辞書 mecab-ipadic-neologd をインストールすることで、IPA辞書には含まれていない新しい単語に対応することができるようになります。例えば、「Apple Watch」は、IPA辞書だと「Apple」と「Watch」という2つの単語として処理されますが、mecab-ipadic-neologd を使うことで「Apple Watch」という1つの名詞として扱われるようになります。いや、ほんとに素晴らしい辞書です。
mecab-ipadic-neologd:http://diary.overlasting.net/2015-03-13-1.html
mecab-ipadic-neologd のインストールに必要なツールを準備します。既にインストール済みのものはスキップされますのでこのまま実行できます。
IPA辞書同様に mecab-ipadic-neologd をビルドしてインストールします。
mecab-ipadic-neologd:http://diary.overlasting.net/2015-03-13-1.html
mecab-ipadic-neologd のインストールに必要なツールを準備します。既にインストール済みのものはスキップされますのでこのまま実行できます。
#yum install git patch
#cd /usr/local/src/ #mkdir neologd #cd neologd #git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git #cd mecab-ipadic-neologd #./bin/install-mecab-ipadic-neologd -n
〜略〜
default system dictionary | mecab-ipadic-NEologd
陸奥 守 吉行 | 陸奥守吉行
アクリル 樹脂 | アクリル樹脂
敷居 が 高い | 敷居が高い
ゲス の 極み 乙女 。 | ゲスの極み乙女。
真木 蔵人 | 真木蔵人
恋 の かけ ら | 恋のかけら
金 スマ | 金スマ
マイク 真木 | マイク真木
南越谷 駅 | 南越谷駅
[test-mecab-ipadic-NEologd] : Finish..
[install-mecab-ipadic-NEologd] : Please check the list of differences in the upper part.
[install-mecab-ipadic-NEologd] : Do you want to install mecab-ipadic-NEologd? Type yes or no.
yes
インストールが正しく行われたかを動作確認します。MeCab の -d パラメータで辞書を mecab-ipadic-neologd に指定しています。先ほどとは異なり、番組名などが1つの単語として扱われるようになりました。mecab-ipadic-neologd すごい。
読みやすいようにコマンドを2行に分けていますが、実際は1行にして実行してください。
#echo "10日放送の「中居正広のミになる図書館」(テレビ朝日系)で、SMAPの中居正広が、篠原信一の過去の勘違いを明かす一幕があった。"
| mecab -d /usr/local/lib/mecab/dic/mecab-ipadic-neologd
10日 名詞,固有名詞,一般,*,*,*,10日,トオカ,トオカ 放送 名詞,サ変接続,*,*,*,*,放送,ホウソウ,ホーソー の 助詞,連体化,*,*,*,*,の,ノ,ノ 「 記号,括弧開,*,*,*,*,「,「,「 中居正広のミになる図書館 名詞,固有名詞,一般,*,*,*,中居正広のミになる図書館,ナカイマサヒロノミニナルトショカン,ナカイマサヒロノミニナルトショカン 」 記号,括弧閉,*,*,*,*,」,」,」 ( 記号,括弧開,*,*,*,*,(,(,( テレビ朝日 名詞,固有名詞,組織,*,*,*,テレビ朝日,テレビアサヒ,テレビアサヒ 系 名詞,接尾,一般,*,*,*,系,ケイ,ケイ ) 記号,括弧閉,*,*,*,*,),),) で 助詞,格助詞,一般,*,*,*,で,デ,デ 、 記号,読点,*,*,*,*,、,、,、 SMAP 名詞,固有名詞,人名,一般,*,*,SMAP,スマップ,スマップ の 助詞,連体化,*,*,*,*,の,ノ,ノ 中居正広 名詞,固有名詞,人名,一般,*,*,中居正広,ナカイマサヒロ,ナカイマサヒロ が 助詞,格助詞,一般,*,*,*,が,ガ,ガ 、 記号,読点,*,*,*,*,、,、,、 篠原信一 名詞,固有名詞,人名,一般,*,*,篠原信一,シノハラシンイチ,シノハラシンイチ の 助詞,連体化,*,*,*,*,の,ノ,ノ 過去 名詞,副詞可能,*,*,*,*,過去,カコ,カコ の 助詞,連体化,*,*,*,*,の,ノ,ノ 勘違い 名詞,サ変接続,*,*,*,*,勘違い,カンチガイ,カンチガイ を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ 明かす 動詞,自立,*,*,五段・サ行,基本形,明かす,アカス,アカス 一幕 名詞,一般,*,*,*,*,一幕,ヒトマク,ヒトマク が 助詞,格助詞,一般,*,*,*,が,ガ,ガ あっ 動詞,自立,*,*,五段・ラ行,連用タ接続,ある,アッ,アッ た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ 。 記号,句点,*,*,*,*,。,。,。
J.depP - 日本語係り受け解析器のインストール
MeCab で単語ごとに分かち書きを行えるようになりましたが、このままだと単語同士の関連がつかめないため、その係り受けを解析するためのソフトウェアが J.depP です。係り受の解析は、CaboCha が有名ですが、この記事を書いている時点では、J.depP の方も一度試してみようということで選択しています。#cd /usr/local/src/ #wget http://www.tkl.iis.u-tokyo.ac.jp/~ynaga/jdepp/jdepp-latest.tar.gz #tar xzf jdepp-latest.tar.gz #cd jdepp-2015-10-05/ #./configure --with-postagger=mecab --with-mecab-dict=IPA #make model #make install
ビルド中に warnning などが表示されますが、そのまま通っていきます。最後にインストールが正しく行われたかを動作確認します。
読みやすいようにコマンドを3行に分けていますが、実際は1行にして実行してください。
#echo "10日放送の「中居正広のミになる図書館」(テレビ朝日系)で、SMAPの中居正広が、篠原信一の過去の勘違いを明かす一幕があった。"
| mecab -d /usr/local/lib/mecab/dic/mecab-ipadic-neologd
| jdepp
(input: STDIN [-I 0]) # S-ID: 1; J.DepP * 0 1D 10日 名詞,固有名詞,一般,*,*,*,10日,トオカ,トオカ 放送 名詞,サ変接続,*,*,*,*,放送,ホウソウ,ホーソー の 助詞,連体化,*,*,*,*,の,ノ,ノ * 1 9D 「 記号,括弧開,*,*,*,*,「,「,「 中居正広のミになる図書館 名詞,固有名詞,一般,*,*,*,中居正広のミになる図書館,ナカイマサヒロノミニナルトショカン,ナカイマサヒロノミニナルトショカン 」 記号,括弧閉,*,*,*,*,」,」,」 ( 記号,括弧開,*,*,*,*,(,(,( テレビ朝日 名詞,固有名詞,組織,*,*,*,テレビ朝日,テレビアサヒ,テレビアサヒ 系 名詞,接尾,一般,*,*,*,系,ケイ,ケイ ) 記号,括弧閉,*,*,*,*,),),) で 助詞,格助詞,一般,*,*,*,で,デ,デ 、 記号,読点,*,*,*,*,、,、,、 * 2 3D SMAP 名詞,固有名詞,人名,一般,*,*,SMAP,スマップ,スマップ の 助詞,連体化,*,*,*,*,の,ノ,ノ * 3 9D 中居正広 名詞,固有名詞,人名,一般,*,*,中居正広,ナカイマサヒロ,ナカイマサヒロ が 助詞,格助詞,一般,*,*,*,が,ガ,ガ 、 記号,読点,*,*,*,*,、,、,、 * 4 5D 篠原信一 名詞,固有名詞,人名,一般,*,*,篠原信一,シノハラシンイチ,シノハラシンイチ の 助詞,連体化,*,*,*,*,の,ノ,ノ * 5 6D 過去 名詞,副詞可能,*,*,*,*,過去,カコ,カコ の 助詞,連体化,*,*,*,*,の,ノ,ノ * 6 7D 勘違い 名詞,サ変接続,*,*,*,*,勘違い,カンチガイ,カンチガイ を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ * 7 8D 明かす 動詞,自立,*,*,五段・サ行,基本形,明かす,アカス,アカス * 8 9D 一幕 名詞,一般,*,*,*,*,一幕,ヒトマク,ヒトマク が 助詞,格助詞,一般,*,*,*,が,ガ,ガ * 9 -1D あっ 動詞,自立,*,*,五段・ラ行,連用タ接続,ある,アッ,アッ た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ 。 記号,句点,*,*,*,*,。,。,。
こうしたベースの環境もいずれはクラウドなどで提供されるでしょうし、既に形態素解析や日本語を受けて日本語の返答を返すチャットBot APIなども登場していますが、独自のロジックを組みたいというニーズも少なからずあると思いますので、そのようなケースにおいて環境構築に費やす時間が少しでも削減されれば幸いです。
登録:
投稿 (Atom)