LoginSignup
6
1

More than 1 year has passed since last update.

Ubuntu 20.04 に KH Coder を、ほぼ apt-get install のみでインストールする

Last updated at Posted at 2021-11-03

従来のインストール方法だと個別にインストールするものが多く大変でしたが、オフィシャルアカウント様のアドバイスのおかげで、かなり簡単にインストールできました。
併せて、mecab の辞書として mecab-ipadic-NEologd も適用しています。
(2021/10/30 時点のインストール方法になります)

手元の環境は以下になります。

  • VirtualBox 6.1.26
  • メモリ 6144MB
  • Ubuntu 20.04 LTS

事前にcurl・vim・gcc・make・perlとGuest Additionsをインストールします。

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

Perlのライブラリ・mecab・MySQLサーバーとMySQLクライアント・OpenJDK・RとRのライブラリをインストールします。

sudo apt-get install -y \
cpanminus \
fonts-ipafont-gothic \
libalgorithm-naivebayes-perl \
libclass-accessor-lite-perl \
libcryptx-perl \
libdbd-csv-perl \
libdbd-mysql-perl \
libdbi-perl \
libexcel-writer-xlsx-perl \
libextutils-config-perl \
libextutils-helpers-perl \
libextutils-installpaths-perl \
libfile-bom-perl \
libgraphics-colorutils-perl \
libgsl-dev \
libjcode-perl \
liblingua-sentence-perl \
libmodule-build-tiny-perl \
libnet-telnet-perl \
libproc-background-perl \
libspreadsheet-parseexcel-perl \
libstatistics-distributions-perl \
libstatistics-lite-perl \
libtest-requires-perl \
libtext-diff-perl \
libunicode-escape-perl \
libxml-twig-perl \
libxml2-dev \
libyaml-perl \
perl-tk \
mecab \
mysql-server \
mysql-client \
openjdk-8-jdk \
r-base-core \
r-cran-ade4 \
r-cran-amap \
r-cran-cairo \
r-cran-cluster \
r-cran-codetools \
r-cran-colorspace \
r-cran-dichromat \
r-cran-foreign \
r-cran-ggdendro \
r-cran-ggsci \
r-cran-gtable \
r-cran-igraph \
r-cran-kernsmooth \
r-cran-lattice \
r-cran-maptools \
r-cran-mass \
r-cran-matrix \
r-cran-mgcv \
r-cran-munsell \
r-cran-nlme \
r-cran-nnet \
r-cran-permute \
r-cran-pheatmap \
r-cran-plyr \
r-cran-proto \
r-cran-rcolorbrewer \
r-cran-rcpp \
r-cran-reshape2 \
r-cran-rgl \
r-cran-rpart \
r-cran-scales \
r-cran-scatterplot3d \
r-cran-slam \
r-cran-sp \
r-cran-spatial \
r-cran-stringr \
r-cran-survival \
r-cran-tm \
r-cran-vegan \
r-cran-wordcloud

個別に作業が必要なライブラリをインストールします。

sudo cpanm Lingua::JA::Regular::Unicode Statistics::ChisqIndep
sudo cpanm DOY/Spreadsheet-ParseXLSX-0.17.tar.gz
sudo Rscript -e 'install.packages(c("ggnetwork", "som", "topicmodels"))'
sudo Rscript -e 'install.packages("http://cran.r-project.org/src/contrib/Archive/ggplot2/ggplot2_2.2.1.tar.gz", repos=NULL, type="source")'

KH Coderをインストールします。

KHCODER_VERSION=3.Beta.03a
curl -sLO https://github.com/ko-ichi-h/khcoder/archive/refs/tags/${KHCODER_VERSION}.tar.gz
tar xf ${KHCODER_VERSION}.tar.gz -C /home/(任意のユーザーディレクトリ)
ln -s /home/(任意のユーザーディレクトリ)/khcoder-${KHCODER_VERSION} /home/(任意のユーザーディレクトリ)/khcoder
curl -sLO https://nlp.stanford.edu/software/stanford-postagger-full-2015-04-20.zip
unzip stanford-postagger-full-2015-04-20.zip -d /home/(任意のユーザーディレクトリ)

MySQLの設定を編集します。(ファイルからのインポートを許可する)

sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

以下のように追記します。

[mysqld]
local-infile=1

[client]
loose-local-infile=1

MySQLを再起動します。

systemctl restart mysql.service

MySQLにユーザーを作成し、権限を付与します。

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

ここで一旦KH Coderを起動し、画面を閉じてKH Coderを終了します。(config/coder.iniが生成される)

cd khcoder
perl kh_coder.pl

KH Coderの設定を編集します。

vi 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

サンプル用の csv ファイルを作成します。

vi test1.csv

以下のようなデータを記述して保存します。

contents
8月3日に放送された「中居正広の金曜日のスマイルたちへ」(TBS系)で、1日たった5分でぽっこりおなかを解消するというダイエット方法を紹介。キンタロー。のダイエットにも密着。

KH Coder を起動して「プロジェクト → 新規」とし、「参照」で作成した test1.csv を指定し、「ChaSen」ではなく「MeCab」を指定して「OK」とします。
「前処理 → テキストのチェック」を実行してから、「前処理 → 前処理の実行」を実行します。
最後に、「ツール → 抽出語 → 抽出語リスト」を選択します。(表示されるウィンドウが小さくて見切れている場合があるので、マウス等で適宜広げます)

screenshots_1.png

以上で KH Coder のインストールは確認できました。

続いて、mecab コマンドを実行して動作を確認します。

mecab
8月3日に放送された「中居正広の金曜日のスマイルたちへ」(TBS系)で、1日たった5分でぽっこりおなかを解消するというダイエット方法を紹介。キンタロー。のダイエットにも密着。
8   名詞,数,*,*,*,*,*
月 名詞,一般,*,*,*,*,月,ツキ,ツキ
3   名詞,数,*,*,*,*,*
日 名詞,接尾,助数詞,*,*,*,日,ニチ,ニチ
に 助詞,格助詞,一般,*,*,*,に,ニ,ニ
放送  名詞,サ変接続,*,*,*,*,放送,ホウソウ,ホーソー
さ 動詞,自立,*,*,サ変・スル,未然レル接続,する,サ,サ
れ 動詞,接尾,*,*,一段,連用形,れる,レ,レ
た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
「 記号,括弧開,*,*,*,*,「,「,「
中居  名詞,固有名詞,人名,姓,*,*,中居,ナカイ,ナカイ
正広  名詞,固有名詞,人名,名,*,*,正広,マサヒロ,マサヒロ
の 助詞,連体化,*,*,*,*,の,ノ,ノ
金曜日   名詞,副詞可能,*,*,*,*,金曜日,キンヨウビ,キンヨービ
の 助詞,連体化,*,*,*,*,の,ノ,ノ
スマイル    名詞,一般,*,*,*,*,スマイル,スマイル,スマイル
たち  名詞,接尾,一般,*,*,*,たち,タチ,タチ
へ 助詞,格助詞,一般,*,*,*,へ,ヘ,エ
」(    名詞,サ変接続,*,*,*,*,*
TBS 名詞,一般,*,*,*,*,*
系 名詞,接尾,一般,*,*,*,系,ケイ,ケイ
)   名詞,サ変接続,*,*,*,*,*
で 助詞,格助詞,一般,*,*,*,で,デ,デ
、 記号,読点,*,*,*,*,、,、,、
1   名詞,数,*,*,*,*,*
日 名詞,接尾,助数詞,*,*,*,日,ニチ,ニチ
たっ  動詞,自立,*,*,五段・タ行,連用タ接続,たつ,タッ,タッ
た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
5   名詞,数,*,*,*,*,*
分 名詞,接尾,助数詞,*,*,*,分,フン,フン
で 助動詞,*,*,*,特殊・ダ,連用形,だ,デ,デ
ぽ 形容詞,接尾,*,*,形容詞・アウオ段,ガル接続,ぽい,ポ,ポ
っ 動詞,非自立,*,*,五段・カ行促音便,連用タ接続,く,ッ,ッ
こり  動詞,自立,*,*,一段,連用形,こりる,コリ,コリ
おなか   名詞,一般,*,*,*,*,おなか,オナカ,オナカ
を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
解消  名詞,サ変接続,*,*,*,*,解消,カイショウ,カイショー
する  動詞,自立,*,*,サ変・スル,基本形,する,スル,スル
という   助詞,格助詞,連語,*,*,*,という,トイウ,トユウ
ダイエット 名詞,サ変接続,*,*,*,*,ダイエット,ダイエット,ダイエット
方法  名詞,一般,*,*,*,*,方法,ホウホウ,ホーホー
を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
紹介  名詞,サ変接続,*,*,*,*,紹介,ショウカイ,ショーカイ
。 記号,句点,*,*,*,*,。,。,。
キンタロー 名詞,一般,*,*,*,*,*
。 記号,句点,*,*,*,*,。,。,。
の 助詞,連体化,*,*,*,*,の,ノ,ノ
ダイエット 名詞,サ変接続,*,*,*,*,ダイエット,ダイエット,ダイエット
に 助詞,格助詞,一般,*,*,*,に,ニ,ニ
も 助詞,係助詞,*,*,*,*,も,モ,モ
密着  名詞,サ変接続,*,*,*,*,密着,ミッチャク,ミッチャク
。 記号,句点,*,*,*,*,。,。,。
EOS

事前に mecab-ipadic-NEologd に必要なものをインストールします。(mecab はここまででインストール済み)

sudo apt-get install -y aptitude
sudo aptitude install libmecab-dev mecab-ipadic-utf8 git xz-utils file

mecab-ipadic-NEologd をインストールします。

git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git
cd mecab-ipadic-neologd
./bin/install-mecab-ipadic-neologd -n

インストール中のログに以下のようにインストール場所が明記されているので控えておきます。

[install-mecab-ipadic-NEologd] : mecab-ipadic-NEologd will be install to /usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd

mecab の設定を編集します。

sudo vi /etc/mecabrc

以下のように編集します。(事前に控えておいた mecab-ipadic-NEologd インストール場所を記述します)

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

mecab コマンドを実行して、固有名詞等が解析されていることを確認します。

mecab
8月3日に放送された「中居正広の金曜日のスマイルたちへ」(TBS系)で、1日たった5分でぽっこりおなかを解消するというダイエット方法を紹介。キンタロー。のダイエットにも密着。
8月3日    名詞,固有名詞,一般,*,*,*,8月3日,ハチガツミッカ,ハチガツミッカ
に 助詞,格助詞,一般,*,*,*,に,ニ,ニ
放送  名詞,サ変接続,*,*,*,*,放送,ホウソウ,ホーソー
さ 動詞,自立,*,*,サ変・スル,未然レル接続,する,サ,サ
れ 動詞,接尾,*,*,一段,連用形,れる,レ,レ
た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
「 記号,括弧開,*,*,*,*,「,「,「
中居正広の金曜日のスマイルたちへ    名詞,固有名詞,一般,*,*,*,中居正広の金曜日のスマイルたちへ,ナカイマサヒロノキンヨウビノスマイルタチヘ,ナカイマサヒロノキンヨービノスマイルタチヘ
」(    記号,一般,*,*,*,*,*
TBS 名詞,固有名詞,一般,*,*,*,TBS,ティービーエス,ティービーエス
系 名詞,接尾,一般,*,*,*,系,ケイ,ケイ
)   記号,一般,*,*,*,*,*
で 助動詞,*,*,*,特殊・ダ,連用形,だ,デ,デ
、 記号,読点,*,*,*,*,、,、,、
1日    名詞,固有名詞,一般,*,*,*,1日,ツイタチ,ツイタチ
たった   副詞,助詞類接続,*,*,*,*,たった,タッタ,タッタ
5分    名詞,固有名詞,一般,*,*,*,5分,ゴフン,ゴフン
で 助詞,格助詞,一般,*,*,*,で,デ,デ
ぽっこりおなか   名詞,固有名詞,一般,*,*,*,ぽっこりおなか,ポッコリオナカ,ポッコリオナカ
を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
解消  名詞,サ変接続,*,*,*,*,解消,カイショウ,カイショー
する  動詞,自立,*,*,サ変・スル,基本形,する,スル,スル
という   助詞,格助詞,連語,*,*,*,という,トイウ,トユウ
ダイエット方法   名詞,固有名詞,一般,*,*,*,ダイエット方法,ダイエットホウホウ,ダイエットホウホー
を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
紹介  名詞,サ変接続,*,*,*,*,紹介,ショウカイ,ショーカイ
。 記号,句点,*,*,*,*,。,。,。
キンタロー。  名詞,固有名詞,一般,*,*,*,キンタロー。,キンタロー,キンタロー
の 助詞,連体化,*,*,*,*,の,ノ,ノ
ダイエット 名詞,サ変接続,*,*,*,*,ダイエット,ダイエット,ダイエット
に 助詞,格助詞,一般,*,*,*,に,ニ,ニ
も 助詞,係助詞,*,*,*,*,も,モ,モ
密着  名詞,サ変接続,*,*,*,*,密着,ミッチャク,ミッチャク
。 記号,句点,*,*,*,*,。,。,。
EOS

サンプル用の csv ファイルを作成します。(念のため、test2としてファイル名を変えてます)

vi test2.csv

以下のようなデータを記述して保存します。

contents
8月3日に放送された「中居正広の金曜日のスマイルたちへ」(TBS系)で、1日たった5分でぽっこりおなかを解消するというダイエット方法を紹介。キンタロー。のダイエットにも密着。

KH Coder を起動して test2.csv を指定し、前処理を実行して抽出語リストを表示します。
実際に固有名詞等が抽出されているか確認します。

screenshots_2.png

以上で mecab-ipadic-NEologd の適用も確認できました。

参考になった記事

khcoder/doc_contrib/Vagrantfile
KH Coder を Ubuntu にインストールする(2021)
mecab-ipadic-neologd/README.md
Ubuntu 20.04 LTSにMeCab(mecab-ipadic-neologd)/CaboChaのインストール

6
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
1