簡要的談談文本數據挖掘的一般步驟


   

     數據挖掘領域一直都非常的火。現在炒的非常熱的大數據,其實也是數據挖掘的一個應用而已,不管工程師用的是Hadoop還是其他平台,其實都是對一堆的數據進行分析,計算,然后得到我們希望得到的結果。所以我們可以知道,文本數據挖掘的必要性是因為信息技術,特別是網絡的頻繁使用,自媒體的越來越多,從大海中找到同一類,和用戶期待的一類信息越來越重要,而人工完成幾乎不可能,所以,文本挖掘就應運而生。

 

     數據挖掘中的文本挖掘與我們的生活息息相關,比如說,百度上的新聞,當然,他少不了編輯人員的作用,但是在眾多網絡信息中,尋找到熱點,離開機器的作用幾乎是不可能完成的。還有最近一款非常熱的app,<<頭條>>。其實也是文本挖掘的應用。當然,其中還有推薦系統(這里我們不做討論,如果大家有興趣,我可以另寫一博文普及一下相關知識)。還有,文本挖掘對百度,google等搜索引擎其實也起到非常大的重要。

     好的,了解到了這些的話,我們就可以講講文本挖掘的一本步驟,這里以網絡文本為例。數據挖掘就是做一道菜,經過各種加工,最后成為一道美食。

 

     一、獲取文本

     一般來說網絡文本的獲取,主要是網頁的形式。我們要把網絡中的文本獲取形成一個文本數據庫(數據集)。利用一個爬蟲(這是另外一個知識點),抓取到網絡中的信息。爬取的策略有廣度和深度爬取;根據用戶的需求,爬蟲可以有主題爬蟲和通用爬蟲之分,主題爬取主要是在相關站點爬取或者爬取相關主題的文本,而通用爬蟲則一般對此不加限制。爬蟲可以自己寫,當然現在網絡上已經存在很多開源的爬蟲系統。當然如果需要定制,自己寫還是可以的。

 

     二、對文本進行預處理

     通過上面的步驟,我們已經獲得了做菜的材料了,可以說,有了它,做出一道菜已經是順利成當了。但是,菜好不好吃,可不可口,還需要經過很多步驟的。

     我們知道,網頁中存在很多不必要的信息,比如說一些廣告,導航欄,html、js代碼,注釋等等,我們並不感興趣的信息,可以delete掉。所以,我們還需要對文本中的信息進行篩選。這個步驟相當於我們做菜的洗菜過程,洗掉泥土等,吃起來才會口感好,否則,沒有清洗過的菜,就算再牛逼的大廚,我想也很難做出佳餚吧。

 

    三、分詞系統

      經過上面的步驟,我們會得到比較干凈的素材。我們知道,文本中起到關鍵作用的是一些詞,甚至主要詞就能起到決定文本取向。比如說一篇文章講的是體育還是娛樂,肯定是對文章中的中心詞進行分析得到的結果。那么怎么樣才能找到那些能夠影響中心意思的詞語呢?

      別忘了,在找出中心詞之前,我們首先得在每個文本中得到所有詞吧。這里就會用到一個分詞系統或者說分詞工具。現在針對中文分詞,出現了很多分詞的算法,有最大匹配法、最優匹配法、機械匹配法、逆向匹配法、雙向匹配法等等(可以參考各類文獻)。我們經常用到的中科院的分詞工具ICTCLAS,該算法經過眾多科學家的認定是當今中文分詞中最好的,並且支持用戶自定義詞典,加入詞典,;對新詞,人名,地名等的發現也具有良好的效果。

      通過很多分詞工具分出來的出會出現一個詞,外加該詞的詞性。比如說啊是語氣助詞。

      比如我們對:(我們都是牛逼的中國人。)進行分詞,得到的結果是

      我們/rr 都/d 是/vshi 牛/n 逼/v 的/ude1 中國/ns 人/n 。/wj

 

     四、去除停頓詞等

     經過上面的步驟,我們已經把所有的詞進行了分類。但是這些所有的詞,並不都是我們所需要的,比如說句號(。)顯然,句號對意思的表達沒有什么效果。還有"是"、“的”等詞,也沒有什么效果。因為這些詞在所有的文章中都大量存在,並不能反應出文本的意思,可以處理掉。當然針對不同的應用還有很多其他詞性也是可以去掉的,比如形容詞等。

 

    五、特征選擇

    經過上面的步驟,我們基本能夠得到有意義的一些詞。但是這些所有的詞都有意義嗎?顯然不是這樣的,有些詞會在這個文本集中大量出現,有些只是出現少數幾次而已。他們往往也不能決定文章的內容。還有一個原因就是,如果對所有詞語都保留,維度會特別高,矩陣將會變得特別特別稀疏,嚴重影響到挖掘結果。那么對這些相對有意義的詞語選取哪一本分比較合理呢?針對特征選擇也有很多種不同的方式,但是改進后的TF*IDF往往起到的效果是最好的。tf-idf 模型的主要思想是:如果詞w在一篇文檔d中出現的頻率高,並且在其他文檔中很少出現,則認為詞w具有很好的區分能力,適合用來把文章d和其他文章區分開來。

 

    下面是百度對TF、IDF的解釋:

    在一份給定的文件里,詞頻 (term frequency, TF) 指的是某一個給定的詞語在該文件中出現的次數。這個數字通常會被歸一化,以防止它偏向長的文件。(同一個詞語在長文件里可能會比短文件有更高的詞頻,而不管該詞語重要與否。)
    逆向文件頻率 (inverse document frequency, IDF) 是一個詞語普遍重要性的度量。某一特定詞語的IDF,可以由總文件數目除以包含該詞語之文件的數目,再將得到的商取對數得到。
    某一特定文件內的高詞語頻率,以及該詞語在整個文件集合中的低文件頻率,可以產生出高權重的TF-IDF。因此,TF-IDF傾向於保留文檔中較為特別的詞語,過濾常用詞

   通過計算,對詞進行排序,選取合適的詞數當做特征。

 

    六、利用算法進行挖掘

    經過上面的步驟之后,我們就可以把文本集轉化成一個矩陣。我們能夠利用各種算法進行挖掘,比如說如果要對文本集進行分類,我們可以利用KNN算法,貝葉斯算法、決策樹算法等等。

     以上六個步驟,就是一般文本挖掘的主要步驟,希望對大家有所幫助。謝謝!

 

    版權所有,歡迎轉載,但是轉載請注明出處:瀟一

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM