あなたは先週、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か月間休暇をとっていたためでしょう。