こんにちは。データサイエンスチームの高橋です。
前回の記事「Azure Cognitive Services for Language で簡単テキスト分析!~会話言語理解を使ってみる編~」では Azure Cognitive Services for Language の会話言語理解の利用方法について紹介しました。前回、前々回とチャットボットに関連する機能を紹介しましたが、今回は少し毛色を変えて、文書を自動で要約できる機能について取り上げようと思います。
機能 | 説明 | 用途 |
---|---|---|
固有表現抽出 (NER) | 固有表現と呼ばれる人名や地名、日付などを文中から抽出します | チャットボット テキストマイニング |
個人を特定できる情報 (PII) の検出 | 電話番号やメールアドレスなどの個人を特定できる情報を、文中から検出します | データの匿名化 |
キーフレーズ抽出 | 文中からキーフレーズを抽出し、そのリストを返します | 文書のタグ付け可視化 |
エンティティ・リンキング | 文中の語句と知識ベース (Wikipedia) を紐づけ、詳細情報を提供します | チャットボット テキストマイニング |
Text Analytics for Health | 電子カルテなどの医療関係の文書に対する分析機能を提供します | 医療用文書の分析 |
カスタム NER | ユーザーが独自の専門領域に特化した NER のモデルを構築できます | 領域に特化したチャットボット テキストマイニング |
感情分析 | 文章に対して “negative”, “neutral”, “positive” でラベリング・スコアリングします | レビュー・SNS分析 株価予測 |
言語検出 | 文章がどの言語で書かれているかを検出します | 他機能との連携 |
カスタム文書分類 (プレビュー) | ユーザーが任意のカテゴリに分類する文書分類モデルを構築できます | スパムフィルタリング ニュース記事分類 |
文書要約 (プレビュー) ★本記事 |
記事や論文などの要約を生成します | 要約 |
Conversational Language Understanding (プレビュー) | 会話の内容を理解して、対応する意図 (Intent) に分類します | チャットボット 音声コントロール |
Question answering | 質問から適切な回答を選択します | チャットボット FAQ ボット |
文書要約とはその名の通り、文書を要約することを指します。本機能は自動要約とも呼ばれ、文書の要約を自動で行います。私たちの周りには、ニュース記事や議事録など、文量の多い文書が数多く存在しています。しかしこのような文書に一行ずつ目を通すことは、非常にコストがかかる作業です。情報であふれる現代において、効率的な情報の取捨選択は必須です。本機能はそのような長い文書を短く要約することで、文書確認を効率化できるものとなっています。例えば100行もあるような文書を、たった10行の要約として出力することが本機能を利用することで可能になります。100行の内容を10行分で確認することができれば、単純に9割分のコスト削減が可能となります。もちろん要約なので、100%の情報が得られるわけではありませんが、元の文書も確認する際においても、一度要約に目を通しておくことで、効率的に読み進めていくことが可能だと考えられます。また、確認する文書の取捨選択をしたい場合においても、要約の存在は非常に有用となります。このように業務効率化において文書要約は非常に効果的であると言えます。
文書要約は、NLP の分野で盛んに研究されています。。文書要約の手法は大きく分けて、抽出型と抽象型の2種類存在しています。それぞれの簡単な説明を以下に示します。
本サービスで提供している文書要約は抽出型となります。抽出型では文単位での出力となるので、出力する文の数を指定できます。より具体的な仕組みとしては、入力された文書の各文に対して、要約文としての重要度をスコアリングし、スコア上位の何文かを出力する機能となっています。抽出型を採用していることにより、文自体の妥当性は損なわれることが無いため、実務においても使いやすい機能になっていると思います。
さっそく文書要約を利用してみましょう。Language Studio を利用して、以下の手順を実施していきます。
このように Language Studio を利用することで、非常に簡単に文書要約を試すことができます。
続いて、Python から API を利用して、文書要約を実行してみます。APIの利用シーンとして、大量の文書を要約して確認作業を効率化するような場合が考えられます。Python の実行環境をご準備の上、以下の手順で実施していきます。
pip install azure-ai-textanalytics==5.2.0b1
以下のキーとエンドポイントを利用します。
key = "ここに確認したキーを貼り付けます" endpoint = "ここに確認したエンドポイントを貼り付けます" # 各種ライブラリのインポート from azure.ai.textanalytics import TextAnalyticsClient from azure.core.credentials import AzureKeyCredential # キーとエンドポイントを利用してクライアントの認証を行います def authenticate_client(): ta_credential = AzureKeyCredential(key) text_analytics_client = TextAnalyticsClient( endpoint=endpoint, credential=ta_credential) return text_analytics_client client = authenticate_client() # 文書要約 def sample_extractive_summarization(client): from azure.core.credentials import AzureKeyCredential from azure.ai.textanalytics import ( TextAnalyticsClient, ExtractSummaryAction ) document = [“要約したい文書のテキスト”] poller = client.begin_analyze_actions( document, actions=[ ExtractSummaryAction(MaxSentenceCount=4) ], ) document_results = poller.result() for result in document_results: extract_summary_result = result[0] if extract_summary_result.is_error: print("...Is an error with code '{}' and message '{}'".format( extract_summary_result.code, extract_summary_result.message )) else: print("Summary extracted: \n{}".format( " ".join([sentence.text for sentence in extract_summary_result.sentences])) ) sample_extractive_summarization(client)上記のスクリプトを応用することで、大量のニュース記事に対して要約を実行することができます。以下の結果は、livedoor ニュースコーパスのスポーツ記事 100 件に対して要約を行った結果です。100 件の要約は API の入出力も含めて 2 分半ほどで実行が完了しました。実行結果を確認すると、多くの場合で 1 文目や 2 文目の要約文は妥当な文が抽出されており、Rank Score も比較的高いことが確認できました。3 文目の要約文に関しては鍵カッコの途中で文が終わっているなど、違和感のある個所が一部確認できる状態が確認できます。このような部分については、後処理などで改善していく部分になると考えられます。
以上の手順により、Python から Web API 経由で文書要約の機能が利用できます。大量の文書に目を通したい場合には、この方法を用いて要約を作成することで、効率的に文書の確認作業が実施できると考えられます。
文書要約の機能はプレビュー版ということで、今後ブラッシュアップされていく部分もあると思います。Microsoft が昨年 11 月に発表した Azure OpenAI Service では、最新の自然言語処理モデルを利用した自動要約のデモンストレーションを公開しています。このように最新技術を取り入れることで、より高精度な機能が今後提供されるかもしれません。引き続きキャッチアップしていきたいと思います。
本記事では Azure Cognitive Services for Language における文書要約の機能の利用方法についてご紹介しました。Language Studio でサクッと利用してみる方法や、API を利用して大量の文書を要約する方法など、シーンに合わせた使い方ができるサービスとなっていることが分かります。今回は検証としてニュース記事の要約を行いましたが、メルマガを要約して情報の取捨選択を効率化するような使い道や、議事録を要約して会議の要点を掴むといった使い道もあると思います。このように様々な業務効率化に有用な機能と言えます。また文書を提供する側の場合でも、本機能を用いた要約文を合わせて提供することで、顧客満足度の向上にも寄与できると言えるでしょう。情報に溢れる現代において、効率的に情報を得ることは非常に重要であると考えられます。今回紹介した機能は、日々大量の文書に触れる私たちにとって、優秀なアシスタントとなるかもしれません。本機能がどんなところに活用できそうか、本記事がご検討の一助となれば幸いです。
当社では、アンケート分析や SNS の口コミ分析向けのソリューションである CogEra やチャットボットソリューションである Knowledge Bot など、本記事に関連するサービスをご用意しております。また、当社では AI モデルの構築やデータ分析はもちろん、Azure を活用したデータ分析基盤の構築から、分析結果の可視化まで、一気通貫で支援できる体制を整えております。データの利活用にご興味がございましたら、ぜひ当社までお気軽にお問い合わせください。最後までお読みいただきありがとうございました。
関連ページ |