SAS Text Analytics

SAS 文字分析 (16)

教學目標

初步了解 SAS 文字分析的基本應用概念。(此篇內容主要為課程心得筆記。)

重點概念

首先當我們需要進行文字分析時,主要會先將非結構化資料,透過自動化自然語言處理轉換為結構化資料,並且整合企業中既有的客戶結構化資料,以利透過統計演算法和機器學習演算法產生更準確的預測模型。而我們主要能夠透過手動設定 LITI 規則將能夠有效降低文字分析的誤分類率,SAS Visual Text Analytics 主要有提供透過專家判斷手動調整 LITI 規則,像是我們會透過 CLASSIFIER: XX 定義特定「字串」逗號用於「標準化」不同型態但相同意義的字或同義字,以及進行重要資訊的擷取,又可分為實體擷取和概念擷取,兩者差別在於概念主要是定義實體和實體之間的關聯,像是 CONCEPT_RULE: (RULE, “XX”, “_c{XX}”) 使用布林規則、距離規則,定義特定字串間的關聯 _c{XX} 用於定義需要回傳的字串 CONCEPT: XX 定義字串關聯 _w 指一段字串,或者像是 REGEX: 主要定義字之間的關聯,適用於日期、年份、電話號碼、… 等,以及 NO_BREAK: _c{XX} 主要定義不想出現的字串。

接著我們能夠在 SAS Viya 平台建置模型,我們先選擇「新增專案」,選擇類型為「文字分析」,選擇資料來源為 CAS 資料表格,按下「儲存」之後,就能夠建立專案,並且我們需要將資料來源中需要進行分析的欄位設定為「文字」。然後我們再點選「管線」,建立「文字分析: 資料存取」範本,這時新的管線中僅會有資料節點,再來我們僅需將自然語言處理節點中的文字剖析和特徵擷取節點中的主題加入至管線中,並且執行管線,我們就能夠透過演算法找出潛的主題和屬於主題的相關詞語和文章。

再來我們針對文字分析的結果需要如何進行優化,主要有三種方式,分別為增加語料庫、刪除不影響理解的贅字和調整主題演算法,像是我們針對不同產業進行文字分析時皆會有專有名詞和特定詞語,此時我們就會需要自訂語料庫,並且設定停用清單,其主要用於篩除大量使用,但是卻沒有任何價值的詞語。至於我們要如何判斷文件中的詞語是否重要,主要能夠透過詞語相關性 (TF-IDF) ,其重點概念主要為在特定文章出現很多次就會非常重要,並且我們在 SAS Visual Text Analytics 透過調整詞語密度和文件密度,就能夠縮小主題抓取範圍。

最後我們更能夠透過主題識別進行成分分析,最常見的主題模型就是 LDA,LDA 的全名為 Latent Dirichlet Allocation,其主要是表達文章概念的方式,文章是由不同主題以一定比例所組成,其中主題又由一組字詞以一定比例所組成。此時我們主要透過 LDA 主題模型將企業外部非結構化資料產生主題向量和企業內部結構化資料整合產生分析資料表 (ABT),以利透過決策樹、邏輯回歸和神經網路建立預測模型。

總結 SAS Visual Text Analytics 主要結合自然語言處理、機器學習演算法、與語言學規則,透過文字探勘出非結構化資料的價值,其特點主要有:

  1. 提供彈性整合語言學規則 (專家判斷)。
  2. 提供機器學習演算法 (深度學習)。
  3. 提供圖形化的網站操作介面。
  4. 提供超過 30 種語言的支援。
  5. 提供多種文字模型部署方式。

相關資源

SAS 文字分析 (15)

教學目標

初步了解 SAS 文字分析的基本概念。

重點概念

首先在 SAS Viya 平台中的文字分析處理程序,不論是自然語言處理、機器學習、LITI、…,主要有五大處理程序,分別為術語、概念、情緒、主題和分類,其中每個處理程序皆有對應的節點,像是術語主要是透過文字解析節點主要是從大量文字資料中自動進行提取,每個術語都有一個相關的角色,並且可以根據相似性和頻率識別和分類術語的拼寫錯誤,因為拼寫錯誤實際上是指另一個術語,所以它們在分析期間被視為同義詞,同義詞是一種提供使用者建立自定義術語,以及我們可以使用開始列表和停止列表來控制在文字解析期間保留或刪除哪些術語,解析結果還控制在主題發現中使用的術語,開始列表是一個資料集,其中包含要包含在解析結果中的術語列表,如果使用開始列表,則只有該列表中包含的術語才會出現在解析結果中,而停止列表是包含要從解析結果中排除的術語列表的資料集,我們可以使用停止列表來排除包含很少資訊或與文字探勘任務無關的術語。

接著概念節點主要是對於分析上下文中的資訊和提取有用資訊,也就是能夠讓我們使用語義屬性,實體類型,事實或關係,而我們主要使用寫入規則識別非常重要的概念,其主要是使用對於文字資訊的語言解釋 (Language Interpretation for Textual Information, LITI) 語法撰寫規則來提取文字。更進一步建立自定義概念,預定義概念主要是編寫規則的概念,至於概念擷取主要有三個步驟,分別為:

  1. 輸入文字內容:像是社群資料、新聞、電子郵件、…等。
  2. 解析概念分類內容:對應資訊和要提取文件檔的概念。
  3. 輸出結果:進行索引或輸入現有系統用於搜索和分析。

至於情緒節點要是識別在文件檔中表達的語氣或態度是正面、負面或中立的過程,其主要使用一組專有規則來識別和分析暗示情緒的術語,短語和字元串,然後根據該分析為每個文件檔分配情緒分數。

再來主題節點主要針對文件檔中出現的重要術語進行自然分組,其會自動生成主題,並且將其分配給文件檔,單個文件檔可以包含多個主題,主題的預設名稱是主題中經常出現的前五個術語,這些術語根據其權重按照降序排序。此外可以按照主題對最相關的文件檔進行排名,主題可以進一步合併或拆分,並且可以修改衍生主題以建立自定義主題。

最後分類節點主要是將具有共同特徵的一組文件檔識別為一個群組,我們主要可以使用將主題增加為類別,並且指定類別變數,當然我們也可以編輯為類別變數,以利透過自動產生的規則增加為類別主題,以及為自定義類別編寫規則。

相關資源

SAS 文字分析 (14)

教學目標

初步了解 SAS 文字分析的基本概念。

重點概念

首先 SAS Visual Text Analytics 主要是一個基於網站的文字分析應用程式,其使用上下文為識別和分類關鍵文字資料的挑戰提供全面的解決方案,我們主要使用以下分析節點基於訓練文件檔來建立和自動化模型,分別為:

  1. 概念節點 (Concepts):主要提取預定義的概念或建立可在文件檔或文件檔集合中發現的其他自定義概念。
  2. 文字解析節點 (Text Parsing):主要查找文件檔集合中的所有術語,主要使用為所選語言提供的預設停止列表,以利排除停止詞。
  3. 主題節點 (Topics):主要將集合中的類似文件檔分組為相關主題,同時自動主題識別能夠將集合中每個文檔進行主題分類。
  4. 分類節點 (Categories):主要根據文件檔內容進行分類,我們能夠建立符合組織利益的新分類,或者增加已發現的主題作為類別。
  5. 情緒節點 (Sentiment):主要透過情緒評分確定文件檔是表示正面、中性或負面。

接著 SAS Visual Text Analytics 結合了 SAS Text Miner 的視覺化流程和 SAS Contextual Analysis 中基於規則的分類和概念提取語言方法,以及每個元件的文件檔等級評分都集中在一個使用者界面中。同時我們可以識別文件檔集合中的關鍵文字資料,對於這些資料進行分類,建立概念和分類模型,以及刪除無意義的文字資料,在預設情況下,我們主要從主題分析中排除提供很少或沒有資訊的單詞,也就是停用詞,停用詞在停止列表。

再來 SAS Visual Text Analytics 主要是使用自然語言處理 (Natural Language Processing, NLP) 解析和處理文字資訊,而自然語言處理的大部分演算法皆內建在 SAS Visual Text Analytics 中,因此使用者能夠透過參數設定或使用機器學習工具學習適當的設定,以利讓使用者可以專注於文字分析的任務。

最後 SAS Visual Text Analytics 主要功能和優勢有以下幾點,分別為:

  1. 自然語言處理:增強文字解析以增加語言功能和展開文檔集合術語表,支援主題推導。
  2. 自動提取特徵:發現主題和展示每個主題的相關術語和文件檔。
  3. 支援多種語言:主要支援全球性一項業務超過三十種世界語言。
  4. 情緒分析:主要透過揭示趨勢來支援商業決策的觀點。
  5. 上下文提取:主要從文件檔中提取特定資訊的專業知識。
  6. 靈活部署:最大化文字資料的價值,並且加速透過文字資料進行決策。
  7. 促進多使用者環境中的協作:加強協作和開放分析生態系統中的資訊分享。

相關資源

SAS 文字分析 (13)

教學目標

初步了解 SAS 文字分析的基本概念。

重點概念

首先在許多行業的商業環境中文字分析的應用非常受歡迎,像是我們能夠使用社交媒體的文字資料應用於預防犯罪和詐欺偵測,其中文字分析包含用於從非結構化資料中獲取洞察力的工具和技術。而典型的資料探勘預測問題主要是以數字形式處理資料,但是文字資料通常僅以可讀的文件檔形式提供,其內容可以是電子郵件、客戶評論、公司報告、新聞文章、網頁、…等。而文字探勘會先嘗試獲得文件檔的定量表示,一旦文字被轉換成一組數字,足夠獲取文字資料中的模式,任何傳統的統計或預測模型或資料探勘演算法皆可以用於產生洞察或預測建模。

接著常見的文字探勘專案主要涉及以下任務:

  1. 資料收集:任何文字探勘研究專案的第一步是收集分析所需的文字資料。
  2. 文字解析:解析文字主要使用自然語言處理從文件檔中提取、清理和建立單詞詞典,其中包括識別句子,確定詞性和詞幹,以及涉及解析提取的單詞以識別實體、刪除停用詞和拼寫檢查,此外從文檔中提取單詞之外,還檢索與文本相關聯的變數。
  3. 文字過濾:過濾文字主要在數千個文件檔的語料庫中,可能會有許多與區分文件檔或總結文件檔無關的術語,此時我們必須手動瀏覽術語才能消除不相關的術語,這通常是所有文字探勘步驟中最耗時和主觀的任務之一,因為其需要相當的相關主題或領域專業知識。
  4. 文字轉換:轉換文字主要使用基於線性代數的方法處理文字的數字表示,像是潛在語義分析、潛在語義索引和向量空間模型,其中矩陣的維度由文件檔數量和集合中的術語數量決定,該步驟主要使用奇異值分解逐個文件檔矩陣的降維。
  5. 文字探勘:探勘文字主要涉及應用傳統的資料探勘演算法,像是分群、分類、關聯分析和連接分析,此外文字探勘是一個迭代過程,也就是文字過濾 -> 文字轉換 -> 文字探勘,其涉及使用不同的設定進行重複分析,包括或排除術語以獲得更好的結果。

再來文字探勘專案的資料收集步驟很大程度取決於業務問題,這涉及回答以下簡單問題:

  1. 該專案需要哪些資料?電子郵件、客戶評論、公司報告、新聞文章、網頁、…等。
  2. 資料在哪裡?資料庫、資料倉儲、網頁、…等。
  3. 資料如何提供? PDF 檔案,XML 檔案,Word 檔案,Excel 檔案,網頁、…等。
  4. 資料何時應收集 (非靜態資料)? 在特定事件之前或之後,來自維基百科或部落格的資料需經常更新。

當確定了解決當前問題所需的資料,下一個挑戰就是收集資料,並且將其轉換為 SAS 文字分析能夠進行處理的格式,此時我們很可能在專案中遇到以下任何一種情況:

  1. 資料隨時可用作 SAS 資料集。
  2. 資料在資料庫中以檔案提供。
  3. 需要從網際網路上收集資料。

請注意在 SAS 中進行文字探勘的過程中要求資料作為 SAS 資料集提供,並不代表著來源資料必須以 SAS 資料集的格式存在,若是 SAS 資料集,則我們可以直接建立資料來源進行文字探勘,若不是 SAS 資料集,則來源資料必須轉換為 SAS 資料集,有多種方法可以使用 SAS 資料存取功能從資料庫中可用的資料建立 SAS 資料集,我們可以使用 SAS Enterprise Guide 導入資料或 SAS Enterprise Miner 中的檔案匯入節點輕鬆將常用格式檔案件,像是 CSV 檔案或 Excel 檔案,以及 SAS Text Miner 更能夠從目錄或網頁上的文字檔案動態建立 SAS 資料集,主要是是使用文字匯入節點。該節點需要包含所有來源檔案、目標目錄的來源目錄以儲存所有已轉換的檔案,SAS Text Miner 會瀏覽來源目錄,從該目錄中的檔案中提取文字,並在目標目錄中創建純文字檔案,文字轉換中會省略 SAS Text Miner 無法讀取的任何形式的源文件,以及若每個檔案中的字符數超過 32,000,則檔案將被截斷。此外若從網頁收集來源資料,則該節點將在提取過程之前對網站進行爬蟲,檢索文件並將其放入來源目錄中。

最後在許多情況下,我們可能需要將這些不同形式的文字資料組合起來進行文字探勘,此時 SAS Enterprise Miner 和 SAS Text Miner 具有易於使用的功能,可以從這些檔案導入資料,並且準備 SAS 資料集,此外 SAS 中強大的網頁爬蟲功能可透過文字匯入節點使用,從而可以更輕鬆地檢索網頁上可用的資料,而 SAS中的每個資料導入任務都可以透過使用者界面或撰寫 SAS 程式碼執行,同時我們更能夠使用 Perl 的正則表達式可以獲得更多文字處理功能,以利分析師能夠透過資料提取,合併和轉換獲取無數功能,這些功能通常在開始文字探勘分析之前執行。

相關資源

SAS 文字分析 (12)

教學目標

初步了解 SAS 文字分析的基本概念。(此篇主要為準備考試的心得筆記)

重點概念

首先透過文字主題節點我們可以根據已發現和使用者定義的主題自動關聯術語和文件檔,從而探索文件檔集合,主題是描述和表徵主題或想法的術語集合。該方法與群集不同,因為群集會將每個文檔分配給唯一的群組,但是文字主題節點為每個主題的每個文檔和術語分配一個分數,然後使用門檻值來確定關聯是否足夠強大以考慮文件檔或術語是否屬於該主題。因此文件檔和術語可以屬於多個主題,也可以不屬於任何主題,我們請求的主題數應與文件檔集的大小直接相關。請注意文字主題節點必須以文字解析節點開頭,若它前面沒有文本過濾節點,則文字主題節點使用 Log 頻率權重對術語進行加權,若存在分類目標則使用 Mutual Information 術語權重對術語進行加權,否則使用 Entropy 術語權重對術語進行加權。

接著探索文字主題過程中最耗費記憶體的任務是計算逐個文檔頻率矩陣的奇異值分解。當記憶體資源有限時,文字主題節點可能會使用文件檔的簡單隨機樣本,而不是完整的集合,文字主題節點執行此操作以嘗試成功運行節點,僅當節點在嘗試計算未經取樣的奇異值分解期間遇到記憶體故障時才會進行取樣。此外由於取樣通常在文件檔集合非常大時發生,因此通常不會對建模結果產生不利影響,發生取樣時,確切取決於許多參數,包括集合的大小,執行系統的平台以及可用的記憶體。

再來我們您可以在文字主題節點中使用使用者定義的主題列表,使用者定義的主題列表使我們可以定義自己感興趣的主題,並且提供了一個使用者主題列表的範例提供分析應用。使用者定義的主題資料集具有所需的格式,我們必須包含主題、術語、角色和權重等變數。主題和權重變數必須具有資料集中所有觀測值的非遺漏值,主題包含每個主題的唯一標識符。術語包含在由主題的值標識的主題中使用的術語,若此值為空,則將為該主題分配與給定角色匹配的所有術語,角色可以是詞性,實體分類或價值名詞組。如果此值為空,那麼只要術語出現在任何角色中,就會認為它在主題中,角色中的值不區分大小寫,權重包含術語和角色對的權重,其給予最重要的術語和角色對權重 1,給予不太重要的術語和角色對小於 1 的正權重,以反映相對重要性。請注意權重為 0 的術語將被省略,可以在同一主題中使用多個術語,要使用多個術語定義主題,請包含所有具有相同主題值的多個觀察,每個觀察對應於不同的術語。

最後透過互動式主題查看器,我們可以在執行文字主題節點時進行優化,也就是自動或從使用者定義的主題產生成主題。當關閉互動式主題查看器時,可以儲存對主題所做的任何更改,對於主題名稱,截止值或任何主題權重的任何更改都將導致該主題成為使用者主題,並且儲存在使用者主題屬性的資料集中。此外若要將多個主題合併為一個主題,請為要合併的所有主題輸入相同的主題名稱,這些主題最初仍會顯示為不同的主題,但是當您重新運行節點時,它們將合併為一個,所有主題都包含所有術語,對於主題之間的所有共同術語,權重將是每個主題的平均值。

相關資源