歡迎你們前往騰訊雲+社區,獲取更多騰訊海量技術實踐乾貨哦~git
咱們天天都會遇到各類各樣的文本數據,但大部分是非結構化的,並非所有都是有價值的。
據估計,全球約80%的數據是非結構化的。這包括音頻,視頻和文本數據。在這篇文章中,咱們將只討論文本數據。在系列後面,咱們將會談論到其餘非結構化數據。github
咱們閱讀的書籍,博客,新聞文章,網頁,電子郵件等都是文本數據。全部這些文本都爲咱們提供了大量的信息,並不斷增加。可是,並不是全部的數據都是有用的。咱們過濾掉噪音,只保留重要的信息。這是一個乏味的過程,但做爲人類,咱們須要智慧 - 閱讀是一個必不可少的工具。並且,當世界傾向於智能機器時,處理來自非結構化數據的信息的能力是必須的。對於人類和智能機器來講,從大量的文本數據中挖掘信息是必需的。文本挖掘能夠提供方法來提取,總結和分析來自非結構化數據的有用信息,以得到新的看法。app
文本挖掘能夠用於各類任務。如下是咱們的系列將進一步討論的幾個主題:機器學習
這篇文章主要關注主題建模。在接下來的帖子中,咱們將深刻到其餘任務。工具
文本文件能夠有各類格式,如PDF,DOC,HTML等。第一步是將這些文檔轉換爲可讀的文本格式。接下來,必須建立一個語料庫。語料庫只是一個或多個文檔的集合。當咱們在R中建立語料庫時,文本會被標記並可供進一步處理。學習
library(tm) library(SnowballC) library(topicmodels) #設置工做目錄(根據須要修改路徑) setwd("//Users//datascience//textmining//topicmodel") #加載文檔到語料庫 #獲取目錄中的.txt文件列表 filenames <- list.files(getwd(),pattern="*.txt") #將文件讀入字符向量 files <- lapply(filenames,readLines) #建立矢量語料庫 articles.corpus <- Corpus(VectorSource(files))
接下來,咱們須要對文本進行預處理,將其轉換爲能夠處理以提取信息的格式。在分析文本以前減少特徵空間的大小是很是重要的。咱們能夠在這裏使用各類預處理方法,如停用詞清除,案例摺疊,詞幹化,詞形化和收縮簡化。可是,沒有必要將全部的規範化方法應用於文本。這取決於咱們檢索的數據和要執行的分析類型。大數據
#將每一個字母變成小寫 articles.corpus <- tm_map(articles.corpus, tolower) #刪除標點符號 articles.corpus <- tm_map(articles.corpus, removePunctuation) #刪除數字 articles.corpus <- tm_map(articles.corpus, removeNumbers); #刪除通用和自定義的停用詞 stopword <- c(stopwords('english'), "best"); articles.corpus <- tm_map(articles.corpus, removeWords, stopword) articles.corpus <- tm_map(articles.corpus, stemDocument);
如下是咱們應用於減小數據集特徵空間的預處理方法的簡短描述:
刪除標點符號:刪除了各類標點符號,如+, - 和〜。
停用詞清除:將經常使用詞和短語功能詞等停用詞過濾掉,以便對數據進行有效的分析。由NLTK提供的標準英語停用詞列表與自定義詞聚集合一塊兒使用,以消除非正式詞彙和產品名稱。咱們也能夠從咱們的文本中提供咱們認爲與咱們的分析無關的文字。
案例摺疊:案例摺疊將全部大寫字母轉換爲小寫字母。
詞幹化:詞幹是將修飾詞或派生詞歸爲根的過程。例如,工做(進行時)和工做(過去式)都會被詞幹化爲工做(原型)。
刪除號碼:對於某些文本挖掘活動,號碼不是必需的。例如,在主題建模的狀況下,咱們關心的是找到描述咱們語料庫的基本詞彙。在這種狀況下,咱們能夠刪除號碼。然而,在某些狀況下,例如,若是咱們正在爲財務報表進行主題建模,它們可能會增長實質性內容。ui
下一步是建立一個文檔項矩陣(DTM)。這是一個重要的步驟,由於解釋和分析文本文件,它們最終必須轉換成文檔術語矩陣。 DTM包含每一個文檔的術語出現次數。 DTM中的行表明文檔,文檔中的每一個詞表明一列。在將文集轉換爲文檔項矩陣以後,咱們還移除了低頻詞(稀疏詞)。spa
articleDtm <- DocumentTermMatrix(articles.corpus, control = list(minWordLength = 3)); articleDtm2 <- removeSparseTerms(articleDtm, sparse=0.98)
主題建模是爲了找到最能表明集合的文檔集合中的關鍵詞/術語。Latent Dirichlet Allocation(LDA)模型是一種普遍使用的話題建模技術。以上結果代表,這兩個文件的主題都集中在機器學習和數據科學領域,你能夠從GitHub中找到數據集和代碼。命令行
問答
如何經過命令行運行R語言腳本?
相關閱讀
用R進行文本挖掘與分析:分詞、畫詞雲
文本挖掘的分詞原理
大數據挖掘中易犯的11大錯誤
此文已由做者受權騰訊雲+社區發佈,原文連接:https://cloud.tencent.com/dev...