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にしてくれる純正がおすすめ