adbird(広告鳥) 備忘録

Ubuntu 22.04 に KH coder をインストール

基本は公式サイトkhcoder/Vagrantfile at master · ko-ichi-h/khcoder · GitHubを参考に。一部、追加しないといけないモジュールがあったり、必要に応じて公式サイトと違う方法を取ったりしたけど。

事前準備

まずはリポジトリをアップデートし、事前に必要なものをインストールしておく。

$ sudo apt-get update && sudo apt-get upgrade
$ sudo apt-get install -y curl gcc make perl

諸々インストールするためのhkcoder.sh スクリプト

khcoder/Vagrantfile at master · ko-ichi-h/khcoder · GitHubに書いてある下記の部分をコピペして(最後の ubuntu-desktop は入れない)、ファイル名を hkcoder.sh としたスクリプトを作成。

apt-get install -y                 \
  cpanminus                        \
  fonts-ipafont-gothic             \
  libalgorithm-naivebayes-perl     \
  libclass-accessor-lite-perl      \
 ︙
 ︙
  r-cran-cowplot

上記スクリプトを実行。

$ sudo sh hkcoder.sh

なんかいろいろ。よく分からないけど…w。

$ sudo cpanm Lingua::JA::Regular::Unicode Statistics::ChisqIndep
$ sudo Rscript -e 'install.packages(c("ggnetwork", "som", "topicmodels", "proxy"))'
$ sudo cpanm DOY/Spreadsheet-ParseXLSX-0.17.tar.gz

以下はやはり3番目のコマンドでsudoをつけ忘れていたために出たエラーだった。
記録のために残しておく。

(上記の3番めを sudo を付け忘れていたからもしれないが…)KH Coderをインストール後、KH Coderを起動しようとしたら、

Can't locate Spreadsheet/ParseXLSX.pm in @INC (you may need to install the Spreadsheet::ParseXLSX module) (@INC contains: /opt/khcoder-3.Beta.07/kh_lib/screen_code/rde_kh_spreadsheet /opt/khcoder-3.Beta.07/kh_lib/screen_code CODE(0x5631deb5efa0) /opt/khcoder-3.Beta.07/kh_lib /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.34.0 /usr/local/share/perl/5.34.0 /usr/lib/x86_64-linux-gnu/perl5/5.34 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl-base /usr/lib/x86_64-linux-gnu/perl/5.34 /usr/share/perl/5.34 /usr/local/lib/site_perl CODE(0x5631deb5f000) .) at /opt/khcoder-3.Beta.07/kh_lib/screen_code/rde_kh_spreadsheet/rde_xlsx.pm line 7.

のエラーが出たので、教えて!ChatGPTくん!ということで、ChatGPTに聞いたら、以下でPerlモジュールを入れろとご教示いただいたいので、以下でインストール。(追記:上記の3番目のコマンド $ sudo cpanm DOY〜 をしていたら必要ないはず。)

$ sudo apt-get install libspreadsheet-parsexlsx-perl

KH Coderをダウンロード・インストール

ここから先は、公式 khcoder/Vagrantfile at master · ko-ichi-h/khcoder · GitHubのやり方から少し外れて、Ubuntu 20.04 に KH Coder を、ほぼ apt-get install のみでインストールするを参考にしている。

公式サイトのやり方だと KH Coderの起動に、毎回 sudo をつけないといけなくなるので…。

一度、端末を閉じ、sudo を抜ける。端末を再起動して、$HOME(/home/〜)〔端末を再起動すると自動的にここになる〕で以下を実行。

$ KHCODER_VERSION=3.Beta.07
curl -sLO https://github.com/ko-ichi-h/khcoder/archive/refs/tags/${KHCODER_VERSION}.tar.gz
$ tar xf ${KHCODER_VERSION}.tar.gz -C ./
$ ln -s ./khcoder-${KHCODER_VERSION} ./khcoder

たぶんこれは英文を分析するのに必要っぽい。英文を分析しないのであれば必要ないかも。

$ curl -sLO https://nlp.stanford.edu/software/stanford-postagger-full-2015-04-20.zip
$ unzip stanford-postagger-full-2015-04-20.zip -d ./khcoder

MySQLの設定を編集。

$ sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

nanoエディタで mysqld.cnf が開くので、

[mysqld]
local-infile=1

[client]
loose-local-infile=1

を最終行に追記。

MySQLを再起動

$ systemctl restart mysql.service

MySQLにユーザーを作成し、権限を付与。(以下を1行ずつ)

sudo mysql -uroot -p
CREATE USER khcoder@localhost IDENTIFIED BY 'khcoder';
GRANT ALL ON *.* TO khcoder@localhost;
exit

ここで一旦KH Coderを起動。

$ cd khcoder
$ perl kh_coder.pl

画面を閉じてKH Coderを終了。(config/coder.iniが生成される)

エディタでKH Coderの設定を開いて

$ nano config/coder.ini

以下のように編集。

mecab_unicode   UTF-8
mecabrc_path    /etc/mecabrc
sql_username    khcoder
sql_password    khcoder

再度、KH Coder を起動をしてみると、無事起動。

$ cd khcoder
$ perl kh_coder.pl

設定

プロジェクト>設定 で

mecab-ipadic-NEologd のインストール

上記まででKH Coderは使用できるようになったが、解析のための辞書として、mecab-ipadic-neologd とやらが賢いらしい。

公式サイトmecab-ipadic-neologdのとおりにインストールしていく。

$ sudo apt install aptitude
$ sudo aptitude install mecab libmecab-dev mecab-ipadic-utf8 git make curl xz-utils file
$ git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git
$ cd mecab-ipadic-neologd
$ sudo ./bin/install-mecab-ipadic-neologd -n

インストール先を確認する。

$ echo `mecab-config --dicdir`"/mecab-ipadic-neologd"

今回は

/usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd

と出た。

使い方は MeCab の -d オプションにカスタムシステム辞書のパス(例: */lib/mecab/dic/mecab-ipadic-neologd/)を指定して使う。

$ echo "8月3日に放送された「中居正広の金曜日のスマイルたちへ」(TBS系)で、1日たった5分でぽっこりおなかを解消するというダイエット方法を紹介。キンタロー。のダイエットにも密着。" | mecab -d /usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd

で、公式サイトのように解析されていれば、OK。

-d オプションを使わないで、mecabコマンドだけで、mecab-ipadic-neologdの辞書を使うようにする。

sudo nano /etc/mecabrc

エディタが開いたら、以下の前述で確認したインストール先に指定し直す。

; dicdir = /var/lib/mecab/dic/debian
dicdir = /usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd

mecabを標準辞書に戻すには上記の1行目を有効にして、2行目は無効にすればいいはず。

アンインストール

KH Coder が入っているフォルダを削除するだけ。

参考リンク