Mecab と Word2Vec

Mecab と Word2Vec

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

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

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

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

インストールは

1
2
3
sudo apt install mecab
sudo apt install libmecab-dev
 sudo apt install mecab-ipadic-utf8

でインストール

1
mecab


mecab を起動できる

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

1
2
3
4
5
6
7
8
すもも 名詞,一般,*,*,*,*,すもも,スモモ,スモモ
も   助詞,係助詞,*,*,*,*,も,モ,モ
もも  名詞,一般,*,*,*,*,もも,モモ,モモ
も   助詞,係助詞,*,*,*,*,も,モ,モ
もも  名詞,一般,*,*,*,*,もも,モモ,モモ
の   助詞,連体化,*,*,*,*,の,ノ,ノ
うち  名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ
EOS

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

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

1
2
3
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 ライブラリーをインストール

1
2
cd -
pip3 install mecab-python3

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

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

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

1
import Mecab

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

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

1
m = Mecab.Target()

あとは解析

1
vim sumomo.py

でファイルを作成

1
2
3
4
import MeCab
m=MeCab.Tagger()
 
print(m.parse("すもももももももものうち"))

とすると

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
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をローカルにインストールして躓いた時に見て欲しい

を参考に

1
which mecab

でパスを確認

1
/usr/bin/mecab

になっているのを確認

1
vim ~/.bashrc

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

1
export MECABRC=/etc/mecabrc

を追記し保存

1
source ~/.bashrc

としたけどダメ

一度元にもどし

mecab-python3 1.0.3

を参考に

1
pip install unidic-lite

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

を参考に

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

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

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

となる

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

を参考に

1
sudo vim /etc/mecabrc

でファイルを開き

6行目の

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

の部分を

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

として保存

これで

1
echo "幽☆遊☆白書" | mecab

を実行すると

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

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

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

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

というようになった

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

1
python sumomo.py

を実行すると

1
2
3
4
5
6
7
8
すもも スモモ スモモ 李   名詞-普通名詞-一般          0
も   モ   モ   も   助詞-係助詞         
もも  モモ  モモ  桃   名詞-普通名詞-一般          0
も   モ   モ   も   助詞-係助詞         
もも  モモ  モモ  桃   名詞-普通名詞-一般          0
の   ノ   ノ   の   助詞-格助詞         
うち  ウチ  ウチ  内   名詞-普通名詞-副詞可能            0
EOS

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

参考書籍は

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

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

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です