fasttextとMecabとNeologd辞書でテキストマイニングを行うための環境構築手順
01
- 8月
2017
Posted By : boomin
fasttextとMecabとNeologd辞書でテキストマイニングを行うための環境構築手順

 

Advertisements

はじめに

 

fasttext

最近、googleのTensorFlowだけじゃなくて、Facebookも機械学習のライブラリを出したみたいです。
早速試してみたいとね!

 

Advertisements

やりたいこと

と、いうことで、使って、テキスト分類にトライしてみたいと思います。

fasttext
 

ここでは、ネガティブとポジティブを学習させて、twitterの発言やYammarのつぶやきを
ネガポジ判定を行うこと目標として、

  • その時系列情報を可視化したい。
  • ネガポジの発言者が属するクラスタの、組織のネガポジ度も可視化したい。

なんてこともやってみたいと思います。

 

環境構築

それでは、環境構築から始めていきましょう。
準備として、以下のことが必要です。

  1. fasttextのビルド
  2. mecabの構築
    • 日本語を使う場合
  3. 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を使ってテキストマイニングを粉うための環境構築について触れました。

次回は、テキストマイニングで日本語を扱うために行われる前処理について触れたいと思います。

 

Advertisements

コメントを残す