冴えない彼氏のKH-coderの使い方（Mac導入編）

#はじめに

　KH-coderをMacで使おうと思いたち、インストールしようとしたのである。その際、参考となるサイトが少ないことに辟易し、ここにその方法を記そうと思い立った次第である。
(決してcpanmをclean upしようとして、sudo rm -rfして ３ヶ月間のデータを失ったからでない←聞かれてない)
今回は導入編であるので、具体的な解析については他のサイトを読んでほしい。

後、タイトルに関しては察してくれ。

##実行環境
MacBook Pro(15-inch,2018)
プロセッサ　2.9 Ghz Intel Core i9
メモリ  32GB 2400 MHz DDR4
OS:macOS Mojave(ver.10.14.6)

#前準備

##X-code,Homebrewをインストールできていない場合

##X-codeのインストール

```{bash}
xcode-select --install
```
###Homebrewをインストール

Homebrewの公式サイト(https://brew.sh/index_ja.html) にインストールコマンドが掲載されているので、それに載っているスクリプトをターミナルを開き実行。

```{bash}
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
```

####インストール後の確認

```{bash}
brew doctor #インストール完了後の確認
brew --version
```
###HomebrewでGitをインストール

```bash
brew install git
```

#準備

##XQuartzをインストール
このサイト（https://www.xquartz.org/index.html ）のdmgをインストール


##Stanford-Posttaggerをインストール

 Stanford Log-linear Part-Of-Speech Tagger(https://nlp.stanford.edu/software/tagger.shtml#About)の公式サイトからインストールする。

##openjdkのインストール

```{bash}
brew install openjdk13
```
##mecabのインストール

```{bash}
brew install mecab
brew install mecab-ipandic
```
##mysqlのインストール
```{bash}
brew install mysql
```
インストール終了後

```bash
brew services start mysql
==> Successfully started `mysql` (label: homebrew.mxcl.mysql)
#成功すると上記のように表示される
```
起動後、次のコマンドを実行しパスワードを設定する。
コマンドを実行すると、最初にVALIDATE PASSWORD PLUGINという強固なパスワード設定を助けるプラグインを使用するかどうかを質問される。
（今回私はローカルでの使用しか想定していため、何も入力しなかった。）

次にrootユーザーのパスワードを設定する

```bash 
mysql_secure_installation
```
(今回はパスワードを設定せず、次に進んだ）


```bash
mysql -u root
```

これで

```bash
(base) user:~ user$ mysql -u root

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 8.0.22 Homebrew

Copyright (c) 2000, 2020, 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> 
```
となれば成功。


###mysqlの起動，終了
####起動

```bash
brew services start mysql
```
もしくは

```bash
mysql.server start

####終了
```bash
brew services stop mysql
```
もしくは

```bash
mysql.server stop
```

##Rのインストール

```{bash}
brew cask  install R
```
R単体と同時にRstudio(https://rstudio.com/products/rstudio/ )も一緒にインストールした

以下KH-coderを動かすために必要なパッケージ

```R
install.packages("ade4", dependencies=TRUE)
install.packages("amap", dependencies=TRUE)
install.packages("Cairo", dependencies=TRUE)
install.packages("cluster", dependencies=TRUE)
install.packages("codetools", dependencies=TRUE)
install.packages("colorspace", dependencies=TRUE)
install.packages("dichromat", dependencies=TRUE)
install.packages("foreign", dependencies=TRUE)
install.packages("ggdendro", dependencies=TRUE)
install.packages("ggplot2", dependencies=TRUE)
install.packages("ggnetwork", dependencies=TRUE)
install.packages("ggsci", dependencies=TRUE)
install.packages("gtable", dependencies=TRUE)
install.packages("igraph", dependencies=TRUE)
install.packages("KernSmooth", dependencies=TRUE)
install.packages("lattice", dependencies=TRUE)
install.packages("maptools", dependencies=TRUE)
install.packages("MASS", dependencies=TRUE)
install.packages("Matrix", dependencies=TRUE)
install.packages("mgcv", dependencies=TRUE)
install.packages("munsell", dependencies=TRUE)
install.packages("nlme", dependencies=TRUE)
install.packages("nnet", dependencies=TRUE)
install.packages("permute", dependencies=TRUE)
install.packages("pheatmap", dependencies=TRUE)
install.packages("plyr", dependencies=TRUE)
install.packages("proto", dependencies=TRUE)
install.packages("RColorBrewer", dependencies=TRUE)
install.packages("Rcpp", dependencies=TRUE)
install.packages("reshape2", dependencies=TRUE)
install.packages("rgl", dependencies=TRUE)
install.packages("rpart", dependencies=TRUE)
install.packages("scales", dependencies=TRUE)
install.packages("scatterplot3d", dependencies=TRUE)
install.packages("slam", dependencies=TRUE)
install.packages("som", dependencies=TRUE)
install.packages("sp", dependencies=TRUE)
install.packages("spatial", dependencies=TRUE)
install.packages("stringr", dependencies=TRUE)
install.packages("survival", dependencies=TRUE)
install.packages("vegan", dependencies=TRUE)
install.packages("wordcloud", dependencies=TRUE)
```


##perlのインストール

###anyenvのインストール

```{bash}
brew install anyenv
echo 'eval "$(anyenv init -)"' >> ~/.bash_profile
exec $SHELL -l
anyenv install --init
```
###anyenvのPluginのインストール

```{bash}
mkdir -p ~/.anyenv/plugins #anyenvのプラグインをインストールする「plugins」ディレクトリの作成

git clone https://github.com/znz/anyenv-update.git ~/.anyenv/plugins/anyenv-update
#anyenv updateコマンドでanyenvで入れた**env系の全てをアップデートしてくれるプラグイン

git clone https://github.com/znz/anyenv-git.git ~/.anyenv/plugins/anyenv-git
#anyenv gitコマンドでanyenvで入れた**env系の全てのgitコマンドを実行するプラグイン

```

###plenv

```{bash}
anyone install plenv
exec  $SHELL -l
```

###perlのインストール

```{bash}
plenv install (インストールしたいperl-version)
exec  $SHELL -l
plenv global (インストールしたperl-version)
```

###cpanmをインストール

```{bash}
plenv install-cpanm
exec  $SHELL -l
```
####cpanモジュールをアンインストール
```{bash}
cpanm Unicode::Japanese
exec  $SHELL -l
```

後はKH-coderに必要なもの(https://github.com/ko-ichi-h/khcoder/issues/91 )をただインストールするだけ

```bash
cpanm Jcode*
cpanm Tk*
cpanm DBI
cpanm DBD::CSV (allow testing, say “y”)
cpanm File::BOM*
cpanm Lingua::JA::Regular::Unicode (needs sudo)*
cpanm Net::Telnet
cpanm Excel::Writer::XLSX
cpanm DBD::mysql
cpanm Spreadsheet::ParseExcel::FmtJapan
cpanm Spreadsheet::ParseXLSX
cpanm Statistics::ChisqIndep*
cpanm Statistics::Lite*
cpanm Unicode::Escape*
cpanm Algorithm::NaiveBayes*
cpanm Lingua::Sentence*
cpanm Proc::Background
```

このperlパッケージをインストールするところが準備段階で一番ハマる（私はPCのデータを全て吹き飛ばしたw）。

####以下ハマったこと(cpanm)

```{bash}
cpanm DBD::mysql
```
とした時に以下のエラーメッセージが出た

```{bash}
Can't link/include C library 'ssl', 'crypto', aborting.
```

このサイト（　https://blog.mitsuto.com/macos-mojave-perl-dbd-mysql ）を参考にして、以下のように対応した

```{bash}
cpanm DBD::mysql --configure-args="--libs='-L/usr/local/opt/openssl/lib -lssl -lcrypto -L/usr/local/lib -lmysqlclient'"
```


##KH-coderのインストール

```bash
git clone https://github.com/ko-ichi-h/khcoder.git
```


#KH-coder起動

##mysql起動
ターミナルからmysqlを起動する

```bash
mysql.server start mysql
mysql -u root

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 8.0.22 Homebrew

Copyright (c) 2000, 2020, 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> SET GLOBAL local_infile=on; #これがないとmysqlに接続できないエラーが起きる
Query OK, 0 rows affected (0.00 sec)
SET GLOBAL local_infile=on; 
```

##KH-coder 起動

configにあるconfig.iniを以下のように書き換える

```
sql_username	root
sql_password	#今回は設定しなかった
```

XQuartzを起動し、KH-coderのkh_coder.plのある場所に移動する。

```bash
cd (kh_coder.plのある場所)
perl kh_coder.pl
```

プロジェクトの設定を開き以下の画面が出てくる
![スクリーンショット 2020-10-26 23.31.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/398478/b681a52e-4032-2b73-c3de-c8f3cede85f8.png)

日本語がMeCabしか使えない上(少なくとも茶筌が見つからなかった)、辞書コードはutf-8であるため
utf-8
と設定する

Stanford POS Taggerの設定を開き
.jarファイル、.taggerファイルを設定する


後はKH-coderの公式のチュートリアルデータ（https://khcoder.net/tutorial.html ）でどのエラー画面が起きるかテストする。

##日本語入力について

XQuartzは日本語を入力できないため、適当なテキストエディタに日本語を書き、ctr+vで貼り付ける。

#最後に

KH-coderを使うときはWindowsでやろう。絶対それが楽。

#参考にしたもの
##KH-coder公式
KH-coder GitHub (https://github.com/ko-ichi-h/khcoder)

##MacでKH-coderインストールした方々の備忘録
池田大輔氏のMacでのKH Coderのインストール(https://researchmap.jp/blogs/blog_entries/view/75043/1665e5f4b34a161b470604b59bf39e12?frame_id=616670)
@y-urakawa 氏の【Mac】KH Coder導入手順(https://qiita.com/y-urakawa/items/0423bf6775de8e6305f3)
##mysql関連

progarteのMySQLの開発環境を用意しよう（macOS）（https://prog-8.com/docs/mysql-env）

mita2db氏のMySQL 8.0 の LOAD DATA で The used command is not allowed with this MySQL version エラー（https://mita2db.hateblo.jp/entry/2020/01/13/163218）

##perl関連
@rinpa 氏のanyenv + macOS環境構築（https://qiita.com/rinpa/items/81766cd6a7b23dea9f3c）

@laikuaut 氏のplenvの基本メモ書き(https://qiita.com/laikuaut/items/82c9b402920e30c2c4eb)

みつと氏のmacOS(mojave)にDBD::mysqlをインストールしたいっ！(https://blog.mitsuto.com/macos-mojave-perl-dbd-mysql)
##KH-coder module関連
Stanford  Pos Tagger(https://nlp.stanford.edu/software/tagger.shtml#About)