Cognitive Services Text Analytics は、テキスト(文章)から言語やキーフレーズ、エンティティの抽出やセンチメント(ネガポジ)分析が可能なサービスです。
Microsoft Azure > Cognitive Services > Text Analytics
新型コロナ対応か、Healthcare Analysis (医療関係用語対応のテキスト分析) が v3.1 (preview) で追加されているので、それも合わせて Text Analytics の機能を紹介します。
Text Analytics の主な機能
v3.0(GA)
# | 機能 | API名称 |
---|---|---|
1 | 言語検出 | Detect Language |
2 | キーフレーズ抽出 | Key Phrases |
3 | エンティティ抽出 | Named Entity Recognition |
4 | エンティティのリンク情報検索 | Entities Linking |
5 | センチメント分析 | Sentiment |
v3.1(Preview) で追加されている機能
# | 機能 | API名称 |
---|---|---|
6 | 個人情報エンティティ抽出 | Entities Recognition PII |
7 | テキスト分析 (※バッチジョブ) |
Analysis Job |
8 | Healthcare Analysis (※バッチジョブ) |
Healthcare Analysis Job |
Text Analytics の使い方
必要な準備
- Azure サブスクリプション (無料試用版でOK)
- Text Analytics サービスの作成 (Free版でOK)
Azure 無料試用版 & Cognitive Services 準備 の手順を参考に作成しておきます。
Web API リクエストなど使い方
Web API リクエスト、または SDK ( .NET C#, JavaScript, Python, Java) も利用できます。
Web API の仕様は API リファレンスから確認できます
Web API なので、例えば以下のように情報をセットしてリクエストを送信、結果を取得します。
// Request URL
POST https://YOUR_TA_URL/text/analytics/v3.0/keyPhrases
// Header
Content-Type: application/json
Ocp-Apim-Subscription-Key: YOUR_SUB_KEY
// Body
{
"documents": [
{
"language": "ja",
"id": "1",
"text": "おはよう世界"
}
]
}
YOUR_TA_URL(エンドポイント) と YOUR_SUB_KEY(キー) は Text Analytics のサービス作成時や Azure Portal から確認してください。
コンテナーの利用
Web API リクエストで利用できる Text Analytics は、ローカル環境に配置して利用できる Docker コンテナー も用意されています。(Dockerコンテナーで稼働させる Web サービスに API Request して利用します。)
Text Analytics の機能では、言語検出&キーフレーズ抽出、センチメント分析、Healthcare Analysis がコンテナーとして提供されています。
Microsoft Docs > Azure Cognitive Services コンテナー
Microsoft Docs > Text Analytics コンテナーをインストールして実行する
利用イメージ↓
Cognitive Services Containers を利用して ローカルの Docker コンテナで Text Analytics Sentiment を試す
利用できる Web API と機能
1. 言語検出
文章の言語を判定します。
// Request URL
POST https://YOUR_TA_URL/text/analytics/v3.0/languages
// Header
Content-Type: application/json
Ocp-Apim-Subscription-Key: YOUR_SUB_KEY
// Body
{
"documents": [
{
"countryHint": "US",
"id": "1",
"text": "Hello world"
},
{
"id": "2",
"text": "Bonjour tout le monde"
},
{
"id": "3",
"text": "こんにちは世界"
}
]
}
2. キーフレーズ抽出
文章のキーフレーズを抽出します。
// Request URL
POST https://YOUR_TA_URL/text/analytics/v3.0/keyPhrases
// Header
Content-Type: application/json
Ocp-Apim-Subscription-Key: YOUR_SUB_KEY
// Body
{
"documents": [
{
"id": "1",
"language": "en",
"text": "Hello world! What a lovely day!"
},
{
"id": "2",
"language": "ja",
"text": "こんにちは世界。今日はいい天気!"
}
]
}
3. エンティティ抽出
一般的なエンティティ(→リスト) を抽出します。
// Request URL
POST https://YOUR_TA_URL/text/analytics/v3.0/entities/recognition/general
// Header
Content-Type: application/json
Ocp-Apim-Subscription-Key: YOUR_SUB_KEY
// Body
{
"documents": [
{
"language": "ja",
"id": "1",
"text": "先月、京都に行ってきました"
},
{
"language": "ja",
"id": "2",
"text": "私はマイクロソフトで働いている"
}
]
}
4. エンティティの情報リンク検索
(※英語、スペイン語のみ)
文章に含まれるエンティティの情報リンク(wikiなど)を検索、提示します。
// Request URL
POST https://YOUR_TA_URL/text/analytics/v3.0/entities/linking
// Header
Content-Type: application/json
Ocp-Apim-Subscription-Key: YOUR_SUB_KEY
// Body
{
"documents": [
{
"language": "en",
"id": "1",
"text": "I had a wonderful trip to Seattle last week. I visited Space Needle 2 times."
}
]
}
5. センチメント分析
文章に現れる感情を分析し、ポジティブ、ニュートラル、ネガティブのそれぞれの判定を行います。
1文ごと、および文章全体のセンチメントを判定します。
// Request URL
POST https://YOUR_TA_URL/text/analytics/v3.0/sentiment
// Header
Content-Type: application/json
Ocp-Apim-Subscription-Key: YOUR_SUB_KEY
// Body
{
"documents": [
{
"language": "ja",
"id": "1",
"text": "明日から京都に旅行に行きます。久しぶりなので楽しみです"
}
]
}
v3.1 preview では、Opinion (文章の"意見") 抽出およびセンチメント分析ができるようになっています。(※英語のみ)
Microsoft Docs > How to: Sentiment analysis and Opinion Mining - Opinion Mining
6. 個人情報エンティティ抽出
(※英語のみ)
文章に含まれる個人情報(名前、メールアドレス、住所、電話番号など)とその種類を判定し、その部分をマスキングした文章も提示します。
// Request URL
POST https://YOUR_TA_URL/text/analytics/v3.1-preview.3/entities/recognition/pii
// Header
Content-Type: application/json
Ocp-Apim-Subscription-Key: YOUR_SUB_KEY
// Body
{
"documents": [
{
"language": "en",
"id": "1",
"text": "Please contact me at 09012345678"
}
]
}
7. テキスト分析(バッチジョブ)
テキスト分析をジョブとして投入できるようになります。
Submit analysis job で分析したいドキュメントを Post し、発行される Job Id をパラメータとして Get analysis status and results で結果を取得します。
// Request URL
POST https://YOUR_TA_URL/text/analytics/v3.1-preview.3/analyze
// Header
Content-Type: application/json
Ocp-Apim-Subscription-Key: YOUR_SUB_KEY
// Body
{
"analysisInput": {
"documents": [
{
"id": "doc1",
"text": "It's incredibly sunny outside! I'm so happy it's a beautiful day on my 20th birthday!"
},
{
"id": "doc2",
"text": "Pike place market is my favorite Seattle attraction."
}
]
},
"tasks": {
"entityRecognitionTasks": [
{
"parameters": {
"model-version": "latest"
}
}
],
"keyPhraseExtractionTasks": [
{
"parameters": {
"model-version": "latest"
}
}
],
"entityRecognitionPiiTasks": [
{
"parameters": {
"model-version": "latest"
}
}
]
}
}
8. Healthcare Analysis
(※プレビュー申込が必要)
医療機関ドキュメント (カルテや投薬記録など) で利用される用語を検出、分析できるサービスです。
ただいまプレビュー提供であり、このサービスは専門家の判断に代わるものではなく、マイクロソフトは一切の責任を持たない旨、記載されています。
Microsoft Docs > How to: Use Text Analytics for health (preview)
利用方法は 7 と同様に Job を投入して、結果を Job Id で引き出します。