[AWS EC2] mecab-ipadic-neologd で std::bad_alloc

EC2にMecabを入れます。

ssh ec2-user@18.179.118.214 -i ~/.ssh/aws-dev.pem

$ sudo yum update -y
$ sudo yum groupinstall -y “Development Tools”

$ wget ‘https://drive.google.com/uc?export=download&id=0B4y35FiV1wh7cENtOXlicTFaRUE’ -O mecab-0.996.tar.gz
$ tar xzf mecab-0.996.tar.gz
$ cd mecab-0.996
$ ./configure
$ make
$ make check
$ sudo make install
$ cd –
$ rm -rf mecab-0.996*

$ git clone –depth 1 https://github.com/neologd/mecab-ipadic-neologd.git
$ ./mecab-ipadic-neologd/bin/install-mecab-ipadic-neologd -n -a -y
terminate called after throwing an instance of ‘std::bad_alloc’
what(): std::bad_alloc
/home/ec2-user/mecab-ipadic-neologd/bin/../libexec/make-mecab-ipadic-neologd.sh: 525 行: 24919 Aborted ${MECAB_LIBEXEC_DIR}/mecab-dict-index -f UTF8 -t UTF8

8.0G中、7.6G使用しており、メモリが足りなくなっています。
$ df -hT
ファイルシス タイプ サイズ 使用 残り 使用% マウント位置
devtmpfs devtmpfs 482M 0 482M 0% /dev
tmpfs tmpfs 492M 0 492M 0% /dev/shm
tmpfs tmpfs 492M 460K 492M 1% /run
tmpfs tmpfs 492M 0 492M 0% /sys/fs/cgroup
/dev/xvda1 xfs 8.0G 7.6G 455M 95% /
tmpfs tmpfs 99M 0 99M 0% /run/user/1000

memoryが足りないのでebsのボリュームを8Gから15Gにあげます。

$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 15G 0 disk
└─xvda1 202:1 0 8G 0 part /

$ sudo xfs_growfs /dev/xvda1
data blocks changed from 2096635 to 3931643

$ df -h
ファイルシス サイズ 使用 残り 使用% マウント位置
devtmpfs 482M 0 482M 0% /dev
tmpfs 492M 0 492M 0% /dev/shm
tmpfs 492M 460K 492M 1% /run
tmpfs 492M 0 492M 0% /sys/fs/cgroup
/dev/xvda1 15G 7.6G 7.5G 51% /
tmpfs 99M 0 99M 0% /run/user/1000

$ ./mecab-ipadic-neologd/bin/install-mecab-ipadic-neologd -n -a -y
[install-mecab-ipadic-NEologd] : Finish..

$ echo すもももももももものうち | mecab
すもももももももものうち 名詞,固有名詞,一般,*,*,*,すもももももももものうち,スモモモモモモモモノウチ,スモモモモモモモモノウチ
EOS

>>> import MeCab
>>> tagger = MeCab.Tagger(‘-Ochasen -d/usr/local/lib/mecab/dic/mecab-ipadic-neologd’)
>>> print(tagger.parse(‘すもももももももものうち’))
すもももももももものうち スモモモモモモモモノウチ すもももももももものうち 名詞-固有名詞-一般
EOS

MeCabが使えないと色々と前提が崩れるところやったわ