手把手教你作文本挖掘

1、文本挖掘定義

文本挖掘指的是從文本數據中獲取有價值的信息和知識,它是數據挖掘中的一種方法。文本挖掘中最重要最基本的應用是實現文本的分類和聚類,前者是有監督的挖掘算法,後者是無監督的挖掘算法。算法

2、文本挖掘步驟

1)讀取數據庫或本地外部文本文件數據庫

2)文本分詞機器學習

2.1)自定義字典函數

2.2)自定義中止詞工具

2.3)分詞學習

2.4)文字雲檢索哪些詞切的不許確、哪些詞沒有意義,須要循環2.一、2.2和 2.3步驟spa

3)構建文檔-詞條矩陣並轉換爲數據框文檔

4)對數據框創建統計、挖掘模型get

5)結果反饋數據挖掘

3、文本挖掘所需工具

本次文本挖掘將使用R語言實現,除此還需加載幾個R包,它們是tm包、tmcn包、Rwordseg包和wordcloud包。其中tmcn包和Rwordseg包沒法在CRAN鏡像中下載到,有關這兩個包的下載方法。

4、實戰

本文所用數據集來自於sougou實驗室數據,具體可至連接下載>>>

本文對該數據集作了整合,將各個主題下的新聞彙總到一張csv表格中,數據格式以下圖所示:

具體數據可至文章後面的連接。

 

接下來須要對新聞內容進行分詞,在分詞以前須要導入一些自定義字典,目的是提升切詞的準確性。因爲文本中涉及到軍事、醫療、財經、體育等方面的內容,故須要將搜狗字典插入到本次分析的字典集中。

若是須要卸載某些已導入字典的話,能夠使用uninstallDict()函數。

分詞前將中文中的英文字母通通去掉。

圖中圈出來的詞對後續的分析並無什麼實際意義,故須要將其剔除,即刪除中止詞。

中止詞建立好後,該如何刪除76條新聞中實際意義的詞呢?下面經過自定義刪除中止詞的函數加以實現。

相比與以前的分詞結果,這裏瘦身了不少,剔除了諸如「是」、「的」、「到」、「這」等無心義的次。 判別分詞結果的好壞,最快捷的方法是繪製文字雲,能夠清晰的查看哪些詞不應出現或哪些詞分割的不許確。

仍然存在一些無心義的詞(如說、日、個、去等)和分割不許確的詞語(如黃金週切割爲黃金,醫藥切割爲藥等),這裏限於篇幅的緣由,就不進行再次添加自定義詞彙和中止詞。

此時語料庫中存放了76條新聞的分詞結果。

從圖中可知,文檔-詞條矩陣包含了76行和7939列,行表明76條新聞,列表明7939個詞;該矩陣實際上爲稀疏矩陣,其中矩陣中非0元素有11655個,而0元素有591709,稀疏率達到98%;最後,這7939個詞中,最頻繁的一個詞出如今了49條新聞中。

因爲稀疏矩陣的稀疏率太高,這裏將剔除一些出現頻次極地的詞語。

這樣一來,矩陣中列大幅減小,當前矩陣只包含了116列,即116個詞語。

爲了便於進一步的統計建模,須要將矩陣轉換爲數據框格式。

總結

因此在實際的文本挖掘過程當中,最爲困難和耗費時間的就是分詞部分,既要準確分詞,又要剔除無心義的詞語,這對文本挖掘者是一種挑戰。 文中數據和腳本可至以下連接下載: http://yunpan.cn/cupyBj9xTkHe7 訪問密碼 a88b

免費公開課福利:

美國西北大學海歸大咖主講,全國首例機器學習算法課程

相關文章
相關標籤/搜索