はじめに
fasttext
最近、googleのTensorFlowだけじゃなくて、Facebookも機械学習のライブラリを出したみたいです。
早速試してみたいとね!
やりたいこと
と、いうことで、使って、テキスト分類にトライしてみたいと思います。
ここでは、ネガティブとポジティブを学習させて、twitterの発言やYammarのつぶやきを
ネガポジ判定を行うこと目標として、
- その時系列情報を可視化したい。
- ネガポジの発言者が属するクラスタの、組織のネガポジ度も可視化したい。
なんてこともやってみたいと思います。
環境構築
それでは、環境構築から始めていきましょう。
準備として、以下のことが必要です。
- fasttextのビルド
- mecabの構築
- 日本語を使う場合
- fasttext、mecabをpythonから使えるようにする
- この場合、自前でフルバージョンをビルドしているみたい。
本家から取得したfasttextより古いバージョンを使うことになるようだ。 - なので、本家でビルドして用意した学習モデルを、python側から使えないことに注意。
- この場合、自前でフルバージョンをビルドしているみたい。
fasttextのビルド
ここからリポジトリを取得して、READMEに書いてあるようにビルドする。
$ git clone https://github.com/facebookresearch/fastText.git
$ cd fastText
$ make
前提として、gccとg++がないとダメなので、もしない場合は、事前にインストールしておく。
mecabの構築
世の中、日本語を扱おうと思ったら、猫も杓子もmecabですね。
mecabのインストール
mecab-ipadic-NEologd辞書のインストール
デフォルトだと新しい単語に対応していません。
そこで、杓子定規にNEologd辞書を使うことにする。そして、日本語はこちら。
以下のようにすれば、辞書を導入できます。
$ git clone --depth 1 git@github.com:neologd/mecab-ipadic-neologd.git
$ cd mecab-ipadic-neologd
$ ./bin/install-mecab-ipadic-neologd -n -a
-a オプションを指定すると、辞書全部入り状態でインストールできる。
mecabと-neologdを試してみる
こんな風に使う。
$ mecab -d /usr/local/lib/mecab/dic/mecab-ipadic-neologd/
10日放送の「中居正広のミになる図書館」(テレビ朝日系)で、SMAPの中居正広が、篠原信一の過去の勘違いを明かす一幕があった。
10日 名詞,固有名詞,一般,*,*,*,10日,トオカ,トオカ
放送 名詞,サ変接続,*,*,*,*,放送,ホウソウ,ホーソー
の 助詞,連体化,*,*,*,*,の,ノ,ノ
「 記号,括弧開,*,*,*,*,「,「,「
中居正広のミになる図書館 名詞,固有名詞,一般,*,*,*,中居正広のミになる図書館,ナカイマサヒロノミニナルトショカン,ナカイ マサヒロノミニナルトショカン
」 記号,括弧閉,*,*,*,*,」,」,」
( 記号,括弧開,*,*,*,*,(,(,(
テレビ朝日 名詞,固有名詞,組織,*,*,*,テレビ朝日,テレビアサヒ,テレビアサヒ
系 名詞,接尾,一般,*,*,*,系,ケイ,ケイ
) 記号,括弧閉,*,*,*,*,),),)
で 助詞,格助詞,一般,*,*,*,で,デ,デ
、 記号,読点,*,*,*,*,、,、,、
SMAP 名詞,固有名詞,一般,*,*,*,SMAP,スマップ,スマップ
の 助詞,連体化,*,*,*,*,の,ノ,ノ
中居正広 名詞,固有名詞,人名,一般,*,*,中居正広,ナカイマサヒロ,ナカイマサヒロ
が 助詞,格助詞,一般,*,*,*,が,ガ,ガ
、 記号,読点,*,*,*,*,、,、,、
篠原信一 名詞,固有名詞,人名,一般,*,*,篠原信一,シノハラシンイチ,シノハラシンイチ
の 助詞,連体化,*,*,*,*,の,ノ,ノ
過去 名詞,副詞可能,*,*,*,*,過去,カコ,カコ
の 助詞,連体化,*,*,*,*,の,ノ,ノ
勘違い 名詞,サ変接続,*,*,*,*,勘違い,カンチガイ,カンチガイ
を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
明かす 動詞,自立,*,*,五段・サ行,基本形,明かす,アカス,アカス
一幕 名詞,一般,*,*,*,*,一幕,ヒトマク,ヒトマク
が 助詞,格助詞,一般,*,*,*,が,ガ,ガ
あっ 動詞,自立,*,*,五段・ラ行,連用タ接続,ある,アッ,アッ
た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
。 記号,句点,*,*,*,*,。,。,。
【中居正広のミになる図書館】という番組名が、分解されずに固有名詞として抽出できましたね。
さて、実際使うとなると、毎回辞書を指定するのはかったるい。
そこで以下のように、デフォルトで辞書を変更させちゃう。
$ sudo vi /etc/mecabrc
dicdir = /usr/lib/mecab/dic/mecab-ipadic-neologd
fasttext、mecabをpythonから使えるようにする
pipでインストール
pip install fasttext
pip install mecab-python3
冒頭でも触れましたが、このように導入したpythonのfasttextは、本家のものよりバージョンが古いです。
そのため、コマンドラインから学習させた学習モデルをpythonで取り込んで使うことはできません。
残念!
終わりに
今回は、fasttextを使ってテキストマイニングを粉うための環境構築について触れました。
次回は、テキストマイニングで日本語を扱うために行われる前処理について触れたいと思います。