みなさん、こんにちは。
先日、テキストマイニングに関する記事を書きました。
テキストマイニングはRなどの統計ソフトを使って実施される場合が多いのですが、統計ソフトは機能が多すぎて少し難解です。テキストマイニングを実施する前に、操作の難解さに挫折してしまうかもしれません。
そこで活躍するのが「KH Coder」というテキストマイニング専用のソフトウェアです。KH Coderは、多変量解析や共起ネットワークなどの手法をGUIから実施でき、文書のコンセプトや特徴を探索することができます。
今回は、この「KH Coder」を、Bodhi Linux 7.0.0とUbuntu 22.04にインストールする方法をご紹介します。
KH CoderとLinux
KH CoderはWindows、Mac、そしてLinuxで動作するクロスプラットフォーム対応のソフトウェアです。
以前はベータ版として無料で利用できましたが、2023年12月に正式版のバージョン3がリリースされ、有料版の販売が始まりました。
現在無料で試したい場合、機能制限ありのStarting版(Windowsのみ)を使うか、GitHubから製品版より古いソースコードをダウンロードして自分で設定するかの2通りの方法しかありません。
今回のようにLinux環境でKH Coderを利用する場合は、基本的にソースコードから自分でセットアップする必要があります。本家GitHubにはUbuntu 20.04へのインストールを想定したVagrantfileが公開されており、これを参考にすればBodhi LinuxやUbuntu 22.04にもインストールできそうに見えます。
しかし、実際に調査を進めた結果、KH Coderを直接インストールすることは断念しました。その理由は、KH Coderの動作にはOpenJDK、MySQL、Rといったアプリケーションのバージョンが厳密に指定されており、これらを直接インストールすると他のアプリケーションとの競合が起こる可能性が非常に高いためです。
そこでたどり着いたのが、「Docker環境でKH Coderを動かす」という結論です。
幸運にも、すでにDockerでKH Coderを動作させた先駆者の方(KH Coder を Docker で動かす(2022))がいらっしゃったので、その情報を参考に、Bodhi Linux 7.0.0とUbuntu 22.04のDocker環境でKH Coderを動作させることに成功しました。
Docker環境でのKH Coderセットアップ手順
ここからは、具体的なインストール手順をご紹介します。
手順1: Dockerのインストール
まず、Dockerをインストールします。以下のコマンドを実行してください。
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update && sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin
手順2: KH Coder in Dockerのインストール
次に、KH CoderをDockerで動かすための環境をダウンロード、設定します。
- KH Coder in Dockerのダウンロード
git clone https://github.com/sinchiba-backyard/NL2E.git
cd NL2E
git submodule init
git submodule update
- KH Coderのソースを最新に更新
git submodule update --remote
- チュートリアル用ファイルのダウンロードと展開
wget https://khcoder.net/tutorial_data_3x.zip
unzip -x tutorial_data_3x.zip -d KHCoder/khcoder/
- Docker起動
xhost +local:docker
sudo docker compose up
- 不足モジュールのインストール
nl2e
のDockerイメージにはPerlモジュールが不足しているのでインストールします。sudo docker exec -it nl2e-nl2e-1 /bin/bash
cpan install File::Copy::Recursive
exit
- NL2Eフォルダ直下の
do.sh
の編集
ダウンロードしたコードをそのまま実行するとDockerのコンテナ名が異なりエラーになるため、do.sh
の4行目と5行目を以下のように修正します。DOCKER_ID=${DIR_NAME}-mysql-1
NL2E_DOCKER_ID=${DIR_NAME}-nl2e-1
手順3: KH Coderの実行と終了
いよいよKH Coderを起動します。
- KH Coderの実行
NL2E
フォルダに移動し、以下のコマンドを実行します。sudo /bin/bash ./do.sh
無事実行されると、KH Coderのウィンドウが表示されるはずです!
- KH Coderの終了手順
KH Coderのウィンドウを閉じたら、以下のコマンドでDockerコンテナを終了させます。sudo docker compose down

2回目以降の起動と終了
2回目以降は、少し起動手順が変わります。
- 起動
NL2E
フォルダへ移動し、以下のコマンドを実行します。sudo docker compose up
sudo docker exec -it nl2e-nl2e-1
/bin/bash
cpan install File::Copy::Recursive
cd /KHCoder/khcoder/
/usr/bin/perl ./kh_coder.pl
- 終了
KH Coderのウィンドウを閉じたら、Dockerから出てコンテナを終了させます。exit
sudo docker compose down
参考: Dockerコンテナを完全に削除したい場合
Dockerが起動していない状態で以下のコマンドを実行すると、すべての停止中コンテナと未使用イメージが削除されます。間違って実行しないようにご注意ください。
sudo docker system prune -a
まとめ
これで、Bodhi Linux 7.0.0とUbuntu 22.04というLinux環境でも、快適にKH Coderを利用できる基盤が整いました。
今回の導入方法の最大のポイントは、やはりDockerを活用した点にあります。
KH Coderのような特定のバージョンに厳しく依存するアプリケーションは、直接Linuxシステムにインストールしようとすると、他のソフトウェアとの依存関係の競合や、複雑な環境構築の手間といった問題に直面しがちです。しかし、Dockerを使うことで、これらの問題をスマートに回避できます。Dockerコンテナは、必要なアプリケーションとその依存関係をすべてパッケージ化し、ホストシステムから隔離された環境で動作させるため、クリーンで安定した動作が実現します。
この方法であれば、Linux環境を汚すことなく、手軽にKH Coderを試すことが可能です。
テキストマイニングの世界に足を踏み入れたいけれど、環境構築でつまずきたくないという方は、ぜひ今回の手順を参考に、KH Coderの導入に挑戦してみてください。
本日も最後までお読みいただきありがとうございました。
それでは、よいテキストマイニングライフを!