アナリティクス
Microsoft Azure Machine Learning Studioを使用した感情分析
イントロダクション
Microsoft Azure Machine Learning Studio (MLStudio) は、機械学習の「実験」を作成するためのワークスペースです。 MLStudio で実験を Web サービスに変換すると、RESTful インターフェイスを介して実験をクエリして、オンデマンドで予測と分類を取得できるようになります。
MLStudio を使い始めるには、次のサイトにアクセスしてください。 https://studio.azureml.net/ まだアカウントをお持ちでない場合は、アカウントにサインアップしてください。 Microsoft は現在、ユーザーに限られた数の実験を無料でデプロイすることを許可しており、トレーニング データ用に 10 GB の無料ホスティングを提供しています。 まだ MLStudio に慣れていない場合は、チュートリアルを見て、いくつかのサンプル実験または実験ギャラリーの実験から始めることをお勧めします。 このチュートリアル全体を通じて、ここにある Twitter センチメント分析の予測実験を使用します。 https://gallery.cortanaintelligence.com/Experiment/Predictive-Experiment-for-Twitter-sentiment-analysis-3。 このチュートリアルを終えると、Vantiq Analytics ソースを通じてこの実験をクエリして、ツイートのセンチメントを取得できるようになります。
MLStudio 実験のセットアップ
MLStudio アカウントを作成してワークスペースにログインした後、次の場所に移動します。 https://gallery.cortanaintelligence.com/Experiment/Predictive-Experiment-for-Twitter-sentiment-analysis-3 [スタジオで開く] リンクをクリックし、[実験をギャラリーにコピー] ポップアップのチェックマークをクリックします。 ワークスペース内の実験のリストから実験を開き、実験がアップグレード中であることを示す下部のメニュー バーで [OK] をクリックし、下部のメニューから [実行] をクリックします。 実行が完了したら (モデルのトレーニングに約 10 分かかる場合があります)、下部のメニューから [Web サービスのデプロイ] を選択し、推奨されるオプションを選択します。
ウェブサービスをデプロイすると、APIキーを指定するページに移動し、その下にリクエスト/レスポンスAPIとバッチAPIの行を含む表が表示されます。リクエスト/レスポンス行の青い「TEST」ボタンを選択してテストすると、ページの下部にレスポンスが表示されます。ここで実際に行われているAPI呼び出しを確認するには、左側の列の「リクエスト/レスポンス」をクリックしてください。これらのドキュメントと前のページで取得したAPIキーがあれば、VAILに感情分析をリクエストできます。
Vantiq Analytics ソースの構成
予測実験を使用した予測を MLStudio にリクエストするには、Vantiq 名前空間に「Sentiment」という名前の新しい分析ソースを作成します。 分析タイプは「Microsoft MLStudio」で、リクエスト URI は実験のリクエスト/レスポンス ドキュメントで指定された POST URL です。 [アクセス トークン] フィールドに API キーを指定し、分析ソースを保存します。
VAIL での分析ソースの使用
分析ソースが構成されたので、VAIL で試してみることができます。 以下は、単一のパラメーター、つまり分類するメッセージを受け取り、予測実験の実行からの応答を返すプロシージャの例です。
PROCEDURE testSentimentOfStatement(msg)
// Construct the request body
// see the Request/Response docs for more details on how this is formulated
var payload = {"Inputs": { "input1": { "ColumnNames": ["tweet_text"], "Values": [[msg]]}}, "GlobalParameters": {}}
// Request the prediction from the source
var prediction = SELECT FROM SOURCE Sentiment WITH body = payload
log.info("Prediction result: {}", [prediction])
// Grab the result field
var result = prediction[0].Results
// Get the values from output1 (the name of the final activity in the experiment)
var output = result["output1"]
var values = output.value.Values
// values is actually an array, so get the first index
values = values[0]
// values is an array of length 2
// first value is the direction (positive, neutral, or negative)
// second value is the score
var polarity = values[0]
var score = values[1]
return {polarity: polarity, score: score}