NINA HOUSE

技術ブログ作ってみる

【AI-900】Azureの自然言語処理サービスについて(Text Analytics編)

Text Analytics サービスを使用してテキストを分析

docs.microsoft.com

テキスト分析ってこんなことしてる↓

  • テキストで使用されている用語の統計分析。 たとえば、一般的な "ストップワード" ("the" や "a" など。テキストに関するセマンティック情報がほとんどない単語) を削除し、残りの単語の "頻度分析" (各単語の出現回数をカウントする) を実行すると、テキストの主要なテーマに関するヒントを得ることができます。

  • 頻度分析を複数用語のフレーズに拡張します。これらのフレーズは、一般的に "N グラム" (2 単語のフレーズは "バイグラム"、3 単語のフレーズは "トライグラム" など) と呼ばれます。

  • "stemming" または "lemmatization" アルゴリズムを適用して、カウントする前に単語を正規化します。たとえば、"power"、"powered"、"powerful" のような単語は同じ単語として解釈されます。

  • 言語構造規則を適用して文を分析します。たとえば、文を "名詞句" などのツリー状の構造に分割します。これ自体には、"名詞"、"動詞"、"形容詞" などが含まれます。

  • 単語や用語を、機械学習モデルのトレーニングに使用できる数値の特徴量としてエンコードします。 たとえば、含まれている用語に基づいてテキスト ドキュメントを分類します。 多くの場合、この手法は、"感情分析" を実行するために使用され、ドキュメントは肯定的または否定的として分類されます。

  • 単語を n 次元空間内の場所に割り当てて、単語間のセマンティック関係をキャプチャする "ベクトル化" モデルを作成します。 たとえば、このモデリング手法では、"花" と "植物" という単語に値を割り当てて、それらを相互に近接するように配置し、"スケートボード" には、はるかに離れた位置にある値を与えます。

https://docs.microsoft.com/ja-jp/learn/modules/analyze-text-with-text-analytics-service/1-introduction

めちゃくちゃ複雑。これらをできるようにしたサービスがText Analytics

ドキュメントまたはテキストの言語 (フランス語や英語など) を決定

例えば英語とスペイン語が混在するような文章でもどっちが主要言語であるか判定してくれる。

【判定の仕方】
f:id:nina-b:20210508201833j:plain

テキストに対して感情分析を実行して肯定的または否定的な感情を決定

事前に構築された機械学習分類モデルを使用して、テキストを評価し、0 から 1 の範囲のセンチメント スコアを返す。1 に近い値ほど肯定的な感情。 範囲の中間 (0.5) に近いスコアは、中立または不確定とみなされる。

テキストから、主な要点を示す可能性のあるキー フレーズを抽出

こんなレビューがあったとしたら↓

"誕生日のお祝いに、ここで夕食をいただきましたが、すばらしい経験でした。私たちは親切な接客係の女性に出迎えられ、予約した席にすぐに案内されました。くつろげる雰囲気で、料理も非常においしく、サービスは最高でした。すばらしい料理と気配りの行き届いたサービスが好きなら、ぜひこの場所を訪ねるべきです。"

  • 気配りの行き届いたサービス
  • すばらしい料理
  • 誕生日のお祝い
  • すばらしい経験
  • 親切な接客係の女性
  • 夕食
  • 雰囲気
  • 場所

こんな感じで抽出。感情分析に応用。

テキスト内のエンティティを識別して分類する。 エンティティとしては、人物、場所、組織、または日常的な項目 (日付、時刻、数量など) がある

例↓
f:id:nina-b:20210508202710j:plain

Text Analytics サービス用の Azure リソース

Text AnalyticsかCognative Services。
他のサービスとの課金の仕方でどっちを選択するか考えましょう。(他のCognative Servicesと一緒にする場合はCognative Services)