こんにちは。データサイエンスチームの高橋です。
前回の記事「【第一回】Azure Cognitive Services for Language で簡単テキスト分析!~サービス紹介と感情分析を使ってみる編~」では Azure Cognitive Services for Language のサービス概要と感情分析の利用方法について紹介しました。前回ご紹介した通り、本サービスには感情分析以外にも様々な機能が用意されています。今回はその機能の 1 つである「質問応答 (Question answering) 」の利用方法をご紹介していきます。
機能 | 説明 | 用途 |
---|---|---|
固有表現抽出 (NER) | 固有表現と呼ばれる人名や地名、日付などを文中から抽出します | チャットボット テキストマイニング |
個人を特定できる情報 (PII) の検出 | 電話番号やメールアドレスなどの個人を特定できる情報を、文中から検出します | データの匿名化 |
キーフレーズ抽出 | 文中からキーフレーズを抽出し、そのリストを返します | 文書のタグ付け可視化 |
エンティティ・リンキング | 文中の語句と知識ベース (Wikipedia) を紐づけ、詳細情報を提供します | チャットボット テキストマイニング |
Text Analytics for Health | 電子カルテなどの医療関係の文書に対する分析機能を提供します | 医療用文書の分析 |
カスタム NER | ユーザーが独自の専門領域に特化した NER のモデルを構築できます | 領域に特化したチャットボット テキストマイニング |
感情分析 | 文章に対して “negative”, “neutral”, “positive” でラベリング・スコアリングします | レビュー・SNS分析 株価予測 |
言語検出 | 文章がどの言語で書かれているかを検出します | 他機能との連携 |
カスタム文書分類 (プレビュー) | ユーザーが任意のカテゴリに分類する文書分類モデルを構築できます | スパムフィルタリング ニュース記事分類 |
文書要約 (プレビュー) | 記事や論文などの要約を生成します | 要約 |
Conversational Language Understanding (プレビュー) | 会話の内容を理解して、対応する意図 (Intent) に分類します | チャットボット 音声コントロール |
Question answering ★本記事 |
質問から適切な回答を選択します | チャットボット FAQ ボット |
質問応答とは、その名の通り、質問すると適切な応答をしてくれるシステムです。例えば、「日本の首都はどこ?」というユーザーの質問に対して、システムが「東京」と答えるようなイメージとなります。身近なものであれば、iPhone の機能である Siri は質問応答システムを発展させたものと言えます。それ以外でも、ホームページなどを閲覧していて、右下にチャットボット用のウィンドウが表示されているのを見かけたことはないでしょうか。あのようなシステムも簡易的な質問応答システムとなります。
質問応答システムの導入には様々なメリットがあります。質問応答システムで問い合わせ対応を自動化することで、対応コストを減らすことができ、人件費削減や業務効率化を実現できます。また、チャットベースの質問応答システムでは、欲しい回答を自然かつ即座に得られることによって、ユーザビリティの向上というメリットもあります。
このような質問応答システムを構築するためには、質問と回答が組になった QA ペアを収集しデータ化する必要があります。また質問文の意図を正しく理解するためには、自然言語処理や機械学習の知識も必要になってきます。質問応答システムを自前で構築するとなると非常に大変ですが、これらの手間や専門知識を必要とせずに、質問応答システムを構築できてしまうのが Azure Cognitive Services for Language の質問応答のサービスとなります。本記事では、Azure Cognitive Services for Language での質問応答の利用方法についてご紹介していきます。
Azure Cognitive Services for Language では質問応答として 2 種類の機能が提供されています。
まずは Answer questions を利用して、Azure Cognitive Services for Language の質問応答がどのようなものか試してみます。感情分析と同様に Language Studio から以下の手順で実行できます。
このように非常に簡単に質問応答を試すことができます。結果も分かりやすく表示されるので、とりあえず使ってみる場合に最適な機能です。
続いて、Custom question answering を利用してみます。Custom question answering では、ニーズに合わせてモデルをカスタマイズでき、チャットボットとしてのデプロイも可能となっているため、より実用的な機能と言えます。今回はこの機能を利用して、東京都が公開している「新型コロナウイルス感染症FAQ(よくある質問)」( https://www.metro.tokyo.lg.jp/tosei/tosei/news/documents/corona_faq_2.pdf ) から質問応答のチャットボットを作成しようと思います。
本記事では Azure Cognitive Services for Language で簡単に質問応答システムを構築する方法をご紹介しました。本機能で提供されている Answer questions と Custom question answering の使い分けとしては、試しに使ってみたい場合や QA ペアの収集が困難な場合には Answer questions を利用して、既存の FAQ ページなどを利用したい場合には Custom question answering を利用するという方法が考えられるかと思います。今回のご紹介で、質問応答システムをとても簡単に構築できることが少しでも伝われば幸いです。また今回は質問応答システムの構築までについてご紹介しましたが、構築したシステムをどう利用していくかも重要となります。例えば WEB 上で公開してユーザーが使えるようするといった利用方法や、Teams と連携することで、Teams から質問応答システムに問い合わせができるようにするといった利用方法も考えられます。このような連携についても様々な機能が用意されているので、目的に合わせた多種多様な使い方が可能になっています。もし 「FAQ がうまく活用できていない!」というような課題がございましたら、Azure Cognitive Services for Language の質問応答の利用をご一考されてはいかがでしょうか。
当社でも、Azure のサービスを活用したチャットボットソリューションである Knowledge bot など、本記事に関連するサービスをご用意しております。チャットボット以外についても、Azure を活用したデータ分析から AI モデルのスクラッチでの実装まで、ご相談などがありましたら、当社までお気軽にお問い合わせください。最後までお読みいただきありがとうございました。
関連ページ |