今回はjetson_nanoに自然言語処理系のアプリをインストールして遊んでみた。
インストールという意味では、前回のNanoへのインストールの続きになります。
また、前回のWindowsへの諸々のインストールと同様に進めます。
###準備
$ sudo apt update
$ sudo apt upgrade
###brewでmecabをインストールする
$ sudo apt install linuxbrew-wrapper
$ brew install mecab
...
==> Installation successful!
==> Next steps:
- Install the Linuxbrew dependencies if you have sudo access:
Debian, Ubuntu, etc.
sudo apt-get install build-essential
$ sudo apt-get install build-essential
...
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
これで、mecabが無事にインストール出来た。
ここまでは、順調であったが、辞書が入らない。
$ brew install mecab-ipadic
...
configure: error: cannot guess build type; you must specify one
以下のようにmecab-python3関係も前回同様入りませんでした。
$ brew install swig
...
Makefile:174: recipe for target 'all' failed
make: *** [all] Error 2
$ pip3 install mecab-python3
...
Building wheel for mecab-python3 (setup.py) ... error
ここで、一度mecab-python3のインストールはあきらめてmecab辞書のインストールをすることとする。
###mecab-ipadic-NEologd をインストールする
前回と同様な手順で進める。
$ sudo apt install make automake autoconf autotools-dev m4 mecab libmecab-dev mecab-ipadic-utf8 git make curl xz-utils file
...
Setting up mecab (0.996-5) ...
Compiling IPA dictionary for Mecab. This takes long time...
...
done!
Setting up mecab-jumandic (7.0-20130310-4) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
Processing triggers for libc-bin (2.27-3ubuntu1) ...
$ sudo sed -i -e 's%/lib/mecab/dic%/share/mecab/dic%' /usr/bin/mecab-config
$ git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git
$ cd mecab-ipadic-neologd
$ ./bin/install-mecab-ipadic-neologd -n -a
...
[install-mecab-ipadic-NEologd] : Install completed.
[install-mecab-ipadic-NEologd] : When you use MeCab, you can set '/usr/lib/aarch64-linux-gnu/mecab/dic/mecab-ipadic-neologd' as a value of '-d' option of MeCab.
[install-mecab-ipadic-NEologd] : Usage of mecab-ipadic-NEologd is here.
Usage:
$ mecab -d /usr/lib/aarch64-linux-gnu/mecab/dic/mecab-ipadic-neologd ...
[install-mecab-ipadic-NEologd] : Finish..
[install-mecab-ipadic-NEologd] : Finish..
$ echo `mecab-config --dicdir`"/mecab-ipadic-neologd"
/usr/lib/aarch64-linux-gnu/mecab/dic/mecab-ipadic-neologd
これで、無事にmecab-ipadic-neologdをインストール出来た。
###mecab-ipadic-NEologd の使用(Copyright (C) 2015-2019 Toshinori Sato (@overlast))
$ echo "8月3日に放送された「中居正広の金曜日のスマイルたちへ」(TBS系)で、1日たった5分でぽっこりおなかを解消するというダイエット方法を紹介。キンタロー。のダイエットにも密着。" | mecab -d /usr/lib/aarch64-linux-gnu/mecab/dic/mecab-ipadic-neologd
8月3日 名詞,固有名詞,一般,*,*,*,8月3日,ハチガツミッカ,ハチガツミッカ
に 助詞,格助詞,一般,*,*,*,に,ニ,ニ
放送 名詞,サ変接続,*,*,*,*,放送,ホウソウ,ホーソー
さ 動詞,自立,*,*,サ変・スル,未然レル接続,する,サ,サ
れ 動詞,接尾,*,*,一段,連用形,れる,レ,レ
た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
「 記号,括弧開,*,*,*,*,「,「,「
中居正広の金曜日のスマイルたちへ 名詞,固有名詞,一般,*,*,*,中居正広の金曜日のスマイルたちへ,ナカイマサヒロノキンヨウビノスマイルタチヘ,ナカイマサヒロノキンヨービノスマイルタチヘ
」( 記号,一般,*,*,*,*,*
TBS 名詞,固有名詞,一般,*,*,*,TBS,ティービーエス,ティービーエス
系 名詞,接尾,一般,*,*,*,系,ケイ,ケイ
) 記号,一般,*,*,*,*,*
で 助動詞,*,*,*,特殊・ダ,連用形,だ,デ,デ
、 記号,読点,*,*,*,*,、,、,、
1日 名詞,固有名詞,一般,*,*,*,1日,ツイタチ,ツイタチ
たった 副詞,助詞類接続,*,*,*,*,たった,タッタ,タッタ
5分 名詞,固有名詞,一般,*,*,*,5分,ゴフン,ゴフン
で 助詞,格助詞,一般,*,*,*,で,デ,デ
ぽっこり 副詞,一般,*,*,*,*,ぽっこり,ポッコリ,ポッコリ
おなか 名詞,一般,*,*,*,*,おなか,オナカ,オナカ
を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
解消 名詞,サ変接続,*,*,*,*,解消,カイショウ,カイショー
する 動詞,自立,*,*,サ変・スル,基本形,する,スル,スル
という 助詞,格助詞,連語,*,*,*,という,トイウ,トユウ
ダイエット方法 名詞,固有名詞,一般,*,*,*,ダイエット方法,ダイエットホウホウ,ダイエットホウホー
を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
紹介 名詞,サ変接続,*,*,*,*,紹介,ショウカイ,ショーカイ
。 記号,句点,*,*,*,*,。,。,。
キンタロー。 名詞,固有名詞,一般,*,*,*,キンタロー。,キンタロー,キンタロー
の 助詞,連体化,*,*,*,*,の,ノ,ノ
ダイエット 名詞,サ変接続,*,*,*,*,ダイエット,ダイエット,ダイエット
に 助詞,格助詞,一般,*,*,*,に,ニ,ニ
も 助詞,係助詞,*,*,*,*,も,モ,モ
密着 名詞,サ変接続,*,*,*,*,密着,ミッチャク,ミッチャク
。 記号,句点,*,*,*,*,。,。,。
EOS
$ pip3 install --user gensim
Collecting gensim
...
Successfully installed boto-2.49.0 boto3-1.9.233 botocore-1.12.233 docutils-0.15.2 gensim-3.8.0 jmespath-0.9.4 s3transfer-0.2.1 smart-open-1.8.4
gensimの確認のために以下を動かしてみました。
【参考】doc2vecのサンプル
$ python3 gensim_ex.py
訓練開始
Epoch: 1
Epoch: 2
Epoch: 3
Epoch: 4
Epoch: 5
Epoch: 6
Epoch: 7
Epoch: 8
Epoch: 9
Epoch: 10
Epoch: 11
Epoch: 12
Epoch: 13
Epoch: 14
Epoch: 15
Epoch: 16
Epoch: 17
Epoch: 18
Epoch: 19
Epoch: 20
SENT_0
[('SENT_2', 0.04010644555091858), ('SENT_3', -0.023990176618099213), ('SENT_1', -0.11907359957695007)]
SENT_3
[('SENT_2', 0.06015370786190033), ('SENT_0', -0.023990172892808914), ('SENT_1', -0.07563222199678421)]
SENT_1
[('SENT_2', -0.005788261536508799), ('SENT_3', -0.07563220709562302), ('SENT_0', -0.11907359957695007)]
[('明日', 0.06268655508756638), ('今日', 0.05677594244480133), ('吠えた', 0.041425563395023346), ('海', 0.003959310241043568), ('泳ぐ', -0.004621109459549189), ('今', -0.024050038307905197), ('犬', -0.0428856685757637), ('猫', -0.05383896455168724)]
###まとめ
・自然言語処理に必要な環境を構築した
・一応、類似度まで計算できた
・会話アプリを試してみよう