NI BLOG

ネイチャーインサイト株式会社の情報発信ブログ
SASに関する技術情報など

2019/05/24 データ分析

Azure DatabricksでMeCabを使う

Azure DatabricksでMeCabを使う

こんにちは、コンサルティングサービス部データアナリティクスグループの関根です。最近マイクロソフト認定プロフェッショナル (MCP) 認定のAzure Fundamentalsを取得しました!

さて、今回お話する内容はAzure DataBricksでのMeCabの使用についてです。

以前、私はDatabricksで自然言語処理を実装する案件を担当していたのですが、最近リリースされたこともあり情報が少なく、手探り状態で進めていました。そこで得られた知見等書いていきます。

Azure Databricks とは

Azure Databricksとは、大規模なデータ分析や機械学習を行うためのApache Spark ベースの分析サービスで、Python、Scala、R、SQL等を使用できます。詳しくは以下を参照してください。
https://azure.microsoft.com/ja-jp/services/databricks/

Databricksは以下の利点があると考えています。

  • クラスタを作成した段階でJupyter Notebook形式のPythonが入っており、すぐにコードがかける。
  • クラスタを簡単に変更することができ、タスクごとに用途に合ったクラスタを選択することができる。
  • 事前に時間を設定しておくことで、クラスタを自動で停止することができる。
  • Databricksは使いやすさを重視している印象です。

    Azure DatabricksでのMeCab(mecab-ipadic-Neologd)の使用

    Azure Databricksのクラスタに直接ssh接続しようとするとアクセス拒否されるため、自然言語処理で必要不可欠な形態素解析ツール「MeCab」のインストールを工夫する必要があります。具体的には、Databricksのクラスタ起動時にMeCabをインストールするように設定します。

    以下ではAzure Databricksの作成方法とMecabインストール方法の一例を紹介します。

    1. Azure PortalからDatabricksを検索し、Azure Databricksをデプロイします。(今回はPricing Tierをtrialにしていますが、実際の開発ではStandardにしていました。)

    2. Azure Databricksを開き、クラスタを作成します。

    3. initスクリプトを作成します。「Azure Databricks」タブの「New Notebook」からPythonを選択し、以下のコードを実行してください。

    import os
    #init_file_make
    if not os.path.isdir("/dbfs/script"):
      os.mkdir("/dbfs/script")
    file_init="/dbfs/script/init_script.sh"
    with open(file_init,"wt") as f1:
      f1.write("""#!/bin/bash
    yes | apt-get install mecab
    yes | apt-get install libmecab-dev
    yes | apt-get install mecab-ipadic-utf8
    yes | apt-get install swig
    # using neologd
    git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git > /dev/null 
    echo yes | mecab-ipadic-neologd/bin/install-mecab-ipadic-neologd -n > /dev/null 2>&1
    echo "dicdir = "`mecab-config --dicdir`"/mecab-ipadic-neologd" > "/etc/mecabrc"
    """)
    

    4. もう一度クラスタの設定画面を開き、「Edit」 → 「Advanced Options」 → 「Init Scripts」から「dbfs:/script/init_script.sh」と入力してAddし、「Confirm and Restart」で再起動します。

    5. 「Azure Databricks」タブの「Import Library」から「PyPl」を選択し、「mecab_python3==0.996.1」を入力して「Create」を押します。その後、「Install automatically on all clusters」にチェックを入れます。


    これで準備は終わりです。実際にMeCabが使用できているか見てみましょう。

    MeCabが使用できています!

    まとめ

    このようにInitスクリプトを使用すれば、MeCabに限らずDatabricksにインストールすることができます。Azure Databricksを使う際の参考になれば幸いです。

    コメント

    ※投稿されたコメントは、管理者によって承認された後に掲載されます。