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
で検索し
を参考に
which mecab
でパスを確認
/usr/bin/mecab
になっているのを確認
vim ~/.bashrc
でファイルを開き
最終行まで
shit+g で移動
export MECABRC=/etc/mecabrc
を追記し保存
source ~/.bashrc
としたけどダメ
一度元にもどし
を参考に
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にしてくれる純正がおすすめ