KH Coderという、自然言語の解析用の統合ソフトウエアをMacにインストールする際のメモ
環境
- MacOS10.11
関連モジュールのインストール
まず、関連するモジュールをインストールします。KH Coderは内部でR,MySQL,mecab,Perlを使用しますのでMacにあらかじめこれらを入れておく必要があります。
mysql
brewで入れるのが簡単です
brewって何って言う人はこのあたりを参考に入れてみてください
このあたりを参考にインストールします。DBのユーザ名、パスワードは任意に決めておきます
$ brew install mysql $ echo "[mysqld]" > /usr/local/etc/my.cnf $ echo "sql_mode = \"\"" >> /usr/local/etc/my.cnf $ mysql.server start
KH CoderはMySQL5.7だと不具合が出るのでsql_modeをブランクにしておきます
確認します
$ mysql -uroot Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 243 Server version: 5.7.12 Homebrew Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
R
同じくBrewが簡単です
$ brew install r
mecab
$ brew install mecab $ brew install mecab-ipadic
Perl
Macには初めからPerlがインストールされているので、今回は関連するモジュールを追加します。
$ sudo su - # perl -MCPAN -e shell
初めて起動する際には色々聞かれますがデフォルトで全てOKです。黙ってリターンキーを押しましょう
CPANのシェルが起動すれば黙々と以下インストールします
cpan> install Jcode cpan> install Tk cpan> install DBD::CSV cpan> install Net::Telnet cpan> install YAML cpan> install Spreadsheet::ParseExcel cpan> install Spreadsheet::ParseXLSX cpan> install Clipboard cpan> install Statistics::Lite cpan> install Algorithm::NaiveBayes cpan> install Text::Iconv
こんな感じでインストールしていきます。
たまにエラーが出る場合にはあわてず以下の通りにします
例えば Spreadsheet-ParseExcelがエラーになった場合には
# cd ~/.cpan/build # cd Spreadsheet-ParseExcel-0.65-OEiGuu # perl Makefile.PL # ./configure # make # make install
こんな感じです。
KH Coder
こちらからソースコードをダウンロードして解凍しておきます
KH Coderをダウンロードしたディレクトリに移動し一度起動します。こすればconfigいかにファイルが作成されます
$ perl kh_coder.pl
そのあと設定ファイルを設定します。インストールした際のMySQLのユーザ名とパスワード、Mecabを設定します。
$ vi kh_coder/config/config.ini c_or_j mecab sql_username ユーザ sql_password パスワード
設定ファイルの文字コードを修正します。nkfが入っていない場合にはbrew でインストールしてください
$ cd config $ nkf -s hinshi_mecab > /tmp/$$ && mv -f /tmp/$$ hinshi_mecab
起動
KH Coderをダウンロードしたディレクトリに移動します
$ perl kh_coder.pl
これで起動できるはずです。
こんな感じでPerlのエラーが出た際には、Perlのモジュールを入れてください。以下の例だとDBD/CSV.pmが足りないので install DBD::CSVをインストールします
$ perl kh_coder.pl Can't locate DBD/CSV.pm in @INC (you may need to install the DBD::CSV module) (@INC contains: /Users/utsubo/Downloads/kh_coder/kh_lib /Library/Perl/5.18/darwin-thread-multi-2level /Library/Perl/5.18 /Network/Library/Perl/5.18/darwin-thread-multi-2level /Network/Library/Perl/5.18 /Library/Perl/Updates/5.18.2/darwin-thread-multi-2level /Library/Perl/Updates/5.18.2 /System/Library/Perl/5.18/darwin-thread-multi-2level /System/Library/Perl/5.18 /System/Library/Perl/Extras/5.18/darwin-thread-multi-2level /System/L
cpan> install DBD::CSV
おまけ
mysql5.7でのエラーについて
前処理を実行するとこういうエラーが出ます
DBD::mysql::db do failed: Expression #3 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'khc0.hinshi.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by at /Users/utsubo/Downloads/kh_coder/kh_lib/mysql_exec.pm line 256. Exit (gui_errormsg.pm)
こちらによると5.7からGroupBYの仕様が変わったらしいです。