仕事で自然言語処理を行うシステム構築の必要性が出てきたので、取り急ぎ、形態素解析エンジンのMeCabを勉強してみた。
環境は次の通り
- AWSのEC2に構築
- 利用言語はPython3.7
- MeCabのバージョンはサイトの最新バージョン(MeCabサイト)
色々触ってみたので、備忘として残します。

仕事でMeCabを使うことになったので、AWSEC2でPythonを使ってMeCabを動かしてみたいです。

EC2とか、Mecabとか、自然言語処理とか 形態素解析エンジンって聞いたことありますか?
あまり聞いたことがなく、説明が出来ないレベルの人にはちょっと難しいかもです。

・・・・・

とりあえず、ただ動くものを作って体験しながら理解していきましょうか。
MeCab構築でやったこと

MeCabを構築した時のステップは大きく3つです。今回は、最初のEC2インスタンスの作成手順です。今回は簡単で特に考えることもなくサクッと作成できると思います。

AWSとかEC2とかインスタンスの解説は、どこかまた別の機会にします。超簡単に言うとMeCabを動かすサーバをクラウド上に構築しています。

クラウドって・・・

・・・・。じゃあそれもまた別の機会に
AWS環境構築
まずは、AWS上にEC2環境を構築します。これは非常に簡単ですね。数クリックで作成できます。使用するのは無料利用枠の範囲なので、余計なコストはかかりません。説明するまでもないかもしれませんが、一画面ずつ解説します。
AWSコンソールにサインイン
本手順の前提は、AWSのアカウントを持っていることです。AWSコンソールにサインインします。手順は割愛です。

AWSのアカウントを持っていない人はまず作成してください。アカウントの作成手順は、AWSのホームページに記載されています。
ステップ 5: AWS サポートプランの選択では、ベーシックサポート-無料を選択してください。

インスタンス作成
では、早速AWSへログインして、EC2のダッシュボードからインスタンスメニューを選択します。

インスタンス画面でインスタンス作成を選択

Step1:AMIの選択
無料枠のAmazon Linux2 AMIを選択します。

Step2:インスタンスタイプの選択
デフォルトで無料枠の「t2.micro」が選択されているので、そのまま、「次のステップ」へ進みます。

Step3:インスタンスの設定
インスタンスの詳細設定でも、特に変更せずに、「次のステップ」へ進みます。


それぞれの項目の解説はどこか別の記事で整理する予定です。
ここでは、とりあえずMeCabを動かすための構築手順にフォーカスします。
Step4:ストレージの追加
ここも変更不要で「次へ」すすむ

Step5:タグの追加
設定しなくても良いですが、識別用にName=MeCabとタグの設定をします。
「タグの追加」ボタンを選択します。

タグのキーに”Name”を入力し、値に「MeCab」と入力して、「次のステップ」に進みます。

Step6:セキュリティグループの設定
”タイプ”はSSHのままで、”ソース”を「マイIP」に変更して、「確認と作成」に進みます

Step7:確認
Step1~Step6までで設定した内容を確認して、「起動」に進みます。

キーペアの作成
キーペア作成のポップアップが表示されるので、EC2に接続する際に必要なキーファイルを作成します。ここでは、下記を入力します。
- キーペアのタイプ:RSA
- キーペア名:Mecab

入力後、「キーペアのダウンロード」をクリックすると、プライベートキーファイルの保存先を聞いてくるので、ローカル端末に保存します。このファイルは今後EC2に接続する時に必要となります。
保存後、「インスタンスの作成」を選択すると、インスタンスが作られます。
予想請求額の通知設定
インスタンスの作成ボタンをクリックすると、作成ステータス画面に遷移します。
ここで、予想請求額の通知を受け取る設定を行います。万が一EC2やその他のオブジェクトの利用が無料利用枠を超過することが予測される場合に連絡を受ける設定です。今回の構築では必要はないと思いますが、念のため設定しておきます。
請求アラートの設定のリンクをクリックします。

ブラウザのタブが増えて、「設定」画面が開きます。こちらでは、受信するメールアドレスを確認して問題なければ「設定を保存」をクリックします。これで設定は完了なので、タブを閉じて元の画面に戻ります。

インスタンスの表示を押して、作成状況を確認します。

インスタンスの状態が表示されます。ステータスが「running」になっていることを確認し、パブリックIPアドレスをメモします。このIPを用いてEc2へ接続します。

ここまでで、インスタンスの作成は完了です。続いて接続の確認です。
EC2へ接続
EC2への接続はTeraTermを使用します。持っていない人は別の接続ツールか、Teraermをインストールしてください。

接続先には、インスタンスのIPアドレスを入力してOKを押します。セキュリティ警告画面が出てくるので、Continueボタンをクリックして、SSH Authentication画面で接続情報を設定します。
- User name:ec2-user (EC2作成時に接続用に自動で生成されるユーザ)
- Authentication methods:Use RSA/DSA/ECDSA・・・・を選択
- Private Key file :インスタンス作成時に保存したキーペアファイルを選択
今回は、「Mecab.pem」で保存しているはず
設定後、「OK」ボタンをクリックして接続します。
次のような、メッセージが表示されたら接続成功です。

EC2環境設定
しっかりやろうと思ったら環境設定はいろいろやること沢山ありますが、ここでは、最低限の作業だけしてMeCab環境構築を優先します。
インストール済みパッケージのアップデート
EC2構築時にインストール済みのパッケージがいくつかあります。が、最新のものが入っているとは限らなので、yumでアップデートを実施します。
$ sudo yum update -y
- sudo:他のユーザの権限でプログラムなどを実行する際のコマンドです。どのユーザで実施するかはパラメータで指定しますが、何も指定していない場合は、ルート権限のユーザで実行されます。
- yum:yum(Yellowdog Updater Modifiedは、RedHat系のLinuxパッケージ管理ツールで、OSへのアプリケーションの導入と削除、依存関係の整理などを行うツールです。
update パラメータはインストールしたアプリケーションを最新版に更新することを意味しています。後ろの-yはインストール中に確認メッセージが表示されてYes(y)/No(ん)の入力を求められたときにyを入力することを意味しています。-y を指定しないと、インストールの途中で都度「y/n」の入力を求められます。
コンパイラインストール
コンパイラは、EC2作成直後では、インストールされていません。今回のMeCabのインストールではコンパイルが必要になるので、ソフトウェアをインストールしておきます。
$ sudo yum install gcc-c++
install:yumツールのインストールパラメータです。後ろに続くアプリケーションのインストールを行います。今回は、Mecabの環境構築に必要なコンパイラgcc-c++をインストールしています。
Ec2の停止
EC2の利用が終わったら、インスタンスの停止をして1日を終えましょう。AWSのEC2の無料枠は750時間/月で12か月間利用できます。お試しで作成しているので超えることはないと思いますが、使っていない時間帯は停止する習慣を付けておきましょう。

最大24時間×31日だと、744時間だからつけっぱなしでも大丈夫ですよね?

そうですね。使うのが1インスタンスであれば問題ないかもしれませんが、複数のインスタンスを起動すると、超えることもありますね。無料枠超える前にアラートメールが来るように設定していますが、無駄な稼働時間は少なくする方が余計な心配はなくなります。

まとめ
とりあえず、AWSのEC2セットアップ手順のメモをとして書き起こしました。AWS初心者の人には、EC2ってなに?とか、MeCabって何するの?とかそんな疑問を持つ人もいるかもしれませんね。

用語とかシステムの概要については、どこかで整理しようと思います。
次回以降で
- MeCabをインストールして実際に動かしてみる
- MeCabで使う辞書を変えて動作を比較してみる
の構築手順を解説します。