SBTのスベテ

膨大なメールを深層学習して運用効率化ツールを作る2

前川 敦史

前川 敦史

インフラやアプリのシステム運用を主の業務としております、前川敦史です。

前回の記事 では膨大なメールを深層学習して運用効率化をさせるメリットについてご紹介しましたが、今回の記事ではそれを実現する方法を紹介します。

その前の小話ですが、先日開発プロジェクト成功の打ち上げパーティがありました。

サプライズケーキ

私の誕生日が近かったのでサプライズを幹事である私が自ら行いました。
店員さんより「幹事様おめでとうございます!」と大声で祝っていただき、恥ずかしくもあり、誇らしくもありました。

さて、膨大なメールから深層学習を行う方法を紹介したいと思います。
今回は下準備編となります。


筆者の動作環境

左右にスクロールしてご覧ください。

Windows 10
Outlook(Office 365 ProPlus 1808)
Python 3.7.3 64bit https://www.python.org/
MeCab 0.996 http://taku910.github.io/mecab/
mecab-ipadic-NEologd(MeCab 辞書) https://github.com/neologd/mecab-ipadic-neologd


1. Python のインストール

Python Version 3.6 以上 + 64bit であれば動作すると思いますので、すでにインストールされている方はこちらの手順は不要です。未インストールの方は以下のサイトよりダウンロードしインストールを行います。
https://www.python.org/

Downloads → Windows → Windows x86-64 web-based installer の順に進みインストーラーを起動します(19年03月時点)。インストール時に Add Python 3.7 to PATH にチェックを入れてください。

インストーラーを起動

Windows でコマンドプロンプトからどのフォルダから実行しても「python --version」と打てばエラーにならず結果がバージョン情報が表示されればパスが通っているという状態になります。パスが通っていることを確認してください。

パスが通っていることを確認


2. MeCab のインストール

これを利用することで形態素解析(文章を分割させる)を行うことができます。
以下のサイトよりダウンロードしインストールを行います。
http://taku910.github.io/mecab/
ダウンロード → Binary package for MS-Windows の ダウンロードのリンクよりプログラムファイルをダウンロードし、インストールを行ってください。

UTF-8 を選択
※ UTF-8 を選択してインストールする

3. MeCab の設定

以下のディレクトリをパラメータの環境変数 PATH に追加します。
C:\Program Files (x86)\MeCab\bin
MeCab コマンドが Windows 上から入力できるようになります。

4. MeCab の動作確認

UTF-8 を指定していますので、Windows コマンドプロンプト上で chcp 65001 を入力し、UTF-8 のコマンドプロンプトを立ち上げて MeCab をテストする必要があります。

1. コマンドプロンプトにて chcp 65001 を入力します。
永続的にコマンドプロンプトを UTF-8 にする方法もありますが、他のコマンド出力に支障が出ますので、毎回 chcp で一時的に変更する方法が良いと思います。

コマンドプロンプトにて chcp 65001 を入力
※ chcp コマンドにてコマンドプロンプトの文字コードを変更する65001は UTF-8 の文字コード番号

2. コマンドプロンプトにて echo テスト | mecab を入力します。

コマンドプロンプトにて echo テスト | mecab を入力
※ テストという単語を MeCab に解析させた結果

3. 今回は "ソフトバンク・テクノロジー" という単語を例としてご説明します。
コマンドプロンプトにて echo ソフトバンク・テクノロジー | mecab を入力します。
悲しいことにこの時点では "ソフトバンク・テクノロジー" という会社名は認識されず、以下のような出力となります。

ソフトバンク・テクノロジー”を MeCab に解析させた結果
※ "ソフトバンク・テクノロジー" を MeCab に解析させた結果

以下のように3つの単語と認識している状態です。

ソフトバンク・テクノロジーの認識状態

「ソフトバンク」という単語そのものは認識していますが、「・」が記号、「テクノロジー」は一般用語として判定されています。「ソフトバンク・テクノロジー」や新語を単語として解析できるようにするため、辞書の追加が必要となります。

5. MeCab 辞書 = mecab-ipadic-NEologd のインストール

mecab-ipadic-NEologd の辞書を使用するためインストールを行います。
Windows 環境からインストールすることができませんので、Bash on Ubuntu on Windows 経由でのインストール方法をご紹介します。
Bash on Ubuntu on Windows は会社のルールによって禁止されていることも多いと思いますので、社用 PC で行われる場合はインストール前に社内のルールを確認することをおすすめします。

1. Windows の機能の有効化または無効化にて "Windows Subsystem for Linux" をインストールします。

”Windows Subsystem for Linux”をインストール

2. インストール後、再起動を行ってください。

3. 再起動後に Microsoft Store からUbuntu をインストールします。

  1. Store の検索バーで Ubuntu と入力し Ubuntu を選択してください。

    阿部さん自己紹介①

  2. 「入手」をクリックします。

    「入手」をクリック

  3. 「起動」をクリックします。

    「起動」をクリック

  4. 数分待った後に username と password を聞かれますので、設定します。

    username と password を設定

  5. Ubuntu 上で以下のコマンドを入力します。

    
    sudo apt update
    sudo apt install -y git make mecab libmecab-dev
    git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git
    cd mecab-ipadic-neologd
    bash /bin/install-mecab-ipadic-neologd -n
    
    

  6. yes を求められるので「yes」を押してエンターします。

    コマンド入力後画面

  7. 完了時の画面は以下となります。

    完了時の画面

  8. インストール完了後に以下のコマンドを実行し、辞書ファイルをコピーします。

    
    cp -r /usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd "/mnt/c/Program Files (x86)/MeCab/dic"
    
    


  9. 設定ファイル:C:\Program Files (x86)\MeCab\etc\mecabrc を以下のとおりに変更します。
    これにより MeCab が使用する辞書の変更が可能となります。

    変更前:dicdir = $(rcpath)\..\dic\ipadic
    変更後:dicdir = $(rcpath)\..\dic\mecab-ipadic-neologd


  10. 再びコマンドプロンプトから「chcp 65001」と「echo ソフトバンク・テクノロジー | mecab」を入力します。

    「chcp 65001」と「echo ソフトバンク・テクノロジー | mecab」を入力

  11. ソフトバンク・テクノロジーが正しく認識されていれば成功となります。
    この辞書は頻繁に更新が行われていますので、定期的にアップデートすると解析の質が向上します。

    新しい単語も解析が可能
    ※ 新しい単語も解析が可能

  12. 最後に Ubuntu 上で不要なファイルを削除しておきます

    
    cd ..
    rm -rf mecab-ipadic-neologd
    
    



長くなりましたが下準備は以上となります。
続きは次回、「Outlookからメールを取り込んで学習編」にて紹介させていただきます。


関連ページ

膨大なメールを深層学習して運用効率化ツールを作る1
膨大なメールを深層学習して運用効率化ツールを作る3
膨大なメールを深層学習して運用効率化ツールを作る4
膨大なメールを深層学習して運用効率化ツールを作る5

【総合】お問い合わせ

ソリューションに関する全般的なお問い合わせはお気軽にご相談ください。

ピックアップ

セミナー情報
クラウドエンジニアブログ
clouXion
メールマガジン登録