日本語の形態素解析ライブラリ、JUMAN++をMacにインストールする際躓いたメモ。未解決です。
環境
MacBookPro ver10.14.6(Mojave)
JUMAN++のインストール全体はこちらのサイトを参考にしました。
pyknp(JUMANN++)で形態素解析してみた
写経で進めます。
% 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
ここでエラー。
checking for boostlib >= 1.57... configure: We could not detect the boost libraries (version 1.57 or higher). If you have a staged boost library (still not installed) please specify $BOOST_ROOT in your environment and do not give a PATH to --with-boost option. If you are sure you have boost installed, then check your version number looking in <boost/version.hpp>. See http://randspringer.de/boost for more documentation.
configure: error: "Error: cannot find available Boost library."
同様のエラーを解決しているサイトがありましたが、Ubuntu環境についての解説となっていました。
MeCabよりも高精度なJUMAN++をUbuntuにインストールしたよ
どうやらboostというのをインストールする必要があるようです。
Macにインストールした記事を見つけました。
Macにboostをインストールする(ソースからビルド)
以下、こちらのサイトを参考に進めました。
boost.orgのサイトに行って、ダウンロードしてきます。自分は2019年12月11日リリースのバージョンにしました。 boost_1_72_0.tar.gz という名前で置いてあります。ダンロード後、解凍しておき、コマンドラインに戻ります。
% ~/Downloads/boost_1_72_0
% ./bootstrap.sh
CPUのコア数を確認します。
% system_profiler SPHardwareDataType
Hardware:
Hardware Overview:
Model Name: MacBook Pro
Model Identifier: MacBookPro11,4
Processor Name: Intel Core i7
Processor Speed: 2.2 GHz
Number of Processors: 1
Total Number of Cores: 4
.
.
.
MBPでも4コアなんですね。
-jの後の数字に、(4+1で)5を指定します。
sudo ./b2 install -j5 --prefix=/opt/local
入ったようです。JUMAN++のインストールに戻ります。
~/jumanpp-1.02
% make
Making all in src
/Library/Developer/CommandLineTools/usr/bin/make all-recursive
Making all in cdb
gcc -DHAVE_CONFIG_H -I. -I../../src -Ofast -fPIC -D_FILE_OFFSET_BITS=64 -g -O2 -MT libcdb_a-cdb_init.o -MD -MP -MF .deps/libcdb_a-cdb_init.Tpo -c -o libcdb_a-cdb_init.o `test -f 'cdb_init.c' || echo './'`cdb_init.c
mv -f .deps/libcdb_a-cdb_init.Tpo .deps/libcdb_a-cdb_init.Po
gcc -DHAVE_CONFIG_H -I. -I../../src -Ofast -fPIC -D_FILE_OFFSET_BITS=64 -g -O2 -MT libcdb_a-cdb_find.o -MD -MP -MF .deps/libcdb_a-cdb_find.Tpo -c -o libcdb_a-cdb_find.o `test -f 'cdb_find.c' || echo './'`cdb_find.c
mv -f .deps/libcdb_a-cdb_find.Tpo .deps/libcdb_a-cdb_find.Po
gcc -DHAVE_CONFIG_H -I. -I../../src -Ofast -fPIC -D_FILE_OFFSET_BITS=64 -g -O2 -MT libcdb_a-cdb_findnext.o -MD -MP -MF .deps/libcdb_a-cdb_findnext.Tpo -c -o libcdb_a-cdb_findnext.o `test -f 'cdb_findnext.c' || echo './'`cdb_findnext.c
mv -f .deps/libcdb_a-cdb_findnext.Tpo .deps/libcdb_a-cdb_findnext.Po
gcc -DHAVE_CONFIG_H -I. -I../../src -Ofast -fPIC -D_FILE_OFFSET_BITS=64 -g -O2 -MT libcdb_a-cdb_seq.o -MD -MP -MF .deps/libcdb_a-cdb_seq.Tpo -c -o libcdb_a-cdb_seq.o `test -f 'cdb_seq.c' || echo './'`cdb_seq.c
mv -f .deps/libcdb_a-cdb_seq.Tpo .deps/libcdb_a-cdb_seq.Po
gcc -DHAVE_CONFIG_H -I. -I../../src -Ofast -fPIC -D_FILE_OFFSET_BITS=64 -g -O2 -MT libcdb_a-cdb_seek.o -MD -MP -MF .deps/libcdb_a-cdb_seek.Tpo -c -o libcdb_a-cdb_seek.o `test -f 'cdb_seek.c' || echo './'`cdb_seek.c
mv -f .deps/libcdb_a-cdb_seek.Tpo .deps/libcdb_a-cdb_seek.Po
gcc -DHAVE_CONFIG_H -I. -I../../src -Ofast -fPIC -D_FILE_OFFSET_BITS=64 -g -O2 -MT libcdb_a-cdb_unpack.o -MD -MP -MF .deps/libcdb_a-cdb_unpack.Tpo -c -o libcdb_a-cdb_unpack.o `test -f 'cdb_unpack.c' || echo './'`cdb_unpack.c
mv -f .deps/libcdb_a-cdb_unpack.Tpo .deps/libcdb_a-cdb_unpack.Po
gcc -DHAVE_CONFIG_H -I. -I../../src -Ofast -fPIC -D_FILE_OFFSET_BITS=64 -g -O2 -MT libcdb_a-cdb_make_add.o -MD -MP -MF .deps/libcdb_a-cdb_make_add.Tpo -c -o libcdb_a-cdb_make_add.o `test -f 'cdb_make_add.c' || echo './'`cdb_make_add.c
mv -f .deps/libcdb_a-はcdb_make_add.Tpo .deps/libcdb_a-cdb_make_add.Po
gcc -DHAVE_CONFIG_H -I. -I../../src -Ofast -fPIC -D_FILE_OFFSET_BITS=64 -g -O2 -MT libcdb_a-cdb_make_put.o -MD -MP -MF .deps/libcdb_a-cdb_make_put.Tpo -c -o libcdb_a-cdb_make_put.o `test -f 'cdb_make_put.c' || echo './'`cdb_make_put.c
mv -f .deps/libcdb_a-cdb_make_put.Tpo .deps/libcdb_a-cdb_make_put.Po
gcc -DHAVE_CONFIG_H -I. -I../../src -Ofast -fPIC -D_FILE_OFFSET_BITS=64 -g -O2 -MT libcdb_a-cdb_make.o -MD -MP -MF .deps/libcdb_a-cdb_make.Tpo -c -o libcdb_a-cdb_make.o `test -f 'cdb_make.c' || echo './'`cdb_make.c
mv -f .deps/libcdb_a-cdb_make.Tpo .deps/libcdb_a-cdb_make.Po
gcc -DHAVE_CONFIG_H -I. -I../../src -Ofast -fPIC -D_FILE_OFFSET_BITS=64 -g -O2 -MT libcdb_a-cdb_hash.o -MD -MP -MF .deps/libcdb_a-cdb_hash.Tpo -c -o libcdb_a-cdb_hash.o `test -f 'cdb_hash.c' || echo './'`cdb_hash.c
mv -f .deps/libcdb_a-cdb_hash.Tpo .deps/libcdb_a-cdb_hash.Po
rm -f libcdb.a
ar cru libcdb.a libcdb_a-cdb_init.o libcdb_a-cdb_find.o libcdb_a-cdb_findnext.o libcdb_a-cdb_seq.o libcdb_a-cdb_seek.o libcdb_a-cdb_unpack.o libcdb_a-cdb_make_add.o libcdb_a-cdb_make_put.o libcdb_a-cdb_make.o libcdb_a-cdb_hash.o
ranlib libcdb.a
depbase=`echo charlattice.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
g++ -std=c++11 -DHAVE_CONFIG_H -I. --std=c++11 -Ofast -m64 -Wall -funroll-loops -ffast-math -g -O2 -MT charlattice.o -MD -MP -MF $depbase.Tpo -c -o charlattice.o charlattice.cc &&\
mv -f $depbase.Tpo $depbase.Po
charlattice.cc:185:49: warning: unused variable 'result_pair'
[-Wunused-variable]
da_result_pair_type result_pair;
^
charlattice.cc:233:49: warning: unused variable 'result_pair'
[-Wunused-variable]
da_result_pair_type result_pair;
^
2 warnings generated.
depbase=`echo dic.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
g++ -std=c++11 -DHAVE_CONFIG_H -I. --std=c++11 -Ofast -m64 -Wall -funroll-loops -ffast-math -g -O2 -MT dic.o -MD -MP -MF $depbase.Tpo -c -o dic.o dic.cc &&\
mv -f $depbase.Tpo $depbase.Po
In file included from dic.cc:2:
In file included from ./feature.h:11:
./feature_vector.h:14:10: fatal error: 'boost/unordered_map.hpp' file not found
#include <boost/unordered_map.hpp>
^~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
make[3]: *** [dic.o] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all] Error 2
make: *** [all-recursive] Error 1
もう少し調べてみます。