自然言語処理に必要な定番ツールなどの環境をvagrantのcentos 7上に構築する手順メモです。
■ホストマシンの環境
macOS High Sierra (10.13.3) ※windowsでも同手順でできました。
VirtualBox (5.2.8)
Vagrant (2.0.2)
■vagrantにcentos/7 boxを追加
vagrantにcentos/7というboxを追加します。
いきなり下記のコマンドでダウンロードしてくれます。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
$ vagrant box add centos/7 ==> box: Loading metadata for box 'centos/7' box: URL: https://vagrantcloud.com/centos/7 This box can work with multiple providers! The providers that it can work with are listed below. Please review the list and choose the provider you will be working with. 1) hyperv 2) libvirt 3) virtualbox 4) vmware_desktop Enter your choice: 3 <- virtualboxを選択 |
作業ディレクトリ(今回はcentos7_MLという名前にしています)を作成して、vagrant init後一度upしてhaltします。
1 2 3 4 5 6 7 |
$ mkdir centos7_ML $ cd centos7_ML $ vagrant init centos/7 $ vagrant up して $ vagrant halt |
■VMのディスク容量を予め増やしておく
機械学習ではダウンロードするものが多かったり、大量の学習データなどでディスクがいっぱいになってしまう事がありますので予め増やしておきます。
VirtualBoxのGUIの該当VMの設定で、「ストレージ」->「ストレージデバイス」->「コントローラー:IDE」の横にある「ハードディスク追加」のボタンを押して、
可変vdiを選択して容量を設定して(今回は200Gにしました)、名前を付けます(今回は NewVirtualDisk1としました )。
その後、VirtualBoxのVMが置かれているディレクトリ(先ほど作成したディレクトリではなく、VirtualBoxがVMを置いている場所)に行って
1 2 3 4 |
$ cd ~/VirtualBox\ VMs/ <- デフォルトではユーザhomeの下にあるようです $ cd <対象のMVのディレクトリ> $ VBoxManage clonehd centos-7-1-1.x86_64.vmdk NewVirtualDisk1.vdi --existing 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% |
最初から作成されていたディスク(centos-7-1-1.x86_64.vmdk)を新しいディスク(NewVirtualDisk1.vdi)にコピーします。
その後、Virtualbox GUIで古いディスクを削除し、新しいディスクだけにします。
Vagrantfileの
1 |
config.vm.network "private_network", ip: "192.168.33.10" |
の行だけコメントを外して、
1 2 |
$ vagrant up $ vagrant ssh でログイン |
ここから作成したcentos上での作業です。
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 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 |
[vagrant@localhost ~]$ sudo su - Last login: Fri Apr 13 23:15:31 UTC 2018 on pts/0 [root@localhost ~]# fdisk -l Disk /dev/sda: 214.7 GB, 214748364800 bytes, 419430400 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x000abd1e Device Boot Start End Blocks Id System /dev/sda1 2048 4095 1024 83 Linux /dev/sda2 * 4096 2101247 1048576 83 Linux /dev/sda3 2101248 83886079 40892416 8e Linux LVM Disk /dev/mapper/VolGroup00-LogVol00: 40.2 GB, 40231763968 bytes, 78577664 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/mapper/VolGroup00-LogVol01: 1610 MB, 1610612736 bytes, 3145728 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes [root@localhost ~]# df -h <- 現在の状況を確認すると/dev/mapper/VolGroup00-LogVol00が38Gになっている。 Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup00-LogVol00 38G 916M 37G 3% / devtmpfs 236M 0 236M 0% /dev tmpfs 245M 0 245M 0% /dev/shm tmpfs 245M 4.4M 240M 2% /run tmpfs 245M 0 245M 0% /sys/fs/cgroup /dev/sda2 1014M 63M 952M 7% /boot tmpfs 49M 0 49M 0% /run/user/1000 $ fdisk /dev/sda Welcome to fdisk (util-linux 2.23.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. (以下作業ログですが、見辛いので入力が必要な部分に★マークを付けておきます。) ★Command (m for help): n Partition type: p primary (3 primary, 0 extended, 1 free) e extended ★Select (default e): p Selected partition 4 <- 勝手に4になるが、パーティション番号を聞かれたら入力する ★First sector (83886080-419430399, default 83886080): <- そのままエンター Using default value 83886080 ★Last sector, +sectors or +size{K,M,G} (83886080-419430399, default 419430399): <- そのままエンター Using default value 419430399 Partition 4 of type Linux and of size 160 GiB is set ★Command (m for help): t ★Partition number (1-4, default 4): 4 <- 先ほどのパーティション番号を入力 ★Hex code (type L to list all codes): 8e Changed type of partition 'Linux' to 'Linux LVM' ★Command (m for help): p Disk /dev/sda: 214.7 GB, 214748364800 bytes, 419430400 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x000abd1e Device Boot Start End Blocks Id System /dev/sda1 2048 4095 1024 83 Linux /dev/sda2 * 4096 2101247 1048576 83 Linux /dev/sda3 2101248 83886079 40892416 8e Linux LVM /dev/sda4 83886080 419430399 167772160 8e Linux LVM ★Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 16: Device or resource busy. The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) Syncing disks. ここで一度再起動 exitしてvagrant halt 後 vagrant up して vagrant ssh [vagrant@localhost ~]$ sudo su - Last login: Fri Apr 13 23:23:36 UTC 2018 on pts/0 [root@localhost ~]# pvcreate /dev/sda4 Physical volume "/dev/sda4" successfully created. [root@localhost ~]# vgextend VolGroup00 /dev/sda4 Volume group "VolGroup00" successfully extended [root@localhost ~]# lvextend -l +100%FREE /dev/mapper/VolGroup00-LogVol00 Size of logical volume VolGroup00/LogVol00 changed from <37.47 GiB (1199 extents) to <197.44 GiB (6318 extents). Logical volume VolGroup00/LogVol00 successfully resized. [root@localhost ~]# xfs_growfs /dev/mapper/VolGroup00-LogVol00 meta-data=/dev/mapper/VolGroup00-LogVol00 isize=512 agcount=4, agsize=2455552 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0 spinodes=0 data = bsize=4096 blocks=9822208, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal bsize=4096 blocks=4796, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 9822208 to 51757056 最後に状態を確認すると、最初38Gだったのが198Gに増えている。 [root@localhost ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup00-LogVol00 198G 917M 197G 1% / devtmpfs 236M 0 236M 0% /dev tmpfs 245M 0 245M 0% /dev/shm tmpfs 245M 4.4M 240M 2% /run tmpfs 245M 0 245M 0% /sys/fs/cgroup /dev/sda2 1014M 63M 952M 7% /boot tmpfs 49M 0 49M 0% /run/user/1000 [root@localhost ~]# exit logout [vagrant@localhost ~]$ exit logout Connection to 127.0.0.1 closed. 一度ログアウトして、vagrant haltする。 |
■共有ディレクトリの設定
Vagrantfileの共有フォルダ設定を変更
1 |
config.vm.synced_folder ".", "/vagrant", type: "nfs" |
これで、VM上の /vagrant が Vagrantfileがあるディレクトリに同期されるようになります。
ついでに
1 2 3 4 5 6 7 8 |
config.vm.provider "virtualbox" do |vb| # # Display the VirtualBox GUI when booting the machine # vb.gui = true # # Customize the amount of memory on the VM: vb.cpus = 2 vb.memory = "10240" end |
メモリやCPUの設定も適当に変更しておきます。
再びvagrant up して vagrant ssh。
OSバージョンなど確認してみます。
1 2 3 4 |
[vagrant@localhost ~]$ uname -a Linux localhost.localdomain 3.10.0-693.17.1.el7.x86_64 #1 SMP Thu Jan 25 20:13:58 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux [vagrant@localhost ~]$ cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) |
■とりあえず入れるもの
やっとここから開発ツールのインストール作業です。
1 2 3 4 5 |
$ sudo yum update $ sudo yum upgrade $ sudo yum install gcc zlib-devel bzip2 bzip2-devel openssl openssl-devel readline-devel readline ncurses-devel sqlite sqlite-devel gdbm-devel expat-devel libpcap-devel xz-devel pcre-devel wget gcc-c++ libiconv patch $ sudo yum groupinstall "Development tools" $ sudo yum install tk-devel |
本当に必要なものかどうかは精査していませんが、作業中にとりあえず入れたものです。
■pyenvでPython3にする
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
$ cd $ git clone https://github.com/yyuu/pyenv.git ~/.pyenv $ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile $ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile $ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile $ source .bash_profile $ pyenv install 3.6.0 $ pyenv global 3.6.0 $ pyenv rehash 確認する $ python --version Python 3.6.0 $ pip --version pip 9.0.1 from /home/vagrant/.pyenv/versions/3.6.0/lib/python3.6/site-packages (python 3.6) |
■pipでとりあえず入れるもの
これらも環境構築の過程で入れたものなので、とりあえず入れたものリストという感じです。
1 2 3 4 5 6 7 8 9 |
$ pip install --upgrade pip $ pip install argparse $ pip install python-dateutil $ pip install numpy $ pip install scipy $ pip install cython $ pip install pandas $ pip install setuptools $ pip install matplotlib |
■gensimのインストール
1 |
$ pip install --upgrade gensim |
■mecabのインストール
mecab本体をダウンロードしてmake
1 2 3 4 5 6 |
$ wget --no-check-certificate 'https://drive.google.com/uc?export=download&id=0B4y35FiV1wh7cENtOXlicTFaRUE' -O mecab-0.996.tar.gz $ tar zvxf mecab-0.996.tar.gz $ cd mecab-0.996 $ sudo ./configure --enable-utf8-only $ make $ sudo make install |
パスを通す。
1 2 3 4 |
$ su <- 初期パスワードは vagrant [root@localhost vagrant]# sh -c "echo '/usr/local/lib' >> /etc/ld.so.conf" [root@localhost vagrant]# exit $ sudo ldconfig |
ipadicをダウンロードしてmake
1 2 3 4 5 6 7 |
$ cd $ wget --no-check-certificate 'https://drive.google.com/uc?export=download&id=0B4y35FiV1wh7MWVlSDBCSXZMTXM' -O mecab-ipadic-2.7.0-20070801.tar.gz $ tar zvxf mecab-ipadic-2.7.0-20070801.tar.gz $ cd mecab-ipadic-2.7.0-20070801 $ ./configure --with-charset=utf8 $ make $ sudo make install |
一度動作確認します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
$ mecab そんなことはありませんよ。 そんな 連体詞,*,*,*,*,*,そんな,ソンナ,ソンナ こと 名詞,非自立,一般,*,*,*,こと,コト,コト は 助詞,係助詞,*,*,*,*,は,ハ,ワ あり 動詞,自立,*,*,五段・ラ行,連用形,ある,アリ,アリ ませ 助動詞,*,*,*,特殊・マス,未然形,ます,マセ,マセ ん 助動詞,*,*,*,不変化型,基本形,ん,ン,ン よ 助詞,終助詞,*,*,*,*,よ,ヨ,ヨ 。 記号,句点,*,*,*,*,。,。,。 EOS すもももももももものうち すもも 名詞,一般,*,*,*,*,すもも,スモモ,スモモ も 助詞,係助詞,*,*,*,*,も,モ,モ もも 名詞,一般,*,*,*,*,もも,モモ,モモ も 助詞,係助詞,*,*,*,*,も,モ,モ もも 名詞,一般,*,*,*,*,もも,モモ,モモ の 助詞,連体化,*,*,*,*,の,ノ,ノ うち 名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ EOS |
neologd辞書をインストール
1 2 3 4 |
$ cd $ git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git $ cd mecab-ipadic-neologd $ ./bin/install-mecab-ipadic-neologd -n |
動作確認してみる。
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 |
neologd辞書なしの場合 $ mecab スティーブ・ジョブズかっこ良いよね。 スティーブ 名詞,固有名詞,人名,名,*,*,スティーブ,スティーブ,スティーブ ・ 記号,一般,*,*,*,*,・,・,・ ジョブズ 名詞,固有名詞,人名,姓,*,*,ジョブズ,ジョブズ,ジョブズ かっこ 名詞,サ変接続,*,*,*,*,かっこ,カッコ,カッコ 良い 形容詞,自立,*,*,形容詞・アウオ段,基本形,良い,ヨイ,ヨイ よ 助詞,終助詞,*,*,*,*,よ,ヨ,ヨ ね 助詞,終助詞,*,*,*,*,ね,ネ,ネ 。 記号,句点,*,*,*,*,。,。,。 EOS ビル・ゲイツ格好いいよね。 ビル 名詞,一般,*,*,*,*,ビル,ビル,ビル ・ 記号,一般,*,*,*,*,・,・,・ ゲイツ 名詞,固有名詞,人名,姓,*,*,ゲイツ,ゲイツ,ゲイツ 格好いい 形容詞,自立,*,*,不変化型,基本形,格好いい,カッコウイイ,カッコーイー よ 助詞,終助詞,*,*,*,*,よ,ヨ,ヨ ね 助詞,終助詞,*,*,*,*,ね,ネ,ネ 。 記号,句点,*,*,*,*,。,。,。 EOS neologd辞書ありの場合 $ mecab -d /usr/local/lib/mecab/dic/mecab-ipadic-neologd/ スティーブ・ジョブズかっこ良いよね。 スティーブ・ジョブズ 名詞,固有名詞,人名,一般,*,*,スティーブ・ジョブズ,スティーブジョブズ,スティーブジョブズ かっこ 名詞,サ変接続,*,*,*,*,かっこ,カッコ,カッコ 良い 形容詞,自立,*,*,形容詞・アウオ段,基本形,良い,ヨイ,ヨイ よ 助詞,終助詞,*,*,*,*,よ,ヨ,ヨ ね 助詞,終助詞,*,*,*,*,ね,ネ,ネ 。 記号,句点,*,*,*,*,。,。,。 EOS ビル・ゲイツ格好良いよね。 ビル・ゲイツ 名詞,固有名詞,一般,*,*,*,ビル・ゲイツ,ビルゲイツ,ビルゲイツ 格好 名詞,一般,*,*,*,*,格好,カッコウ,カッコー 良い 形容詞,自立,*,*,形容詞・アウオ段,基本形,良い,ヨイ,ヨイ よ 助詞,終助詞,*,*,*,*,よ,ヨ,ヨ ね 助詞,終助詞,*,*,*,*,ね,ネ,ネ 。 記号,句点,*,*,*,*,。,。,。 EOS |
辞書に人名が入っているのが確認できます。
pythonから使う為のバインディングをインストール
1 |
$ pip install mecab-python3 |
動作確認
1 2 |
$ python >>import MeCab |
でエラーがでなければOK。
■fasTextのインストール
1 2 3 4 5 6 7 8 9 10 11 |
$ cd $ pip install pybind11 $ git clone https://github.com/facebookresearch/fastText.git $ cd fastText $ python setup.py install warningがたくさん出ますが気にせず、最後に以下のように出ればOK Using /home/vagrant/.pyenv/versions/3.6.0/lib/python3.6/site-packages Finished processing dependencies for fasttext==0.8.22 fasttextコマンドの実行ファイルを生成する $ make |
お試し。data.txtの部分はわかちしたテキストファイルを指定しますので、先ほどのmecabで作成しておいてください。
成功するとoutput_model.binとoutput_model.vecというファイルが作成されます。
1 2 |
$ ~/fastText/fasttext skipgram -input data.txt -output output_model -lr 0.025 -dim 100 -ws 5 -epoch 1 -minCount 5 -neg 5 -loss ns -bucket 2000000 -minn 3 -maxn 6 -thread 4 -t 1e-4 -lrUpdateRate 100 などでモデルを作成 |
1 2 |
terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_alloc |
とか出たらvagrantのメモリ増やしてみると上手く行く場合があります。
pythonで確認
1 2 3 4 |
$ python >>> import fastText <- fasttextじゃなくてfastText >>> model = fastText.load_model('output_model.bin') >>> model.get_words() |
■tensorflowのインストール
必要なものを事前にインストールしておきます。
1 2 3 4 5 6 |
$ pip install h5py $ pip install --upgrade cython $ pip install scipy $ pip install pydot-ng $ pip install scikit-learn $ pip install graphviz |
1 |
$ pip install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-1.6.0-cp36-cp36m-linux_x86_64.whl |
動作確認
1 2 3 4 5 |
$ python >>> import tensorflow as tf >>> hello = tf.constant('Hello, TensorFlow!') >>> sess = tf.Session() >>> print(sess.run(hello)) |
■kerasのインストール
1 |
$ pip install keras |
kerasのサンプルを実行してみる。
1 2 3 |
$ cd $ git clone https://github.com/keras-team/keras.git ※ここで sudo python setup.py installでもインストール可能ですが、今回はexampleを使うためにcloneしました。 |
keras/examplesにある mnist_cnn.py を実行してみる。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
$ python mnist_cnn.py /home/vagrant/.pyenv/versions/3.6.0/lib/python3.6/site-packages/h5py/__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`. from ._conv import register_converters as _register_converters Using TensorFlow backend. Downloading data from https://s3.amazonaws.com/img-datasets/mnist.npz 11493376/11490434 [==============================] - 5s 0us/step x_train shape: (60000, 28, 28, 1) 60000 train samples 10000 test samples Train on 60000 samples, validate on 10000 samples Epoch 1/12 2018-04-14 01:35:04.678638: I tensorflow/core/platform/cpu_feature_guard.cc:140] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 23296/60000 [==========>...................] - ETA: 1:42 - loss: 2.5954 - acc: 0.1343 |
動き始めたようなのでとりあえず終了。
■chainerのインストール
1 2 3 4 |
$ sudo yum -y install python-devel $ sudo yum -y install epel-release $ sudo yum install hdf5-devel $ pip install chainer |
サンプルで動作確認
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
$ git clone https://github.com/chainer/chainer $ cd chainer/examples/mnist/ $ python train_mnist.py 初回はデータのダウンロードが行われて、以下のように学習が始まれば動いているので確認終了。 GPU: -1 # unit: 1000 # Minibatch-size: 100 # epoch: 20 epoch main/loss validation/main/loss main/accuracy validation/main/accuracy elapsed_time total [#.................................................] 2.50% this epoch [#########################.........................] 50.00% 300 iter, 0 epoch / 20 epochs 34.808 iters/sec. Estimated time to finish: 0:05:36.134001. |
■darknetのインストール
darknetはC言語で実装された機械学習用フレームワークです。必要に応じてインストールします。
1 2 3 |
git clone https://github.com/pjreddie/darknet.git cd darknet make |
■Juman++とKnpのインストール
mecabとは少し(文章によっては大きく)結果が異なります。mecabよりJuman++の方が性能が良い印象ですが遅いです。必要に応じて。
(1)BOOSTのインストール
1 2 3 4 5 6 7 8 9 10 11 12 |
$cd $ wget http://downloads.sourceforge.net/project/boost/boost/1.64.0/boost_1_64_0.tar.bz2 $ tar xvf boost_1_64_0.tar.bz2 # 環境変数設定 $ echo 'export CPLUS_INCLUDE_PATH=$HOME/boost_1_64_0/include:$CPLUS_INCLUDE_PATH' >> .bash_profile $ echo 'export LD_LIBRARY_PATH=$HOME/boost_1_64_0/lib' >> .bash_profile $ source .bash_profile $ cd boost_1_64_0/ $ ./bootstrap.sh $ sudo ./b2 install --prefix=$HOME/boost_1_64_0 cxxflags="-std=c++11" |
(2)Juman++のインストール
1 2 3 4 5 6 |
$ wget http://lotus.kuee.kyoto-u.ac.jp/nl-resource/jumanpp/jumanpp-1.02.tar.xz $ tar xJvf jumanpp-1.02.tar.xz $ cd jumanpp-1.02 $ ./configure $ make $ sudo make install |
# ライブラリの場所を登録して動作確認
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 |
$ su $ echo "include /usr/local/lib" >> /etc/ld.so.conf $ exit $ sudo ldconfig $cd でhomeへ行って $ echo 'export PATH="${PATH}:/usr/local/lib"' >> .bash_profile $ source .bash_profile $ jumanpp -v JUMAN++ 1.02 動作確認 $ echo "ビル・ゲイツ格好良いよね。"| jumanpp ビル びる ビル 名詞 6 普通名詞 1 * 0 * 0 "代表表記:ビル/びる カテゴリ:場所-施設" ・ ・ ・ 特殊 1 記号 5 * 0 * 0 NIL ゲイツ ゲイツ ゲイツ 名詞 6 人名 5 * 0 * 0 "自動獲得:Wikipedia Wikipedia人名 Wikipedia多義" 格好良い かっこよい 格好良い 形容詞 3 * 0 イ形容詞アウオ段 18 基本形 2 "代表表記:恰好良い/かっこよい" よ よ よ 助詞 9 終助詞 4 * 0 * 0 NIL ね ね ね 助詞 9 終助詞 4 * 0 * 0 NIL 。 。 。 特殊 1 句点 1 * 0 * 0 NIL EOS $ echo "スティーブ・ジョブズ格好良いよね。"| jumanpp スティーブ すてぃーぶ スティーブ 名詞 6 人名 5 * 0 * 0 "人名:外国" ・ ・ ・ 特殊 1 記号 5 * 0 * 0 NIL ジョブズ ジョブズ ジョブズ 名詞 6 普通名詞 1 * 0 * 0 "自動獲得:Wikipedia Wikipediaリダイレクト:スティーブ・ジョブズ" 格好良い かっこよい 格好良い 形容詞 3 * 0 イ形容詞アウオ段 18 基本形 2 "代表表記:恰好良い/かっこよい" よ よ よ 助詞 9 終助詞 4 * 0 * 0 NIL ね ね ね 助詞 9 終助詞 4 * 0 * 0 NIL 。 。 。 特殊 1 句点 1 * 0 * 0 NIL EOS |
(3)Jumanのインストール
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 |
$ cd $ wget http://nlp.ist.i.kyoto-u.ac.jp/nl-resource/juman/juman-7.01.tar.bz2 $ tar xjvf juman-7.01.tar.bz2 $ cd juman-7.01 $ ./configure $ make $ sudo make install $ suで $ echo "include /usr/local/lib/" >> /etc/ld.so.conf $ exit $ sudo ldconfig # バージョン確認 $ juman -v juman 7.01 $ echo "スティーブ・ジョブズ格好良いよね。"| juman スティーブ すてぃーぶ スティーブ 名詞 6 人名 5 * 0 * 0 "人名:外国" ・ ・ ・ 特殊 1 記号 5 * 0 * 0 NIL ジョブズ ジョブズ ジョブズ 名詞 6 普通名詞 1 * 0 * 0 "自動獲得:Wikipedia Wikipediaリダイレクト:スティーブ・ジョブズ" 格好良い かっこよい 格好良い 形容詞 3 * 0 イ形容詞アウオ段 18 基本形 2 "代表表記:恰好良い/かっこよい" よ よ よ 助詞 9 終助詞 4 * 0 * 0 NIL ね ね ね 助詞 9 終助詞 4 * 0 * 0 NIL 。 。 。 特殊 1 句点 1 * 0 * 0 NIL EOS |
(4)knpのインストール
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
$ cd $ wget http://nlp.ist.i.kyoto-u.ac.jp/nl-resource/knp/knp-4.19.tar.bz2 $ tar xjvf knp-4.19.tar.bz2 $ cd knp-4.19 $ ./configure $ make $ sudo make install $ echo "庭には二羽鶏がいる" | jumanpp | knp # S-ID:1 KNP:4.19-CF1.1 DATE:2018/04/14 SCORE:-32.02752 庭には─────┐ <体言> 二羽─────┐ │ <体言> 鶏が─────┤ <体言> いる<用言:動><格解析結果:ガ/鶏;ニ/庭;ガ2/-> EOS $ echo "にわにはにわにわとりがいる" | jumanpp | knp # S-ID:1 KNP:4.19-CF1.1 DATE:2018/04/14 SCORE:-42.53095 にわに─────┐ <体言> はにわ─────┐ │ <体言> にわとりが─────┤ <体言> いる<用言:動><格解析結果:ガ/にわとり;ニ/にわ;ノ/-> EOS |
libjuman.so.4がないと言われたら、下記あたりを行ったか確認してみてください。
1 2 |
echo "include /usr/local/lib/" >> /etc/ld.so.conf <-jumanのconfigureで指定なしでやったらデフォルトここに入るっぽい sudo ldconfig |
(4)PyKnpのインストール(KNPをPythonから使うバインディング)
1 2 3 4 5 6 7 8 |
$ cd $ wget http://lotus.kuee.kyoto-u.ac.jp/nl-resource/pyknp/pyknp-0.3.tar.gz $ tar xvzf pyknp-0.3.tar.gz $ cd pyknp-0.3 $ python setup.py install $ python で確認 >>> from pyknp import Jumanpp |
■python-twitterのインストール
twitterのデータを集めて学習したい場合はインストールします。
1 |
$ pip install python-twitter |