こんにちは!神戸デジタル・ラボ、DI(DataIntelligence)チームの垣内です。
前回の「テキスト分析入門」シリーズでは、一般的なテキスト分析についてご紹介しました。
今回の連載では、Azureのサービスを用いて実際に手を動かしながら分析を一緒に体験頂ける内容を掲載していきます。
以下に該当される方は、是非ご覧ください!
APIを使える方でテキスト分析に興味のある方
Azure Cognitive Service for Languageを使った分析結果を見たい方
第1回目の本記事では、Azure Cognitive Servicesの概要説明とAPIを使うための環境の準備をしていきます。
- Azure Cognitive Servicesとは?
- Azure Cognitive Service for Languageのサービス概要と機能
- Azure Cognitive Service for Languageの利用準備
Azure Cognitive Servicesとは?
Azure Cognitive Servicesとは、言語・音声・視覚情報(動画)などをAPIを通じて分析することができるサービスです。 元々独立したサービスとしてそれぞれ提供されていましたが、2021年にAzure Cognitive Servicesの機能として統合されました。
統合されたことにより、別々のSDK*1やAPIを使う必要がなくなり、開発スピードが向上し、連携がより容易になりました。
Azure Cognitive Service for Languageのサービス概要と機能
今回利用する「Azure Cognitive Service for Language」は、Azure Cognitive Servicesの中にある言語分析に特化したサービスです。 もともとAzureには3つの独立したテキスト分析・活用系のサービスが存在していましたが、 2021年11月に統合され、「Azure Cognitive Service for Language」としてリリースされました*2。
このサービスは「情報の抽出」「テキスト分類」「質問回答」「会話」「翻訳」といった機能を備えています。プレビュー版の機能もあるので、利用する際は注意が必要です。
Azure Cognitive Service for Languageの利用準備
では早速、Azure Cognitive Service for Languageを使えるように環境準備をしていきましょう!
Azure Cognitive Service for Languageで用意されているAPIには「C#」「Python」「JavaScript」「Java」「REST API」を使ってアクセスできます。 今回はPythonを用いて環境準備を進めていきます。
Pythonのプログラムを実行するためには、機械学習でよく用いられるGoogle Colaboratory *3を利用します。
▼環境準備手順。
- Azureにログインし、リソースを作成
- APIキーとエンドポイントを取得
- Google Colaboratoryの準備
- Google Colaboratoryを用いてAPI接続できるか試す
Step1:リソースの作成
Azureアカウントを用いて、Azureポータルにサインインします。
AzureポータルからCognitive Servicesを検索し、リソース*4を作成していきます。
以下の値を設定し「確認および作成」をクリックするとデプロイが始まります。終了するまで3分ほど待ちます。
▼設定項目
① リソースグループを指定
② リージョンを「東日本」にする
③リソースの名前を付ける
④ 価格レベルを「FreeF0」にする
⑤通知、条項をそれぞれ読み、チェックを入れる
以下のような画面が出ていたら作成が完了です。
「リソースに移動」を押してAPIキーとエンドポイントを取得しましょう!
Step2:APIキーとエンドポイントを取得
APIを利用するためにはAPI利用時に認証の役割を果たす「キー」と APIにアクセスするためのURI(俗にいうAPIの口)である「エンドポイント」の情報を得る必要があります。
この情報は「キーとエンドポイント」という場所に記載されています。
画面を操作しながら場所の確認をしていきましょう。
「リソースに移動」を押すとAzure Cognitive Service for Languageの管理画面が表示されます。
さらに左側の「キーとエンドポイント」をクリックすると、この2つの情報が書かれたページが表示されます。
下の画像のような画面が出ていれば正解です!
尚、この情報は機密性が高いので、情報の取り扱いには細心の注意を払いましょう。
Step3:Google Colaboratoryの準備
次にAPIに接続できる環境を整えていきましょう。
今回Pythonの実行環境としてGoogle Colaboratoryを活用します。
(Google Colaboratoryを使うためにはGoogleに予めログインする必要があります)
※参考:Googel Colaboratoryの概要やFAQについて
Google Colaboratoryにアクセスすると、はじめに「Colaboratoryへようこそ」という画面が表示されます。
「ノートブックを新規作成」をクリックしてください。
このような画面が出てきたらOKです!
Step4:Google Colaboratoryを用いてAPI接続できるか試す
ソースコードはこちらを用いて接続確認をしていきます。 docs.microsoft.com
以下の内容を1セルごとに記述して、実行しましょう。
① 必要なモジュールのインポート
pip install azure-ai-textanalytics==5.1.0
② サンプルコードの記述
1・2行目の「key」と「endpoint」は、Step2で得たキーとエンドポイントに内容を書き換える必要があります。
書き換える際、文字を囲っている「 " 」は削除せずにそのまま利用します。
key = "paste-your-key-here" endpoint = "paste-your-endpoint-here" from azure.ai.textanalytics import TextAnalyticsClient from azure.core.credentials import AzureKeyCredential # Authenticate the client using your key and endpoint def authenticate_client(): ta_credential = AzureKeyCredential(key) text_analytics_client = TextAnalyticsClient( endpoint=endpoint, credential=ta_credential) return text_analytics_client client = authenticate_client() def key_phrase_extraction_example(client): try: documents = ["My cat might need to see a veterinarian."] response = client.extract_key_phrases(documents = documents)[0] if not response.is_error: print("\tKey Phrases:") for phrase in response.key_phrases: print("\t\t", phrase) else: print(response.id, response.error) except Exception as err: print("Encountered exception. {}".format(err)) key_phrase_extraction_example(client)
この2つのコードが書けたら、ボタンを押すことでコードが実行できます。
早速押してみましょう!
ボタンを押して、エラーが出ていなければ接続成功です!!
これで準備ができたので、早速使っていきましょう!!!!
次回、②キーフレーズ抽出編に続きます。
おまけ:Google Colaboratoryで公開範囲を確認する方法
Google Colaboratoryの内容は外部の人に公開することができます。
もし外部の人に見られたくない情報やAPIキーといった機密情報がソースコード内に入っている場合は以下の設定をしてみてください。
データインテリジェンスチーム所属
テキスト活用するプロジェクトを担当。ビジネスを意識したデータ活用を考えるデータアナリスト。初心者向けの情報・テキスト活用について発信していきます!
*1:ソフトウェア開発キット。サンプルプログラム、APIや開発資料などをパッケージにしたもの。
*2:https://techcommunity.microsoft.com/t5/azure-ai-blog/introducing-azure-cognitive-service-for-language/ba-p/2910735
*3:https://research.google.com/colaboratory/faq.html?hl=ja
*4:リソース:Azure上に構築されるサービスのこと。