Azure Machine LearningとPower Queryを使用してExcelでテキストの調性を分析する

あなたは先週、Azure MarketplaceでAzure Machine Learningモデルを公開する機能に関するJoseph Siroshの投稿を見たことがあるかもしれません。MSはすでに多くのAPIを公開しています。 Excelには、これらのAPIにアクセスするために使用できる特別なアドオンがありますが、少なくとも1つのAPI( センチメント分析API )がPower Queryから直接使用できることに気付きました。



これを行うには、まずAzure Marketplaceにアクセスし、Microsoftアカウントでログインして、 Lexicon Based Sentiment Analysis APIにサインアップする必要があります 。 ドキュメントには、1か月あたり25,000件のトランザクションが無料であると書かれています。 API自体は非常に単純です。評価の提案を渡すと、-1から1の応答を受け取ります。1は正の調性、-1は負を意味します。 たとえば、「良い一日を過ごしました」という式は値1を返します。







「私には悪い日がありました」という表現は、-1を返します。







これで、Power Queryに進み、「Azure Marketplaceから」をクリックできます(Power QueryからAzure Marketplaceを初めて使用する場合は、資格情報を入力する必要があります)。







次に、「ナビゲータ」パネルが表示されたら、「スコア」をダブルクリックします。







APIはPower Queryの関数として表示され(これはODataサービス操作だと思いますが、よくわかりません)、「スコア」をダブルクリックすると関数が呼び出されます。 このフィールドに式を入力すると、クエリエディターが開き、評価の結果が表示されます。











ただし、何か便利なことをするためには、「今すぐ」関数を呼び出すだけでなく、関数を返すリクエストを行う必要があります。 これを行うには、クエリを少し編集します。 Advanced Editorに移動すると、リクエストのMコードが表示されます。次のようになります。



let Source = Marketplace.Subscriptions(), #"https://api.datamarket.azure.com/data.ashx/aml_labs/lexicon_based_sentiment_analysis/v1/" = Source{[ServiceUrl="https://api.datamarket.azure.com/data.ashx/aml_labs/lexicon_based_sentiment_analysis/v1/"]}[Feeds], Score1 = #"https://api.datamarket.azure.com/data.ashx/aml_labs/lexicon_based_sentiment_analysis/v1/"{[Name="Score"]}[Data], #"Invoked FunctionScore1" = Score1("I had a good day") in #"Invoked FunctionScore1"
      
      







次のコードを残して、関数を呼び出す最後の行(#“ Invoked FunctionScore1”)を削除する必要があります。



 let Source = Marketplace.Subscriptions(), #"https://api.datamarket.azure.com/data.ashx/aml_labs/lexicon_based_sentiment_analysis/v1/" = Source{[ServiceUrl="https://api.datamarket.azure.com/data.ashx/aml_labs/lexicon_based_sentiment_analysis/v1/"]}[Feeds], Score1 = #"https://api.datamarket.azure.com/data.ashx/aml_labs/lexicon_based_sentiment_analysis/v1/"{[Name="Score"]}[Data], #"Invoked FunctionScore1" = Score1("I had a good day") in Score1
      
      







[閉じる&ロード]をクリックして、クエリエディターウィンドウを閉じることができます。 これで、他のクエリから呼び出すことができる「スコア」関数ができました。 たとえば、次のExcelスプレッドシートを作成します。







[テーブルから]ボタンをクリックしてこのテーブルをPower Queryにロードし、クエリエディターで[カスタム列の追加]をクリックして、スコア([Sentence])という式で "Sentiment Score"という新しい列を追加します。







この関数を呼び出すには、ワークシートからAPIにデータを送信する必要があるため、使用するデータのプライバシーレベルを設定するように求められます。







[続行]をクリックし、このワークブックのプライバシーレベルを[パブリック]に設定して、データをAPIに送信できるようにします。







「保存」をクリックすると、「記録」という値を含む「センチメントスコア」列が追加されていることがわかります。 この列の「展開」アイコンをクリックしてから、「OK」をクリックします。







そして最後に、実際には推定値が表示されます。







コードは次のとおりです。



 let Source = Excel.CurrentWorkbook(){[Name="Table3"]}[Content], #"Added Custom" = Table.AddColumn(Source, "SentimentScore", each Score([Sentence])), #"Expand SentimentScore" = Table.ExpandRecordColumn(#"Added Custom", "SentimentScore", {"result"}, {"SentimentScore.result"}) in #"Expand SentimentScore"
      
      







ここからワークブックファイルをダウンロードできます。



もちろん、Facebookステータスの更新でこれに抵抗することはできませんでした。これは、 Power Queryから非常に簡単にアクセスできます。 2009年6月から現在までの私のステータスの平均月次調子は次のとおりです。







ご覧のとおり、8月は特に気分がよかったです。おそらく、ほぼ1か月間休暇をとっていたためでしょう。



All Articles