こんにちは、コンサルティングサービス部データアナリティクスグループの関根です。最近マイクロソフト認定プロフェッショナル (MCP) 認定のAzure Fundamentalsを取得しました!
さて、今回お話する内容はAzure DataBricksでのMeCabの使用についてです。
以前、私はDatabricksで自然言語処理を実装する案件を担当していたのですが、最近リリースされたこともあり情報が少なく、手探り状態で進めていました。そこで得られた知見等書いていきます。
Azure Databricksとは、大規模なデータ分析や機械学習を行うためのApache Spark ベースの分析サービスで、Python、Scala、R、SQL等を使用できます。詳しくは以下を参照してください。
https://azure.microsoft.com/ja-jp/services/databricks/
Databricksは以下の利点があると考えています。
Databricksは使いやすさを重視している印象です。
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を使う際の参考になれば幸いです。
コメント