LoginSignup
0
1

More than 3 years have passed since last update.

【NLP入門】jetson_nano環境構築から簡単な類似度計算まで♪

Posted at

今回は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)]

まとめ

・自然言語処理に必要な環境を構築した
・一応、類似度まで計算できた

・会話アプリを試してみよう

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1