藉助亞馬遜S3和RapidMiner將機器學習應用到文字挖掘

skyme發表於2015-07-15

本挖掘典型地運用了機器學習技術,例如聚類,分類,關聯規則,和預測建模。這些技術揭示潛在內容中的意義和關係。文字發掘應用於諸如競爭情報,生命科學,客戶呼聲,媒體和出版,法律和稅收,法律實施,情感分析和趨勢識別。

在本篇部落格帖中,你將會學習到如何將機器學習技術應用到文字挖掘中。我將會向你展示如何使用RapidMiner(一款流行的預測分析開源工具)和亞馬遜S3業務來建立一個檔案挖掘應用。亞馬遜S3業務是一項易用的儲存服務,可使組織在網頁上的任何地方儲存和檢索任意數量的資料。

掘模型產生的結果可以得到持續的推導並應用於解決特定問題

為什麼使用文字挖掘技術?

文字挖掘技術幫助你在大量的肉眼不可見的文字內容中隱藏的文字模式和關係,帶來了新的商機和程式的改進。使用文字挖掘技術可以節省你的時間和資源,因為文字挖掘程式可以實現自動化,文字挖掘模型產生的結果可以得到持續的推導並應用於解決特定問題。

這些技術可以幫助你:

  • 從大量的文字內容中提取關鍵概念,文字模式和關係。

  • 以主題(例如旅行和娛樂)為依據,在文字內容中識別各種趨勢,以便理解使用者情感。

  • 從文件中概括內容,從語義上理解潛在內容。

  • 索引和搜尋文字以便在預測分析中使用。

正如你所看到的,除了事務性內容外,如果你不分析文字內容,你可能錯失重大的機遇.

以前文字挖掘所面臨的障礙

在過去,從大量的文字中提取有價值的透徹分析通常很難。提取有價值的透徹分析需要技藝精湛的IT人才來執行復雜的程式設計和建模任務。另外,在維持效能和創新週期所要求的速度和靈敏度的條件下,所具有的基礎設施簡直無法滿足處理大量非結構化文字的要求。工具與潛在基礎設施的整合則是面臨的另一個挑戰。這通常導致資料和工具從一個環境遷移到另一個環境。此外,商業使用者發現很難解讀這些結果。易於挖掘和分析的結構化資料變成大多數資料分析任務的主要資料來源。結果是大量的文字內容實際上未被使用。

文字分析的新近發展

資料和雲基礎設施已經取得了巨大的進步。這包括機器學習和文字挖掘領域可用的各種工具和技術。伴隨著這些發展,速度,創新和可擴充套件性現在變成了可能。在組織使用分析學方面也已經出現了根本性的轉變:不是應對過去的趨勢,組織通過根據當前事件預測未來趨勢而變得主動。多虧了AWS提供的各種雲基礎設施服務和諸如RapidMiner,組織不再需要先進的程式設計技術就可以在可擴充套件和持久的環境中快速地分析文字內容了。RapidMiner工具綜合了機器學習,文字挖掘和視覺化能力。

文字挖掘流程

大多數文字挖掘遵循以下的典型流程:

1.識別和提取待分析的文件。應用結構化的,統計的和語言技術(通常是共同應用)來識別,標識和提取各種成分,例如實體,概念和關係。

2.應用統計學的模式匹配和相似性技術來將文件分類並根據特定的分組或分類組織提取出的特徵。潛在的非結構化資料轉化為易於分析的結構化資料。分類過程幫助識別含義和各種關係。

3.評估模型的效能。

4.向終端使用者呈現分析結果。

下面的流程圖說明了這一流程。

image

典型的文字挖掘流程圖

第一行:識別/提取待分析的文字/文件 應用統計的/語言的/結構化技術來分析 推斷含義/識別內容/應用詞類分析法

第二行:提取概念和模式 應用統計的/機器學習/模式匹配技術 將文件分類,根據分類學組織文件

第三行:識別文字含義和大量文字中各種關係 評估模型效能,檢查查準率/查全率/準確性/相關性

向終端使用者呈現分析結果

機器學習在文字挖掘中的作用

典型地,文字挖掘技術根據因子(例如術語頻率和分佈)的統計分析建立一組重要的單詞和句子。根據重要性,得分最高的單詞和句子典型地表明潛在的觀點,感情或一般主題。

作為過程的一部分,現代工具典型地構建一個文件術語矩陣(DTM),使用加權方法,如詞頻-逆文件頻率法(TF-IDF)。這些工具提取並將潛在資訊,如標準特徵,關鍵詞頻率,文件和文字列表特徵,以表格的形式儲存在資料庫中。可以查詢這些表格進行係數分析和處理。這些步驟是將機器學習技術應用到文字內容的前導。

文字分析學典型地運用機器學習技術,如聚類,分類,關聯規則和預測建模來識別潛在內容中的含義和各種關係。然後使用各種方法處理非機構化資料來源中包含的潛在文字。非結構化資料來源包括自然語言處理(NLP),語法分析,標記化(明顯成分的識別,如單詞和N個字尾),詞幹提取(將單詞變體縮減為詞幹),術語歸約(使用同義詞和相似度量的小組類術語)和詞類標記。這些資料來源幫助識別事實和關係。

文字分析另一個關鍵的方面涉及組織和構建潛在的文字內容。典型的技術包括聚類,編目,分類和歸類。很多工具使用的典型的分類方法包括樸素貝葉斯,支援向量機和K最近鄰分類演算法。

下面的表格包含了常用的文字挖掘技術,包括機器學習和每一種技術的考慮因素。

文字挖掘技術

關鍵的考慮因素

image

image

image

一旦使用以上的技術對文字進行了處理,分組和分析,評價結果就變得很重要。評估的目的是確定你是否已經找到了最相關的材料或是否你丟失了一些重要術語。你將會使用查準率和查全率和評估結果。

使用AWS服務和RapidMiner進行情感分析

現在讓我們看一下你如何使用AWS服務和RapidMiner進行情感分析,這是文字挖掘一個很普遍的應用案例。在情感分析中,你識別積極和消極的觀點,情緒和評價,經常使用機器學習技術分析文字內容。使用AWS和RapidMiner,你不用將非結構化資料遷移到另一個環境中就可以使用情感分析這樣的技術對儲存在S3中的資料直接進行分析。

如下所示,你可以使用RapidMiner建立文字挖掘流程與S3進行整合。S3上的一個物件可能是任何一種檔案,也可能是任何一種格式,如文字檔案,招聘,或視訊。這使得S3在儲存文字挖掘和先進的分析學所需的非結構化資料方面變得非常有用。

image

亞馬遜S3服務與其他的亞馬遜大資料服務,如Amazon Redshift,Amazon RDS,AmazonDynamoDB, Amazon Kinesis和Amazon EMR,是整合的。這就產生了在AWS中使用RapidMiner開發文字挖掘模型的有趣場景。例如,你可以使用S3服務來儲存從這些亞馬遜業務中提取的資料,然後使用RapidMiner對這些資料快速構建一個文字挖掘模型。你可以將模型輸出的結果儲存到你選擇的S3桶和區域中並將這些結果和更廣泛的終端使用者社群分享。

下面的舉例使用加利福尼亞大學爾灣分校主辦的SMS Spam collection(垃圾簡訊收集)資料組。SMS Spam collection是由一組為手機垃圾的研究而收集的標籤訊息組成的。這個資料組綜合了垃圾和非垃圾簡訊(標記為ham)。這一資料組每行一條簡訊,使用UTF-8編碼,以製表符為分隔,構成一個文字檔案。

視訊演示

下面的視訊樣本將會向你展示如何使用RapidMiner和S3進行文字挖掘。注意:視訊樣本沒有聲音。

開始前,請:

1.下載並安裝RapidMiner軟體和可從RapidMiner Marketplace獲取的RapidMiner Text Processing Extension。你可以將RapidMiner安裝在你的本地電腦上。如果你當前的電腦配置不能提供足夠的容量,也可以將RapidMiner安裝在亞馬遜EC2例項上。

2.使用你的AWS證書在RapidMiner配置S3連線資訊。要使用S3服務,你需要有一個AWS賬戶。

3.將文字挖掘案例研究所需輸入資料組上傳到S3桶中。

從S3中匯入和讀取資料到RapidMiner

下面的視訊將會向你展示如何使用你上傳到S3桶中的資料,S3服務和RapidMiner建立一個文字挖掘應用。記住:你必須匯入使用UTF-8編碼的檔案,確定製表符為分隔符以便以正確的格式來處理檔案。

視訊:從S3中匯入和讀取資料到RapidMiner

https://s3.amazonaws.com/awsbigdatablog/1-AmazonS3-RapidMiner-Text-Mining-Video.mp4

使用RapidMiner’s Validation運算子

當對不可見的資料執行模型時,你看到的準確性可能低於預期。這是可能的,因為我們使用的方法可能已經學習了它所看到的資料,但是從未針對不可見的資料對該方法進行測試。為了解決這一問題,你可以使用下面的視訊中所示的RapidMiner Validation運算子。

視訊:使用RapidMiner’s Validation運算子

http://s3.amazonaws.com/awsbigdatablog/2-AmazonS3-RapidMiner-Text-Mining-Video.mp4

在RapidMiner中應用Store運算子

為了將已經學習到的模型應用到新資料,你必須將模型和單詞表儲存到RapidMiner倉庫。你必須儲存單詞表是因為當你預測一個新訊息是垃圾簡訊還是非垃圾簡訊的概率時,你不得不使用原來的過程中使用的相同的屬性或單詞。因此,你需要相同的單詞表和模型,需要以你處理正在學習的資料時使用的方式來處理新資料。下面的視訊展示了這是如何做到的。

視訊:在RapidMiner中應用Store運算子

https://s3.amazonaws.com/awsbigdatablog/3-AmazonS3-RapidMiner-Text-Mining-Video.mp4

將不可見的資料應用到RapidMiner模型

下面的視訊展示瞭如何應用你使用Retrieve運算子為新的不可見資料構建的模型來預測新訊息是非垃圾簡訊還是垃圾簡訊。

視訊:將不可見的資料應用到RapidMiner模型

https://s3.amazonaws.com/awsbigdatablog/4-AmazonS3-RapidMiner-Text-Mining-Video.mp4

使用Write S3運算子儲存結果

下面的視訊展示瞭如何在RapidMiner中使用Write S3運算子將輸出結果儲存到S3桶中,該桶已經在前面的概述中被設定為RapidMiner的一個連線。你可以從特定的S3桶中將輸出結果下載到本地,使用文字編輯器檢視這些結果。

視訊:使用Write S3運算子儲存結果

https://s3.amazonaws.com/awsbigdatablog/5-AmazonS3-RapidMiner-Text-Mining-Video.mp4

相關文章