Leo Yeh's Blog

SAS 文字分析 (17)

教學目標

初步了解 SAS Visual Text Analytics 產品進行文字資料分析應用的基本概念。

重點概念

首先文字是人工產生最大的資料來源,其每天以指數倍數成長,像是發送電子郵件、在社群媒體上發貼文、與聊天機器人或數位助理進行互動、…等文字記錄,而當我們透過網際網路不斷傳輸和儲存這些資訊時,其中越來越多的知識、觀點和經驗將會被擷取為非結構化的文字資料,此時企業要如何透過文字資料進行分析,以利帶來業務轉型或創新價值。所謂文字分析主要是針對文字資料手動審查和分類該內容,以利企業組織擴大閱讀,以及用於量化文字資料隱藏在其中所代表的人類行為模式,同時文字分析為非結構化資料提供了結構,因此能夠進行分析。至於自然語言處理 (Natural Language Processing,NLP) 是文字分析過程的基礎,其主要執行語言分析,以利幫助機器閱讀文字資料,更進一步幫助機器識別和理解語言的結構,同時透過與自然語言相關的機器學習演算法自動提取關鍵特徵和關係概念。此外當企業使用非結構化文字資料作為最大的資料來源,這時文字分析功能將會是企業部署人工智慧應用的核心關鍵,文字分析的結果將能應用於各種業務情境,像是快篩金融詐欺、追蹤服務品質、量化客戶回饋、改善運營流程、增強預測模型準確性、… 等,更多資訊請參考官方白皮書

接著在 SAS Viya 分析平台中的 SAS Visual Text Analytics (VTA) 產品將能夠透過自然語言處理找出重要的資訊,並且整合機器學習演算法和語言規則的方法,加強文字分析的結果。若我們透過 SAS Visual Text Analytics (VTA) 產品進行文字分析時,則主要有四個階段,分別為:

  1. 文字資料準備:主要透過自然語言處理技術將文字資料自動分為預先定義的概念,像是日期、時間、測量、金錢、組織、百分比、人員、位置… 等。
  2. 文字資料剖析:主要透過自然語言處理技術將文字資料自動分為段落、句子、詞語、…等有意義的元素。
  3. 文字主題指派:主要透過特徵擷取技術將文字資料自動根據相關術語指派為相關主題。
  4. 文字分類評估:主要透過文字建模技術將文字資料自動依主題進行文字分類為相關類別。

此外透過 SAS Visual Text Analytics (VTA) 產品所提供的視覺化網站操作界面將能夠以人工的方式自訂類別,以利企業組織發現文字資料中趨勢和模式,同時 SAS Viya 平台支持整個分析生命週期,從資料準備到探索分析,再將模型投入正式以實現價值,透過協同合作的分析平台中建立,管理和共享內容,以及基於開放式的架構,企業組織中的使用者將能夠選擇使用開發源始碼 Python 和 R 進行整合應用,更多資訊請參考官方網站

再來我們透過 SAS Model Studio 工具建立文字分析專案,預設會產生「資料節點」->「概念節點」->「文字剖析節點」->「情緒節點」->「主題節點」->「類別節點」的管線,然而一開始必須先指定資料中一個資料欄位為文字角色,再切換至管線頁籤執行管線,當管線成功執行之後,我們將能在類別節點上按右鍵選擇「結果」來查看「類別」節點的結果,結果主要包括「摘要」頁籤和「輸出資料」頁籤,在摘要頁籤中主要顯示的元件數取決於是否存在自動產生的類別,如果在管線執行期間沒有建立類別,則僅顯示「類別評分程式碼」,此時我們需要將主題節點的特定主題增加為類別之後,再重新執行管理,當建立類別之後,將會顯示「對自動產生類別的診斷計數」和「對自動產生類別的診斷度量」圖表,其中「對自動產生類別的診斷計數」圖表主要會按照類別顯示真陽性,偽陰性和偽陽性的文件數量,「對自動產生類別的診斷度量」圖表主要會按照類別顯示 F 量值、召回和精準度,至於計數和度量的定義,請參考下表。

類型 名稱 說明
計數 真陽性 (True Positives,TP) 主要為我們想要檢索所請求的資訊。
計數 偽陰性 (False Positives,FP) 主要為我們期望避免檢索與請求無關的資訊。
計數 偽陽性 (False Negatives,FN) 主要為我們期望避免遺漏與請求相關的資訊。
計數 真陰性 (True Negatives,TN) 主要為我們不想要檢索不相關的資訊。
度量 誤分類率 (Misclassification) 主要為錯誤分類的分數,公式為 (FP + FN) / (TP + TN + FP + FN)。
度量 精度度 (Precision) 主要為檢索到的相關文檔的分數,公式為 TP / (TP + FP)。
度量 召回 (Recall) 主要為檢索到的相關文件的分數,公式為 TP / (TP + FN)。
度量 F 量值 (F-Measure) 主要為精度和召回的調和平均數,公式為 (2 × Precision × Recall) / (Precision + Recall)。

最後 SAS Visual Text Analytics (VTA) 產品除了有提供自然語言處理的功能之外,更有提供專有的規則編寫語法,稱為 LITI,全名為 Language Interpretation for Textual Information,以利幫助我們從非結構化文字資料中提取所需的資訊,這種組合主要包括規則建立工具和自動規則產生等支援功能,並且應用了統計機器學習所提供的功能,同時基於規則的方法,以提高提取的透明度。因此我們主要將 LITI 語法用於撰寫概念規則,然而有許多不同類型的規則可用於提取概念,並且我們能夠在每個自訂概念中指定多個規則,至於有哪些常見的規則類型,請參考下表。

規則類型 描述和基本語法
CLASSIFIER 主要識別文本中匹配的單個術語或字串,基本語法為 CLASSIFIER:string<,information>。
CONCEPT 主要參考其它概念來識別相關資訊,基本語法為 CONCEPT:argument-1
C_CONCEPT 主要返回僅在指定上下文中發生的匹配資訊,基本語法為 C_CONCEPT:_c{argument}
CONCEPT_RULE 主要使用布林運算元來確定匹配項目,基本語法為 CONCEPT_RULE:(
NO_BREAK 主要透過確保僅在找到整個字符串時發生匹配來防止部分匹配,基本語法為 NO_BREAK:_c{argument}。
REGEX 主要透過正規表達式來識別文本中匹配的系列文字類型的資訊模式,基本語法為 REGEX:regular-expression。
REMOVE_ITEM 主要當一個單詞是多個概念的唯一識別時確保正確匹配,基本語法為 REMOVE_ITEM:(ALIGNED, “_c{concept name}”,<”argument”>)。

當然我們除了能夠新增自訂概念的規則,更能夠新增類別的規則,然而類別規則僅解析為「True」或「False」布林值,當為「True」時的結果是匹配,反之當為「False」時的結果是不匹配。類別規則比 LITI 規則更易於編寫,至於有哪些常見用於撰寫類別規則的布林運算子類型,請參考下表。

運算子類型 說明
AND 如果文字資料中出現所有參數,則匹配。
OR 如果文檔中至少出現一個參數,則匹配。
NOT 如果文字資料中沒有出現參數,則匹配。
ORD 如果所有參數都按照規則中指定的順序發生,則匹配。
SENT 如果所有參數以任何順序出現在同一個句子中,則匹配。
PAR 如果所有參數都出現在單個段落中,則匹配。
DIST_n 如果所有參數都出現在彼此的 n 個 Token 內,而不管它們的順序如何,則匹配。

此外更多有關自訂概念規則和類別規則的最佳實務,建議請參考官方出版的「SAS Text Analytics for Business Applications」書籍。

總結我們透過 SAS Visual Text Analytics (VTA) 產品以簡單手動和複雜自動的方式針對文字資料進行分析,以及針對文字資料自動識別概念、剖析文字、提取主題和匹配類別。

相關資源

⬅️ Go back