EC2 にコピペでサクっと mecab 入れる

# Introduction

## きっかけ
長らく自身のPC内でmecabと戯れていましたが、そろそろクラウド内でもいじってみたいと思いました。
今回はAWS CloudのEC2内に入れたいと思います。

しかしいくつかWebサイトを探しましたが、情報が古くて動きませんでした。
そこで、更新版という立ち位置で備忘録的にまとめておきます。


## 自己紹介
![smile.jpg](https://qiita-image-store.s3.amazonaws.com/0/262742/38a82ae5-98e6-8d78-b461-3d14024af15d.jpeg)

[自己紹介ページ](https://qiita.com/Senple/items/b47374e68e4d8d26d0cb)

### 環境情報

```terminal:環境情報
macOS Monterey ver:12.6.3
Amazon マシンイメージ (AMI): Amazon Linux 2023 AMI 2023.0.20230322.0 x86_64 HVM kernel-6.1
インスタンスタイプ: t2.micro
```


# Let's Start

タイトルからも分かる通り、下記のユーザーの記事を元に作成しました。

https://qiita.com/mojibakeo/items/2906162edf7045899974


## EC2の作成

下記の記事などを参考に作成しました。
ローカルからSSH接続をする関係で、キーペアを忘れずに作成しましょう。

https://qiita.com/takuma-jpn/items/b2c04b7a271a4472a900


## mecabインストール
### コピペコマンド

```
sudo yum install -y gcc gcc-c++
mkdir mecab
cd mecab
wget -O mecab-0.996.tar.gz "https://drive.google.com/uc?export=download&id=0B4y35FiV1wh7cENtOXlicTFaRUE"
tar xvzf mecab-0.996.tar.gz
cd mecab-0.996/
./configure --with-charset=utf8
make
make check
sudo make install
```

### コピペがうまく行かない場合
```
[ec2-user@XXXXXXX mecab-0.996]$ 
Redirecting output to ‘wget-log’.
```


この表示がされた場合は失敗です。自分の場合は、`ダウンロード元の配置変更` と `wgetのコマンド`のふた通りの原因で失敗していました。

- ダウンロードができない場合 (ダウンロード元の配置変更)
`cd mecab` の後のwget部分で動作しない場合は、本家のサイトでダウンロード元が変わっていないかを確認して下さい。

`wget -O mecab-0.996.tar.gz "https://drive.google.com/uc?export=download&id=0B4y35FiV1wh7cENtOXlicTFaRUE"`

- ダウンロードができない場合 (wgetのコマンド)

wgetをした際に、下記のように " が ” となっていると失敗します。

[成功]
wget -O mecab-0.996.tar.gz "https://drive.google.com/uc?export=download&id=0B4y35FiV1wh7cENtOXlicTFaRUE"

[失敗]
wget -O mecab-0.996.tar.gz ”https://drive.google.com/uc?export=download&id=0B4y35FiV1wh7cENtOXlicTFaRUE”

注意して下さい。[^1]


### コピペコマンド解説 [^2]

このコマンドは、EC2インスタンスにMeCabという日本語形態素解析エンジンをインストールするためのコマンドです。

具体的には、以下の手順を実行しています。

`sudo yum install -y gcc gcc-c++`：gccとgcc-c++パッケージをインストールするためのコマンドです。

`mkdir mecab`：カレントディレクトリ内に、"mecab"という名前のディレクトリを作成します。

`cd mecab`：新しく作成された"mecab"ディレクトリに移動します。

`wget -O mecab-0.996.tar.gz "https://drive.google.com/uc?export=download&id=0B4y35FiV1wh7cENtOXlicTFaRUE"`：GoogleドライブからMeCabのソースコードをダウンロードします。

`tar xvzf mecab-0.996.tar.gz`：ダウンロードしたアーカイブファイルを解凍します。

`cd mecab-0.996/`：解凍されたフォルダに移動します。

`./configure --with-charset=utf8`：MeCabのコンパイル設定を実行します。ここでは、UTF-8文字セットを使用するように設定しています。

`make`：コンパイルを実行します。

`make check`：コンパイルしたバイナリに対してテストを実行します。

`sudo make install`：コンパイルされたバイナリをシステムにインストールします。

これらの手順を実行することで、MeCabをEC2インスタンスにインストールすることができます。


## 辞書調達しないと切ない

```
[ec2-user@XXXXXXX mecab-0.996]$ mecab
param.cpp(69) [ifs] no such file or directory: /usr/local/lib/mecab/dic/ipadic/dicrc
```

辞書がないよって言われてますね。

## 辞書もコピペで

現段階では、下記のパスにいると思います。

```
[ec2-user@XXXXXXX mecab-0.996]$ pwd
/home/ec2-user/mecab/mecab-0.996
```

この後のコピペコマンドは、`~/mecab/mecab-0.996` からスタートして最初のコマンドで　`~/mecab`　へ移動するため、ディレクトリを移動した場合は、コピペコマンドを適宜修正して下さい。

### コピペコマンド

```
cd ..
wget -O mecab-ipadic-2.7.0-20070801.tar.gz "https://drive.google.com/uc?export=download&id=0B4y35FiV1wh7MWVlSDBCSXZMTXM"
tar xvzf mecab-ipadic-2.7.0-20070801.tar.gz
cd mecab-ipadic-2.7.0-20070801/
./configure --with-charset=utf8
make
sudo make install
```


### コピペがうまく行かない場合

上記の[コピペがうまく行かない場合](https://qiita.com/Senple/items/090c56b1b3957abd5d78#%E3%82%B3%E3%83%94%E3%83%9A%E3%81%8C%E3%81%86%E3%81%BE%E3%81%8F%E8%A1%8C%E3%81%8B%E3%81%AA%E3%81%84%E5%A0%B4%E5%90%88)をご参照ください。



### コピペコマンド解説 [^2]

このコマンドは、EC2インスタンスにMeCabの日本語辞書である「MeCab IPADIC」をインストールするためのコマンドです。

具体的には、以下の手順を実行しています。

`cd ..`： 現在のディレクトリから1つ上のディレクトリに移動します。

`wget -O mecab-ipadic-2.7.0-20070801.tar.gz "https://drive.google.com/uc?export=download&id=0B4y35FiV1wh7MWVlSDBCSXZMTXM"` ：GoogleドライブからMeCab IPADICのアーカイブファイルをダウンロードします。

`tar xvzf mecab-ipadic-2.7.0-20070801.tar.gz`：ダウンロードしたアーカイブファイルを解凍します。

`cd mecab-ipadic-2.7.0-20070801/`：解凍されたフォルダに移動します。

`./configure --with-charset=utf8`：MeCab IPADICのコンパイル設定を実行します。ここでは、UTF-8文字セットを使用するように設定しています。

`make`：コンパイルを実行します。

`sudo make install`：コンパイルされたバイナリをシステムにインストールします。

これらの手順を実行することで、MeCab IPADICをEC2インスタンスにインストールすることができます。MeCab IPADICは、MeCabの機能を利用して、日本語の形態素解析を行うために必要な辞書です。

## うごくかな

`mecab` とコマンドを打った後に、文章を打ちましょう。
今回は、元記事同様に下記の文章を分割します。

`
吾輩は猫である。名前はまだ無い。 どこで生れたかとんと 見当がつかぬ。
`

```
[ec2-user@XXXXXXX mecab-ipadic-2.7.0-20070801]$ mecab
吾輩は猫である。名前はまだ無い。 どこで生れたかとんと 見当がつかぬ。
吾輩	名詞,代名詞,一般,*,*,*,吾輩,ワガハイ,ワガハイ
は	助詞,係助詞,*,*,*,*,は,ハ,ワ
猫	名詞,一般,*,*,*,*,猫,ネコ,ネコ
で	助動詞,*,*,*,特殊・ダ,連用形,だ,デ,デ
ある	助動詞,*,*,*,五段・ラ行アル,基本形,ある,アル,アル
。	記号,句点,*,*,*,*,。,。,。
名前	名詞,一般,*,*,*,*,名前,ナマエ,ナマエ
は	助詞,係助詞,*,*,*,*,は,ハ,ワ
まだ	副詞,助詞類接続,*,*,*,*,まだ,マダ,マダ
無い	形容詞,自立,*,*,形容詞・アウオ段,基本形,無い,ナイ,ナイ
。	記号,句点,*,*,*,*,。,。,。
どこ	名詞,代名詞,一般,*,*,*,どこ,ドコ,ドコ
で	助詞,格助詞,一般,*,*,*,で,デ,デ
生れ	動詞,自立,*,*,一段,連用形,生れる,ウマレ,ウマレ
た	助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
か	助詞,副助詞／並立助詞／終助詞,*,*,*,*,か,カ,カ
とんと	副詞,一般,*,*,*,*,とんと,トント,トント
見当	名詞,サ変接続,*,*,*,*,見当,ケントウ,ケントー
が	助詞,格助詞,一般,*,*,*,が,ガ,ガ
つか	動詞,自立,*,*,五段・カ行イ音便,未然形,つく,ツカ,ツカ
ぬ	助動詞,*,*,*,特殊・ヌ,基本形,ぬ,ヌ,ヌ
。	記号,句点,*,*,*,*,。,。,。
```

うまくいきましたね。

mecabコマンドを終了させる時は、`Control + C`です。

# To be Continued

## 再会のゆびきり
今後もQiitaでデータの可視化など技術情報を発信しています。
noteでは、備忘録を記録しています。

新着情報はTwitterで配信いたします。フォローをお願いいたします。

[Sempleの自由帳](https://note.com/semple/)
[Sempleのアイデア帳](https://qiita.com/Senple)
[Sempleのツイッター](https://twitter.com/Semple_smile)

## 小話

### インスタンス作成時の失敗

SSH接続するためには、Key pairが必須なんですね。
何も考えずに、インスタンスを作成して、静かに ~~涙を拭きながら~~ 再度作り直しました。


### ささやかな抵抗
出来る事なら、不要なライブラリは入れたくない派なので、コピペする前にchatGPTで相談しましたが、どれも必要なんですね。。。
([本家のサイト](https://taku910.github.io/mecab/#install)にも書いてありました。)

```
`sudo yum install -y gcc gcc-c++`は、
C++プログラムをビルドするために必要なgccとgcc-c++パッケージをインストールするためのコマンドです。
このコマンドは、Mecabをビルドするために必要であるため、実行する必要があります。
もし、gccやgcc-c++が既にインストールされている場合は、このコマンドをスキップできます。
ただし、Mecabをビルドするために必要なパッケージがインストールされていない場合、
Mecabのビルドが失敗する可能性があります。そのため、このコマンドは必要です。
```


## 参考記事
https://qiita.com/takuma-jpn/items/b2c04b7a271a4472a900

https://qiita.com/mojibakeo/items/2906162edf7045899974

https://biz-kiji.com/know-how/install-mecab/

https://taku910.github.io/mecab/

[^1]: 当然自分が失敗しているからです。ぱそこんむずかしい。
[^2]: コピペコマンドの解説を書くか悩みましたが、chatGPTにやらせることで解決しました。
ありがたいですね。