Language と Vision API の実践
REST リクエストを使用して Computer Vision API で画像を分析し、Text Analytics API で顧客レビューから感情と主要フレーズを抽出します。
「Language と Vision API の実践」はCoddyKit上の無料Cloud & IT Cert Prepレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCloud & IT Cert Prep学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cloud & IT Cert Prepコースには全4レッスンが含まれています。
Computer Vision API の呼び出し
Computer Vision API(/vision/v3.2/analyze)は、画像URLまたはバイナリ ストリームを分析し、検出された物体、自然言語によるシーンの説明、主要な色、画像に成人向けコンテンツが含まれているかどうかを示す、詳細なJSONレスポンスを返します。使用する視覚的特徴(Categories、Description、Objects、Tags、Faces、Color、Adult)を指定することで、APIが計算する内容を制御し、使用した分だけ料金を支払えます。
# Analyse an image URL with Computer Vision
curl -X POST 'https://myVision.cognitiveservices.azure.com/vision/v3.2/analyze?visualFeatures=Description,Objects,Tags' \
-H 'Ocp-Apim-Subscription-Key: <key>' \
-H 'Content-Type: application/json' \
-d '{"url": "https://upload.wikimedia.org/wikipedia/commons/thumb/3/3a/Cat03.jpg/1200px-Cat03.jpg"}'OCR: 画像からのテキストの読み取り
Read API(/vision/v3.2/read/analyze)は、画像やPDFからテキストを抽出するために推奨されるOCRエンドポイントです。以前の/ocrエンドポイントとは異なり、Read APIは非同期です。画像を送信すると操作URLが返されるため、完了するまでポーリングしてから結果を取得します。印刷されたテキストと手書きテキストを164言語でサポートし、テキスト ブロックの読み取り順序を保持します。また、同期OCRエンドポイントよりも、回転した画像や低解像度の画像を適切に処理できます。
# Step 1: Submit image for reading
curl -X POST 'https://myVision.cognitiveservices.azure.com/vision/v3.2/read/analyze' \
-H 'Ocp-Apim-Subscription-Key: <key>' \
-H 'Content-Type: application/json' \
-d '{"url": "https://example.com/invoice.jpg"}'
# Returns: Operation-Location header with result URL
# Step 2: Poll for result
curl 'https://myVision.cognitiveservices.azure.com/vision/v3.2/read/analyzeResults/<operation-id>' \
-H 'Ocp-Apim-Subscription-Key: <key>'Text Analytics による感情分析
Sentiment Analysis エンドポイント(/text/analytics/v3.1/sentiment)は、送信された各ドキュメントについて、感情ラベル(positive、negative、neutral、またはmixed)と、0から1までの信頼度スコアを返します。また、オピニオン マイニング(アスペクトベースの感情分析)も提供します。これは、製品やサービスの具体的な項目のうち、レビュー投稿者がどれについてコメントしているかと、各項目に対する感情を特定します。たとえば、レストランのレビューが料理については肯定的で、サービスについては否定的であることを検出できます。
# Sentiment analysis request
curl -X POST 'https://myLanguage.cognitiveservices.azure.com/text/analytics/v3.1/sentiment?opinionMining=true' \
-H 'Ocp-Apim-Subscription-Key: <key>' \
-H 'Content-Type: application/json' \
-d '{
"documents": [
{"id": "1", "language": "en", "text": "The food was great but the service was terrible."}
]
}'キーフレーズ抽出
キーフレーズ抽出は、テキストの本文から主なトピックや概念を特定し、フレーズのリストとして返します。カスタマー サポートのメールであれば、delivery delay、order confirmation、refund request などのフレーズが返されます。これは、サポート チケットへの自動タグ付け、検索インデックス作成用のドキュメントの要約、ナレッジベース内のコンテンツの優先順位付けに役立ちます。APIは1回のリクエストで最大1,000件のドキュメントを処理でき、10以上の言語をサポートします。
# Key phrase extraction
curl -X POST 'https://myLanguage.cognitiveservices.azure.com/text/analytics/v3.1/keyPhrases' \
-H 'Ocp-Apim-Subscription-Key: <key>' \
-H 'Content-Type: application/json' \
-d '{
"documents": [
{"id": "1", "language": "en",
"text": "Azure offers scalable storage, compute, and AI services for enterprises."}
]
}'固有表現認識
固有表現認識(NER)は、テキスト内のエンティティへの言及を特定し、Person、Organisation、Location、DateTime、Quantity、URL、Email などに分類します。PII 検出(個人を特定できる情報の検出)では、クレジットカード番号、社会保障番号、電話番号などの機密データを特に検出し、必要に応じてマスキングできます。PII検出は、分析のためにデータを保存または処理する前に、自動的に匿名化する場合に役立ちます。
# PII entity recognition
curl -X POST 'https://myLanguage.cognitiveservices.azure.com/text/analytics/v3.1/entities/recognition/pii' \
-H 'Ocp-Apim-Subscription-Key: <key>' \
-H 'Content-Type: application/json' \
-d '{
"documents": [
{"id": "1", "language": "en",
"text": "Please contact John Smith at john@example.com for refund."}
]
}'実践での Azure AI Translator
Translator API(/translate)は、1回のREST呼び出しで100以上の言語間のテキストを変換します。原文のテキストを渡し、1つ以上の対象言語コードを指定すると、検出された原言語とともに翻訳テキストが返されます。APIは、音訳(アラビア文字からラテン文字など、文字体系を変換する機能)や、単語レベルで別の翻訳候補を調べる辞書検索も提供します。Translatorは1回のリクエストで最大100件のドキュメントをバッチ処理できるため、大規模なコンテンツのローカライズに適しています。
# Translate English text to French and Spanish
curl -X POST 'https://api.cognitive.microsofttranslator.com/translate?api-version=3.0&to=fr&to=es' \
-H 'Ocp-Apim-Subscription-Key: <key>' \
-H 'Ocp-Apim-Subscription-Region: eastus' \
-H 'Content-Type: application/json' \
-d '[{"text": "Hello, how are you?"}]'Custom Vision: 独自モデルのトレーニング
Azure AI Custom Visionでは、機械学習コードを記述せずに、独自のラベル付き画像を使用して画像分類モデルや物体検出モデルをトレーニングできます。Custom Vision ポータルで画像をアップロードしてタグ付けし、Trainをクリックします。サービスがモデルをトレーニングし、パフォーマンス メトリック(Precision、Recall、AP)を返します。その後、新しい画像でモデルをテストし、予測エンドポイントとして公開します。モデルは、デバイス上での推論用にONNXまたはCoreMLとしてエクスポートすることもできます。
# Create a Custom Vision project via CLI
az cognitiveservices account create \
--name myCustomVision \
--resource-group myRG \
--kind CustomVision.Training \
--sku S0 \
--location eastusLanguage Understanding(CLU)
Conversational Language Understanding(CLU)は、LUISの後継サービスです。ユーザーが何を求めているかを示す意図(例: BookFlight、GetWeather)と、抽出するデータを示すエンティティ(例: 目的地の都市、旅行日)を定義し、各意図の発話例を用意してモデルをトレーニングし、デプロイします。アプリケーションはCLUの予測エンドポイントを呼び出して、ユーザー入力を正しい意図に分類し、エンティティを抽出します。CLUは、バーチャル アシスタントやチャットボットの理解レイヤーを支えます。
APIエラーとスロットリングへの対処
Azure AI Services APIは、標準のHTTPステータス コードを返します。400 Bad Requestは、入力形式が正しくないことを示します(例: ドキュメントが長すぎる。Text Analyticsでは1ドキュメントあたり最大5,120文字がサポートされます)。401 Unauthorizedは、APIキーが無効または存在しないことを示します。429 Too Many Requestsは、サービスのクォータを超過したことを示します。この場合は、ジッターを伴う指数バックオフを実装してリトライしてください。本番環境では、専用リソース(無料レベルではないもの)の利用を検討し、より高いスループットが必要な場合はAzureポータルからクォータの増加を申請してください。
Logic Apps とのAI Services の統合
Azure AI Servicesは、組み込みコネクタを使用してAzure Logic Appsと統合でき、コードを記述せずにAIワークフローを構築できます。たとえば、新しいメールが届く → 添付ファイルを抽出する → Computer Vision Read APIを呼び出して添付ファイルからテキストをOCRで読み取る → Text Analyticsを呼び出してキーフレーズを抽出する → 結果をSharePointリストに書き込む、という処理が可能です。Logic Appsには、認証とAPI呼び出しを管理する Cognitive Services(Language、Vision、Translator)用コネクタが用意されているため、RESTリクエストのコードを記述する必要はありません。
Python SDKでAIサービスを利用する
Microsoftは各AIサービス向けに公式のPythonパッケージを公開しています。Language APIにはazure-ai-textanalyticsを、Visionにはazure-cognitiveservices-vision-computervisionをインストールします。SDKは認証、シリアライズ、再試行処理を自動的に行います。認証には、AzureKeyCredentialまたはDefaultAzureCredential(マネージド ID に対応)を使用します。SDKは型安全性があり、APIバージョンの変更時にもアップグレードしやすいため、プロダクションコードでは生のHTTPリクエストよりもSDKの使用が推奨されます。
# Python — Text Analytics sentiment analysis
from azure.ai.textanalytics import TextAnalyticsClient
from azure.core.credentials import AzureKeyCredential
client = TextAnalyticsClient(
endpoint='https://myLanguage.cognitiveservices.azure.com/',
credential=AzureKeyCredential('<key>')
)
docs = ['The product quality exceeded my expectations.']
result = client.analyze_sentiment(docs)
for doc in result:
print(doc.sentiment, doc.confidence_scores)理解度チェック
このレッスンで扱ったMicrosoft Azure Fundamentals(AZ-900)の概念について、理解度を確認しましょう。
レッスンのまとめ
このレッスンでは、Computer Vision APIが画像を分析して物体、説明、OCRテキスト(非同期のRead APIを使用)を抽出すること、Text Analytics APIsがテキストから感情、キー フレーズ、PIIを抽出すること、そしてTranslator APIが1回の呼び出しで100以上の言語間のテキスト変換を行うことを学びました。次は、カスタムMLモデルのトレーニングとデプロイに使用するAzure Machine Learning Studioについて学びます。
よくある質問
「Language と Vision API の実践」レッスンは無料ですか?
はい。「Language と Vision API の実践」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cloud & IT Cert Prepコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cloud & IT Cert Prepコースには全4レッスンが含まれています。
「Language と Vision API の実践」で何を学びますか?
REST リクエストを使用して Computer Vision API で画像を分析し、Text Analytics API で顧客レビューから感情と主要フレーズを抽出します。 ブラウザで直接実行するハンズオンコードでCloud & IT Cert Prepを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Cloud & IT Cert Prepを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCloud & IT Cert Prepは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「Language と Vision API の実践」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCloud & IT Cert Prepレッスンでコードを書いて実行できますか?
はい。すべてのCloud & IT Cert Prepレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Azure Cognitive Services の概要
- Language と Vision API の実践
- Azure Machine Learning Studio
- Azure OpenAI Service