KH CoderをMacにインストール

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の仕様が変わったらしいです。