使用 Azure 串流分析進行社交媒體分析

本文會教導您如何建置社交媒體情感分析解決方案,方法是將即時 Twitter 事件帶入 Azure 事件中樞,然後使用串流分析加以分析。 您可以撰寫 Azure 串流分析查詢來分析數據並儲存結果,以供日後使用或建立 Power BI 儀錶板,以即時提供深入解析。

社交媒體分析工具可協助組織瞭解趨勢主題。 熱門話題是社交媒體上大量帖子的主題和態度。 情感分析也稱為 意見採礦,使用社交媒體分析工具來判斷對產品或想法的態度。

即時 Twitter 趨勢分析是分析工具的絕佳範例,因為哈希標籤訂閱模型可讓您接聽特定關鍵詞(主題標籤),並開發摘要的情感分析。

案例:即時社交媒體情感分析

擁有新聞媒體網站的公司有興趣藉由提供與讀者立即相關的網站內容,來獲得競爭對手的優勢。 該公司透過對 Twitter 資料的即時情感分析,對與讀者相關的主題使用社交媒體分析。

若要在 Twitter 上實時識別趨勢主題,公司需要即時分析重要主題的推文數量和情感。

必要條件

在本操作指南中,您會使用連線到 Twitter 的用戶端應用程式,並尋找具有特定主題標籤的推文(您可以設定)。 下列清單提供您執行應用程式及使用 Azure 串流分析來分析推文的必要條件。

以下是您要實作的解決方案架構。

A diagram showing different pieces of services and applications used to build the solution.

建立串流輸入的事件中樞

範例應用程式會產生事件,並將其推送至事件中樞。 Azure 事件中樞 是串流分析事件擷取的慣用方法。 如需詳細資訊,請參閱 Azure 事件中樞 檔

建立事件中樞命名空間和事件中樞

遵循快速入門:使用 Azure 入口網站 建立事件中樞,以建立事件中樞命名空間和名為socialtwitter-eh的事件中樞。 您可以使用不同的名稱。 如果您這樣做,請記下它,因為您稍後需要名稱。 您不需要為事件中樞設定任何其他選項。

授與事件中樞的存取權

在進程可以將數據傳送至事件中樞之前,事件中樞需要允許存取的原則。 存取原則會產生包含授權資訊的 連接字串。

  1. 在事件中樞命名空間左側的導覽列中,選取 [事件中樞],其位於 [ 實體 ] 區段中。 然後,選取您剛才建立的事件中樞。

  2. 在左側的導覽列中,選取位於 [設定] 下的 [共用存取原則]。

    注意

    命名空間和事件中樞的 [共用存取原則] 選項位於 下方。 請確定您是在事件中樞的內容中工作,而不是命名空間。

  3. 在 [ 共用存取原則] 頁面上,選取 命令行上的 [+ 新增 ]。 然後輸入 Socialtwitter-access 以取得 [ 原則名稱 ],然後核取 [ 管理] 複選框。

  4. 選取 建立

  5. 部署原則之後,請從共用存取原則清單中選取原則。

  6. 尋找標示為 連線 ion 字串主鍵的方塊,然後選取 連接字串 旁的 [複製] 按鈕。

  7. 將 連接字串 貼到文字編輯器中。 當您進行一些小型編輯之後,下一節需要此 連接字串。

連接字串 看起來像這樣:

Endpoint=sb://EVENTHUBS-NAMESPACE.servicebus.windows.net/;SharedAccessKeyName=socialtwitter-access;SharedAccessKey=XXXXXXXXXXXXXXX;EntityPath=socialtwitter-eh

請注意,連接字串 包含多個索引鍵/值組,並以分號分隔:EndpointSharedAccessKeyNameSharedAccessKeyEntityPath

注意

為了安全性,範例中 連接字串 的部分已移除。

設定並啟動 Twitter 用戶端應用程式

用戶端應用程式會直接從 Twitter 取得推文事件。 若要這樣做,它需要呼叫 Twitter 串流 API 的許可權。 若要設定該許可權,您可以在 Twitter 中建立應用程式,以產生唯一認證(例如 OAuth 令牌)。 接著,您可以設定用戶端應用程式在進行 API 呼叫時使用這些認證。

建立 Twitter 應用程式

如果您還沒有可用於此操作指南的 Twitter 應用程式,您可以建立一個。 您必須已經有 Twitter 帳戶。

注意

Twitter 中建立應用程式並取得密鑰、秘密和令牌的確切程式可能會變更。 如果這些指示不符合您在 Twitter 網站上看到的內容,請參閱 Twitter 開發人員檔。

  1. 從網頁瀏覽器移至 [Twitter For Developers]、建立開發人員帳戶,然後選取 [ 建立應用程式]。 您可能會看到訊息,指出您需要申請 Twitter 開發人員帳戶。 您可以隨意這麼做,並在您的應用程式獲得核准之後,您應該會看到確認電子郵件。 可能需要數天的時間才能核准開發人員帳戶。

    Screenshot shows the Create an app button.

  2. 在 [ 建立應用程式 ] 頁面中,提供新應用程式的詳細數據,然後選取 [ 建立您的 Twitter 應用程式]。

    Screenshot shows the App details pane where you can enter values for your app.

  3. 在應用程式頁面中,選取 [金鑰和令牌] 索引標籤,然後複製取用者 API 金鑰和取用者 API 秘密金鑰的值。 此外,選取 [存取令牌] 和 [存取令牌密碼] 下的 [建立],以產生存取令牌。 複製存取令牌和存取令牌秘密的值

    儲存您為 Twitter 應用程式擷取的值。 您稍後需要這些值。

注意

Twitter 應用程式的金鑰和秘密可讓您存取您的 Twitter 帳戶。 將此資訊視為敏感性資訊,與您執行 Twitter 密碼相同。 例如,請勿將此資訊內嵌至您提供給其他人的應用程式。

設定客戶端應用程式

我們已建立用戶端應用程式,其會使用 Twitter 串流 API 連線到 Twitter 數據,以收集有關特定主題集的推文事件。

在應用程式執行之前,它需要來自您的特定資訊,例如 Twitter 金鑰和事件中樞 連接字串。

  1. 請確定您已下載 TwitterClientCore 應用程式,如必要條件中所述。

  2. 使用文字編輯器開啟 App.config 檔案。 對 元素進行下列變更 <appSettings>

    • 設定 oauth_consumer_key 為 Twitter 取用者金鑰 (API 金鑰)。
    • 設定 oauth_consumer_secret 為 Twitter 取用者秘密 (API 秘密金鑰)。
    • 設定 oauth_token 為 Twitter 存取令牌。
    • 設定 oauth_token_secret 為 Twitter 存取令牌秘密。
    • 設定EventHubNameConnectionString為 連接字串。
    • 設定 EventHubName 為事件中樞名稱(也就是實體路徑的值)。
  3. 開啟命令行,並流覽至 TwitterClientCore 應用程式所在的目錄。 使用 命令 dotnet build 來建置專案。 然後使用 命令 dotnet run 來執行應用程式。 應用程式會將推文傳送至事件中樞。

建立串流分析作業

既然推文事件是從 Twitter 即時串流,您可以設定串流分析作業,以即時分析這些事件。

  1. 在 Azure 入口網站 中,流覽至您的資源群組,然後選取 [+ 新增]。 然後搜尋 串流分析作業 ,然後選取 [ 建立]。

  2. 將作業 socialtwitter-sa-job 命名為 ,並指定訂用帳戶、資源群組和位置。

    最好將作業和事件中樞放在相同區域中以獲得最佳效能,因此您不需付費在區域之間傳輸數據。

  3. 選取 建立。 然後在部署完成時流覽至您的作業。

指定作業輸入

  1. 在您的串流分析作業中,從左側功能表的 [作業拓撲] 下選取 [輸入]。

  2. 選取 [+ 新增數據流輸入>事件中樞]。 使用下列資訊填寫[ 新增輸入 ] 表單:

    設定 建議的值 說明
    輸入別名 TwitterStream 輸入輸入的別名。
    訂用帳戶 <您的訂用帳戶> 選取您要使用的 Azure 訂用帳戶。
    事件中樞命名空間 asa-twitter-eventhub
    事件中樞名稱 socialtwitter-eh 選擇 [ 使用現有]。 然後選取您建立的事件中樞。
    事件壓縮類型 Gzip 數據壓縮類型。

    保留其餘的預設值,然後選取 [ 儲存]。

指定作業查詢

串流分析支援描述轉換的簡單宣告式查詢模型。 若要深入了解語言,請參閱 Azure 串流分析查詢語言參考。 本操作指南可協助您撰寫及測試 Twitter 數據的數個查詢。

若要比較主題之間的提及數目,您可以使用 輪轉視窗 每隔五秒取得主題的提及計數。

  1. 在作業 [概觀] 中,選取 [查詢] 方塊右上方附近的 [編輯查詢 ]。 Azure 會列出為作業設定的輸入和輸出,並可讓您建立查詢,以在傳送至輸出時轉換輸入數據流。

  2. 將查詢編輯器中的查詢變更為下列專案:

    SELECT *
    FROM TwitterStream
    
  3. 來自訊息的事件數據應該會出現在查詢下方的 [輸入預覽] 視窗中。 確定 [ 檢視 ] 設定為 JSON。 如果您沒有看到任何數據,請確定數據產生器正在將事件傳送至事件中樞,而且您已選取 Gzip 作為輸入的壓縮類型。

  4. 選取 [ 測試查詢 ],並注意查詢下方 [ 測試結果] 視窗中的結果。

  5. 將程式代碼編輯器中的查詢變更為下列專案,然後選取 [ 測試查詢]:

    SELECT System.Timestamp as Time, text
    FROM TwitterStream
    WHERE text LIKE '%Azure%'
    
  6. 此查詢會傳回包含關鍵詞 Azure 的所有推文。

建立輸出接收

您現在已定義事件串流、擷取事件的事件中樞輸入,以及透過資料流執行轉換的查詢。 最後一個步驟是定義作業的輸出接收。

在本操作指南中,您會將匯總的推文事件從作業查詢寫入至 Azure Blob 記憶體。 您也可以根據您的應用程式需求,將結果推送至 Azure SQL 資料庫、Azure 資料表記憶體、事件中樞或 Power BI。

指定作業輸出

  1. 在左側導覽功能表的 [ 作業拓撲 ] 區段下,選取 [ 輸出]。

  2. 在 [輸出] 頁面中,選取 [+ 新增] 和 [Blob 記憶體/Data Lake 儲存體 Gen2

    • 輸出別名:使用名稱 TwitterStream-Output
    • 匯入選項:選取訂用帳戶中的 [選取記憶體]。
    • 「儲存體帳戶」。 選取您的記憶體帳戶。
    • 容器。 選擇[ 新建 ],然後輸入 socialtwitter
  3. 選取 [儲存]。

啟動作業

指定作業輸入、查詢和輸出。 您已準備好開始串流分析作業。

  1. 請確定 TwitterClientCore 應用程式正在執行。

  2. 在作業概觀中,選取 [ 開始]。

  3. 在 [ 開始作業] 頁面上,針對 [作業輸出開始時間],選取 [立即 ],然後選取 [ 啟動]。

取得支援

如需進一步的協助,請嘗試 Azure 串流分析Microsoft Q&A 問題頁面。

下一步