1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Microsoft Azure Cognitive ServicesAdvent Calendar 2020

Day 8

新型コロナ対応?Text Analytics でテキスト分析 (2020年12月版) ~ Microsoft Azure Cognitive Services | Language

Last updated at Posted at 2020-12-08

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 で引き出します。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?