Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Synapse Analytics Service から Cognitive Services の 感情分析を使ってみた

Synapse Analytics Service から Cognitive Services の 感情分析を使ってみた

Synapse Analytics Serviceのノートブックから Cognitive Service の感情分析機能を呼び出した時に、 Cognitive Service がどのように呼び出されるのかを観察してみました。

鍋島千夏

August 07, 2022
Tweet

More Decks by 鍋島千夏

Other Decks in Technology

Transcript

  1. 目的 • Synapse Analytics ServiceのノートブックからCognitive Serviceの感情分析機能を呼び出した時に、Cognitive Serviceが どのように呼び出されるのかを観察する。 • 前提条件

    • 用意するAzureリソース • Synapse Analytics Serivce • Spark pool • Cognitive Service (Freeプラン) • KeyVault • ADLS gen2 参照:チュートリアル:Cognitive Services を使用した感情分析 https://docs.microsoft.com/ja-jp/azure/synapse-analytics/machine-learning/tutorial-cognitive-services-sentiment
  2. 結果:Cognitive Serviceがフリープランの場合、1分あたり100~140件しか処理できない ① 感情分析の解析結果データフレームの 上位10行だけ表示 ② 感情分析の解析結果データフレーム全件を レイク データベースに格納 →

    1分当たり約100~140件のペースで APIが呼ばれ続ける・・・ display(results¥ .select("body", explode("output").alias("exploded"), "error")¥ .select("body", "exploded.*", "error")¥ .limit(10)) results.write.mode('overwrite').saveAsTable("LivedoorNewsResult") 結果を出力するタイミングでCognitive ServivceのText Analytics のAPIが呼ばれる
  3. 補足:元の記事 もうすぐジューン・ブライドと呼ばれる6月。独女の中には自分の式はまだなのに呼ばれてばかり……という「お祝い貧乏」状態の人も多いのではないだろうか? さらに出席回数を重ねていくと、こん なお願いごとをされることも少なくない。 「お願いがあるんだけど……友人代表のスピーチ、やってくれないかな?」 さてそんなとき、独女はどう対応したらいいか? 最近だとインターネット等で検索すれば友人代表スピーチ用の例文サイトがたくさん出てくるので、それらを参考にすれば、無難なものは誰でも作成できる。しかし由利さん(33歳)はネットを参考に して作成したものの「これで本当にいいのか不安でした。一人暮らしなので聞かせて感想をいってくれる人もいないし、かといって他の友人にわざわざ聞かせるのもどうかと思うし……」ということで活 用したのが、なんとインターネットの悩み相談サイトに。そこに作成したスピーチ文を掲載し「これで大丈夫か添削してください」とメッセージを送ったというのである。 「一晩で3人位の人が添削してくれましたよ。ちなみに自分以外にもそういう人はたくさんいて、その相談サイトには同じように添削をお願いする投稿がいっぱいありました」(由利さん)。ためしに

    教えてもらったそのサイトをみてみると、確かに「結婚式のスピーチの添削お願いします」という投稿が1000件を超えるくらいあった。めでたい結婚式の影でこんなネットコミュニティがあったとは知 らなかった。 しかし「事前にお願いされるスピーチなら準備ができるしまだいいですよ。一番嫌なのは何といってもサプライズスピーチ!」と語るのは昨年だけで10万以上お祝いにかかったというお祝い貧乏独女の 薫さん(35歳) 「私は基本的に人前で話すのが苦手なんですよ。だからいきなり指名されるとしどろもどろになって何もいえなくなる。そうすると自己嫌悪に陥って終わった後でもまったく楽しめなくなりますね」 サプライズスピーチのメリットとしては、準備していない状態なので、フランクな本音をしゃべってもらえるという楽しさがあるようだ。しかしそれも上手に対応できる人ならいいが、苦手な人の場合 だと「フランク」ではなく「しどろもどろ」になる危険性大。ちなみにプロの司会者の場合、本当のサプライズではなく式の最中に「のちほどサプライズスピーチとしてご指名させていただきます」と いう一言があることも多いようだが、薫さん曰く「そんな何分前に言われても無理!」らしい。要は「サプライズを楽しめる」というタイプの人選が大切ということか。 一方「ありきたりじゃつまらないし、ネットで例文を検索している際に『こんな方法もあるのか!』って思って取り入れました」という幸恵さん(30歳)が行ったスピーチは「手紙形式のスピーチ」と いうもの。 「◦◦ちゃんへ みたいな感じで新婦の友人にお手紙を書いて読み上げるやり方です。これなら多少フランクな書き方でも大丈夫だし、何より暗記しないで堂々と読み上げることができますよね。読ん だものはそのまま友人にあげれば一応記念にもなります」(幸恵さん) なるほど、確かにこれなら読みあげればいいだけなので、人前で話すのが苦手な人でも失敗しないかもしれない。 主役はあくまで新郎新婦ながらも、いざとなると緊張し、内容もあれこれ考えて、こっそりリハーサル……そんな人知れず頑張るスピーチ担当独女たちにも幸あれ(高山惠)
  4. 補足:感情分析は1記事に対して 応答は1件だが、文ごとに感情分析の結果が返される。 参照: Docs Cognitive Services - Text Analytics センチメント

    > Sentiment - Sentiment https://docs.microsoft.com/ja-jp/rest/api/cognitiveservices-textanalytics/3.0/sentiment/sentiment?tabs=HTTP#successful-sentiment-request
  5. 補足:感情分析は1度に10文書要求できる。 Docs Cognitive Services - Text Analytics センチメント > Successful

    Sentiment request https://docs.microsoft.com/ja-jp/rest/api/cognitiveservices-textanalytics/3.0/sentiment/sentiment?tabs=HTTP#successful-sentiment-request 1回のリクエストにつき10文書
  6. 補足:感情分析は1度に10文書要求できる。 Docs Cognitive Services - Text Analytics センチメント > Successful

    Sentiment request https://docs.microsoft.com/ja-jp/rest/api/cognitiveservices-textanalytics/3.0/sentiment/sentiment?tabs=HTTP#successful-sentiment-request サンプルでは3文書の解析を要求
  7. 補足:Cognitive Service側の転送率の制限 Azure Cognitive Service for Language のサービスの制限 > 転送率の制限

    https://docs.microsoft.com/ja-jp/azure/cognitive-services/language-service/concepts/data-limits
  8. 7369記事の感情分析の結果から見えたこと • 実測値。Cognitive Serviceがフリープランだと1分あたり約100~140件処理可能。 • 7369記事を感情分析するには1時間ぐらいと予想したが、実際には90分かかった。 • 記事数文だけAPIがコールされる予定が、API呼び出しが11190件あった原因は今のことろ原因不明。 (→ 2022/08/07追記:原因調査おわったので、後ろにページを追記しました。データのクレンジング不足でした。)

    • APIコールのタイミングはSynapse.MLライブラリがよろしく制御してくれる。 してくれないことがある。 • 1秒当たりのコール数の制限こえたから1秒後にアクセスしなさいというエラーを確認。ステータスコード:429 • フリープランの5000件の制限超えたから、18日後にアクセスしなさいというエラーを確認。ステータスコード:403 • Coginitive Service の Standardプランだと転送率の制限が10倍なので、10倍速いのではないか? • 大規模データを一度に感情分析しようとすると時間がかかる。 • 課金 • Cognitive Serviceは0円で試すことができる。 • Spark Poolは1.5時間なので300円ぐらい。