人に説明するために見やすい感じにテキストマイニングしてみたいなと思って(下の記事に触発されて)KHcoderを入れてみました。
prehyou2015.hatenablog.com
===
環境
macOS Sierra 10.12.6
===
こちらの記事を参考にKHcoderを入れようとしたところ、cpanmでPermission deniedが出てつまづいたので覚書です。
qiita.com
HomebrewとRは入っていたので、mecabとmysqlを入れました。
mecabインストール
$ brew search mecab mecab mecab mecab-ipadic $ brew install mecab $ brew install mecab-ipadic $ mecab 常春の国マリネラ 常春 名詞,一般,*,*,*,*,常春,トコハル,トコハル の 助詞,連体化,*,*,*,*,の,ノ,ノ 国 名詞,一般,*,*,*,*,国,クニ,クニ マリネラ 名詞,一般,*,*,*,*,* EOS
mysqlインストール
$ brew update $ brew install mysql $ brew info mysql
私の場合は5.7.21が入りました。
mysqlを起動します。
$ mysql.server start Starting MySQL SUCCESS!
パスワードも設定しました。
$ mysql_secure_installation
今後はパスワードを入力して立ち上げます。
$ mysql -uroot -p Enter password:[設定したパスワード]
curlでcpanmをインストール
$ cd /usr/bin/ $ sudo curl -LOk http://xrl.us/cpanm % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 216 0 216 0 0 403 0 --:--:-- --:--:-- --:--:-- 403 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 100 131 100 131 0 0 93 0 0:00:01 0:00:01 --:--:-- 341 Warning: Failed to create the file cpanm: Operation not permitted 0 298k 0 1918 0 0 1302 0 0:03:54 0:00:01 0:03:53 1302 curl: (23) Failed writing body (0 != 1918)
sudoなのに Operation not permitted...? と思って調べててみると、
どうやらmacのセキュリティ機能によるデフォルトの設定のようです。
こちらの記事を参考にさせていただきました。
qiita.com
まとめると、
1.Macを再起動させます。
2.立ち上がる時に、command + R を押し続けてリカバリーモードで起動します。
3.ユーティリティからターミナルを起動します。
4.以下のコマンドを打ちます。
$ csrutil status System Integrity Protection status: enabled.
enabledになっていると/usr/binにrootでも書き込みができないようです。
$ csrutil disable Successfully disabled System Integrity Protection. Please resart the machine for the changes to take effect.
再起動します。これで書き込めるようになっているはずです。
$ reboot
もういちどcurlを実行すると、成功しました。
$ sudo curl -LOk http://xrl.us/cpanm Password: % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 216 0 216 0 0 368 0 --:--:-- --:--:-- --:--:-- 369 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 100 131 100 131 0 0 97 0 0:00:01 0:00:01 --:--:-- 350 100 298k 100 298k 0 0 203k 0 0:00:01 0:00:01 --:--:-- 203k
実行権限を与えておきます。
$ sudo chmod +x cpanm
KHcoderをダウンロード
ここからソースコードをダウンロードして任意の場所に展開します。
私もApplications以下に配置してやってみました。
http://khc.sourceforge.net/dl.html
展開したフォルダに移動します。
cd /Applications/kh_coder/
KHcoderを起動します。
perl kh_coder.pl
perlモジュールの追加
perlモジュールが足りないと文句を言われるので追加していきます。
私は以下のモジュールを入れました。
sudo cpanm Jcode sudo cpanm Tk sudo cpanm DBD::CSV sudo cpanm Spreadsheet::ParseExcel sudo cpanm Spreadsheet::WriteExcel sudo cpanm Unicode::String sudo cpanm DBD::mysql sudo cpanm Spreadsheet::XLSX sudo cpanm Spreadsheet::ParseXLSX sudo cpanm Clipboard sudo cpanm Statistics::Lite sudo cpanm Algorithm::NaiveBayes sudo cpanm Net::Telnet sudo cpanm YAML sudo cpanm Text::Iconv
igraphというパッケージは最新バージョンに対応していないらしいので古いものをDLしてきました。
Index of /src/contrib/Archive/igraph
ほかのパッケージと同じ場所に置いて、Rコンソールでインストールします。
install.packages("/Library/Frameworks/R.framework/Versions/3.4/Resources/library/igraph_0.7.1.tar.gz", repos = NULL)
Tkのインストール
Tkを入れるときに以下のエラーが出たので、
! Configure failed for Tk-804.034.
調べたところ、ActivePerlというのを入れないといけないらしいです。
あと、XcodeとXQuartzも必要のようです。
・以下のページからActivePerlをDLします。
https://www.activestate.com/activeperl
・XQuartzをインストール
XQuartz
・Xcodeをインストール(appストアから)
ActivePerlのPATHを追加します。
$ export PATH=/usr/local/ActivePerl-5.20/bin:$PATH
X11をリンクさせる
$ sudo ln -s /opt/X11 /usr/X11
Rのパッケージを導入
RコンソールでRのパッケージを導入しました。
install.packages("RColorBrewer") install.packages("wordcloud") install.packages("amap") install.packages("ggdendro") install.packages("maptools") install.packages("ade4") install.packages("scatterplot3d")
設定を反映させるため必要に応じてPCを再起動しておきます。
再びKHcoderを起動してみます。
cd /Applications/kh_coder/ perl kh_coder.pl
やっとこさ立ち上がりました。
しかし実行してみると以下のエラーが出るので、ターミナルの言語環境をSJISに変更してから起動しないといけないみたいです。
ターミナルのデフォルト言語環境はUTF8です。
ターミナル > 環境設定 > プロファイル > 詳細
Warning message: In Sys.setlocale(category = "LC_ALL", locale = "ja_JP.EUC-JP") : OS reports request to set locale to "ja_JP.EUC-JP" cannot be honored
さらにさらに、新規プロジェクトでファイルを開こうとすると、
「MySQLのデータベースの処理に失敗しました。KH Coderを終了します。List DBs」のエラーが出ます。
この掲示板の質問と作者先生の回答にあるとおり、configフォルダのcoder.iniファイルでsql_usernameとsql_passwordの設定をします。
KH Coder 掲示板
ターミナルとXQuartz再起動したらちゃんと読み込んでくれました。
ちなみにMySQLでHOST名を確認する手順は以下の通りです。
$ mysql.server start $ mysql -uroot -p mysql> SELECT Host, User FROM mysql.user; +-----------+---------------+ | Host | User | +-----------+---------------+ | localhost | mysql.session | | localhost | mysql.sys | | localhost | root | +-----------+---------------+
使用感は次回書きます。