Mecab と Word2Vec

Mecab と Word2Vec

Mecab と Word2Vec で自然言語解析ができる

スクレイピング結果から類似語を学習させる

Mecab は
日本語の形態素解析システム

日本語テキスト分析で
辞書データを元に単語を分割し
自動的に品詞分類する

インストールは

sudo apt install mecab
sudo apt install libmecab-dev 
 sudo apt install mecab-ipadic-utf8 

でインストール

mecab


mecab を起動できる

これで
すもももももももものうち
と入力すると

すもも	名詞,一般,*,*,*,*,すもも,スモモ,スモモ
も	助詞,係助詞,*,*,*,*,も,モ,モ
もも	名詞,一般,*,*,*,*,もも,モモ,モモ
も	助詞,係助詞,*,*,*,*,も,モ,モ
もも	名詞,一般,*,*,*,*,もも,モモ,モモ
の	助詞,連体化,*,*,*,*,の,ノ,ノ
うち	名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ
EOS

というように品詞分類できる

次に標準のIPA辞書だと固有名詞に弱いので
拡張辞書をインストール

git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git
cd mecab-ipadic-neologd/
sudo ./bin/install-mecab-ipadic-neologd 

を実行し
yes を入力すればインストールできる

なお
–depth 1 をつかうことで
直近の履歴のみ clone できる

【GIT】非常に重たいrepositoryをcloneする方法

を参考に

次に python の mecab ライブラリーをインストール

cd -
pip3 install mecab-python3

cd –
とすると1つ前のディレクトリに戻ることができる

今回は cd で git clone したディレクトリに移動していたので使用

次に python でmecab による品詞分類コードの実装

import Mecab

でライブラリをインポート

Mecab.Target() でインスタンスを生成

m = Mecab.Target()

あとは解析

vim sumomo.py

でファイルを作成

import MeCab
m=MeCab.Tagger()

print(m.parse("すもももももももものうち"))

とすると

Failed initializing MeCab. Please see the README for possible solutions:

    https://github.com/SamuraiT/mecab-python3#common-issues

If you are still having trouble, please file an issue here, and include the
ERROR DETAILS below:

    https://github.com/SamuraiT/mecab-python3/issues

issueを英語で書く必要はありません。

------------------- ERROR DETAILS ------------------------
arguments: 
error message: [ifs] no such file or directory: /usr/local/etc/mecabrc
----------------------------------------------------------
Traceback (most recent call last):
  File "sumomo.py", line 2, in <module>
    m=MeCab.Tagger()
  File "/home/snowpool/anaconda3/lib/python3.6/site-packages/MeCab/__init__.py", line 124, in __init__
    super(Tagger, self).__init__(args)
RuntimeError
snowpool@snowpool-Prime-Series:~/scraping$ vim sumomo.py
snowpool@snowpool-Prime-Series:~/scraping$ python sumomo.py 

Failed initializing MeCab. Please see the README for possible solutions:

    https://github.com/SamuraiT/mecab-python3#common-issues

If you are still having trouble, please file an issue here, and include the
ERROR DETAILS below:

    https://github.com/SamuraiT/mecab-python3/issues

issueを英語で書く必要はありません。

------------------- ERROR DETAILS ------------------------
arguments: 
error message: [ifs] no such file or directory: /usr/local/etc/mecabrc
----------------------------------------------------------
Traceback (most recent call last):
  File "sumomo.py", line 3, in <module>
    m=MeCab.Tagger()
  File "/home/snowpool/anaconda3/lib/python3.6/site-packages/MeCab/__init__.py", line 124, in __init__
    super(Tagger, self).__init__(args)
RuntimeError

となってしまう

Failed initializing MeCab. Please see the README for possible solutions: https://github.com/SamuraiT/mecab-python3#common-issues
で検索し

MeCabをローカルにインストールして躓いた時に見て欲しい

を参考に

which mecab

でパスを確認

/usr/bin/mecab

になっているのを確認

vim ~/.bashrc 

でファイルを開き
最終行まで
shit+g で移動

export MECABRC=/etc/mecabrc

を追記し保存

source ~/.bashrc 

としたけどダメ

一度元にもどし

mecab-python3 1.0.3

を参考に

pip install unidic-lite

【Ubuntu】MeCabとNEologdをインストールしてPythonで形態素解析する

を参考に

echo `mecab-config --dicdir`"/mecab-ipadic-neologd"

でディレクトリパスを確認すると

/usr/lib/mecab/dic/mecab-ipadic-neologd

となる

Ubuntu 16.04 LTS で MeCab を NEologd とともにインストールする

を参考に

sudo vim /etc/mecabrc 

でファイルを開き

6行目の

dicdir = /var/lib/mecab/dic/debian

の部分を

;dicdir = /var/lib/mecab/dic/debian
dicdir = /usr/lib/mecab/dic/mecab-ipadic-neologd

として保存

これで

echo "幽☆遊☆白書" | mecab

を実行すると

幽☆遊☆白書	名詞,固有名詞,一般,*,*,*,幽☆遊☆白書,ユウユウハクショ,ユウユウハクショ
EOS

となり分解できているのがわかる

なお辞書の設定をしないと

幽	形容詞,自立,*,*,形容詞・アウオ段,ガル接続,幽い,カソケ,カソケ
☆	記号,一般,*,*,*,*,☆,☆,☆
遊	名詞,固有名詞,組織,*,*,*,*
☆	記号,一般,*,*,*,*,☆,☆,☆
白書	名詞,一般,*,*,*,*,白書,ハクショ,ハクショ
EOS

というようになった

これで辞書が使えるようになったので

python sumomo.py 

を実行すると

すもも	スモモ	スモモ	李	名詞-普通名詞-一般			0
も	モ	モ	も	助詞-係助詞			
もも	モモ	モモ	桃	名詞-普通名詞-一般			0
も	モ	モ	も	助詞-係助詞			
もも	モモ	モモ	桃	名詞-普通名詞-一般			0
の	ノ	ノ	の	助詞-格助詞			
うち	ウチ	ウチ	内	名詞-普通名詞-副詞可能			0
EOS

というように分類できているのがわかる

参考書籍は

なお kindle Fire でみるときには
拡大しなくても見れるので
10インチがおすすめ

カバーがほしい場合には
マグネット機能で閉じたらOFFにしてくれる純正がおすすめ