分享方式:


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

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

社交媒體分析工具可協助組織了解熱門話題。 熱門話題就是在社交媒體上有大量文章的話題及意見。 情感分析 (亦稱為意見挖掘) 會使用社交媒體分析工具來判斷使用者對產品或概念的態度。

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

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

擁有新聞媒體網站的公司提供與讀者有直接關聯的網站內容,試圖打敗競爭對手。 該公司透過對 X 數據進行即時情感分析,對與讀者相關的主題使用社交媒體分析。

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

必要條件

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

  • 如果您沒有 Azure 訂閱,請建立免費帳戶

  • X 帳戶。

  • TwitterClientCore 應用程式,它會讀取 X 摘要。 若要取得此應用程式,請下載 TwitterClientCore

  • 安裝 .NET Core CLI version 2.1.0 版。

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

此圖顯示用來建置解決方案的不同服務與應用程式片段。

建立串流輸入的事件中樞

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

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

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

授權存取事件中樞

事件中樞需要有原則以允許存取權,流程才能將資料傳送到事件中樞。 存取原則會產生包含授權資訊的連接字串。

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

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

    注意

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

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

  4. 選取 建立

  5. 部署原則後,在共用存取原則清單中選取此原則。

  6. 找出標示為 [連接字串主要索引鍵] 的方塊,選取連接字串旁邊的複製按鈕。

  7. 將連接字串貼到文字編輯器。 稍微編輯一下此連接字串,下一節需要用到它。

連接字串如下所示:

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

請注意,連接字串包含多個機碼值組,以分號分隔:EndpointSharedAccessKeyNameSharedAccessKeyEntityPath

注意

基於安全考量,我們已移除範例中連接字串的某些部分。

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

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

建立 X 應用程式

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

注意

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

  1. 從網頁瀏覽器移至 [X 開發人員]、建立開發人員帳戶,然後選取 [ 建立應用程式]。 您可能會看到訊息,指出您需要申請 X 開發人員帳戶。 您可以隨意執行此動作,在您的應用程式獲得核准之後,您應該會看到一封確認電子郵件。 核准開發人員帳戶可能需要幾天的時間。

    顯示 [建立應用程式] 按鈕的螢幕快照。

  2. 在 [建立應用程式] 頁面上,提供新應用程式的詳細資料,然後選取 [建立 Twitter 應用程式]

    此螢幕快照顯示 [應用程式詳細資料] 窗格,您可以在其中輸入應用程式的值。

  3. 在應用程式頁面中,選取 [金鑰和權杖] 索引標籤,並複製 [取用者 API 金鑰] 和 [取用者 API 秘密金鑰] 的值。 此外,選取 [存取權杖和存取權杖密碼] 底下的 [建立] 來產生存取權杖。 複製 [存取權杖] 和 [存取權杖祕密] 的值。

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

注意

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

設定用戶端應用程式

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

在應用程式執行之前,您需要提供一些資訊,例如 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 命令執行應用程式。 應用程式會將推文傳送至事件中樞。

建立串流分析作業

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

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

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

    最好將作業和事件中樞放在相同的區域,以達到最佳效能,在區域之間傳送資料也不需要付費。

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

指定工作輸入

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

  2. 選取 [+ 新增串流輸入]>[事件中樞]。 在 [新輸入] 表單中填寫下列資訊︰

    設定 建議的值 說明
    輸入別名 TwitterStream 指定輸入的別名。
    訂用帳戶 <您的訂用帳戶> 選取您要使用的 Azure 訂用帳戶。
    事件中樞命名空間 asa-x-eventhub
    事件中樞名稱 socialx-eh 選擇 [使用現有項目]。 然後選取您剛才建立的事件中樞。
    事件壓縮類型 Gzip 資料壓縮類型。

    保留其餘預設值並選取 [儲存]

指定作業查詢

串流分析支援說明轉換的簡單、宣告式查詢模型。 若要深入了解語言,請參閱 Azure Stream Analytics 查詢語言參考。 本操作指南可協助您撰寫及測試數個透過 X 資料的查詢。

為了比較提及不同話題的次數,您可以使用輪轉視窗,依話題每隔五秒取得一次提及次數。

  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 Database、Azure 資料表儲存體、事件中樞或 Power BI。

指定作業輸出

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

  2. 在 [輸出] 頁面上,選取 [+ 新增] 及 [Blob 儲存體/Data Lake Storage Gen2]

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

啟動工作

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

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

  2. 在 [作業總覽] 中,選取 [開始]

  3. 在 [啟動作業] 頁面的 [作業輸出開始時間] 中,選取 [現在],然後選取 [啟動]

取得支援

如需進一步的協助,請嘗試 Azure 串流分析的 Microsoft 問與答頁面

下一步