歡迎大家前往騰訊雲+社區,獲取更多騰訊海量技術實踐干貨哦~
我們每天都會遇到各種各樣的文本數據,但大部分是非結構化的,並不是全部都是有價值的。
據估計,全球約80%的數據是非結構化的。這包括音頻,視頻和文本數據。在這篇文章中,我們將只討論文本數據。在系列后面,我們將會談論到其他非結構化數據。
我們閱讀的書籍,博客,新聞文章,網頁,電子郵件等都是文本數據。所有這些文本都為我們提供了大量的信息,並不斷增長。但是,並非所有的數據都是有用的。我們過濾掉噪音,只保留重要的信息。這是一個乏味的過程,但作為人類,我們需要智慧 - 閱讀是一個必不可少的工具。而且,當世界傾向於智能機器時,處理來自非結構化數據的信息的能力是必須的。對於人類和智能機器來說,從大量的文本數據中挖掘信息是必需的。文本挖掘可以提供方法來提取,總結和分析來自非結構化數據的有用信息,以獲得新的見解。
文本挖掘可以用於各種任務。以下是我們的系列將進一步討論的幾個主題:
- 主題建模
- 文檔聚類
- 文檔分類
- 文字摘要
這篇文章主要關注主題建模。在接下來的帖子中,我們將深入到其他任務。
1、文本檢索
文本文件可以有各種格式,如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))
2、文本預處理
接下來,我們需要對文本進行預處理,將其轉換為可以處理以提取信息的格式。在分析文本之前減小特征空間的大小是非常重要的。我們可以在這里使用各種預處理方法,如停用詞清除,案例折疊,詞干化,詞形化和收縮簡化。但是,沒有必要將所有的規范化方法應用於文本。這取決於我們檢索的數據和要執行的分析類型。
# 將每個字母變成小寫 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提供的標准英語停用詞列表與自定義詞匯集合一起使用,以消除非正式詞匯和產品名稱。我們也可以從我們的文本中提供我們認為與我們的分析無關的文字。
案例折疊:案例折疊將所有大寫字母轉換為小寫字母。
詞干化:詞干是將修飾詞或派生詞歸為根的過程。例如,工作(進行時)和工作(過去式)都會被詞干化為工作(原型)。
刪除號碼:對於某些文本挖掘活動,號碼不是必需的。例如,在主題建模的情況下,我們關心的是找到描述我們語料庫的基本詞匯。在這種情況下,我們可以刪除號碼。然而,在某些情況下,例如,如果我們正在為財務報表進行主題建模,它們可能會增加實質性內容。
下一步是創建一個文檔項矩陣(DTM)。這是一個重要的步驟,因為解釋和分析文本文件,它們最終必須轉換成文檔術語矩陣。 DTM包含每個文檔的術語出現次數。 DTM中的行代表文檔,文檔中的每個詞代表一列。在將文集轉換為文檔項矩陣之后,我們還移除了低頻詞(稀疏詞)。
articleDtm <- DocumentTermMatrix(articles.corpus, control = list(minWordLength = 3)); articleDtm2 <- removeSparseTerms(articleDtm, sparse=0.98)
3、主題建模
主題建模是為了找到最能代表集合的文檔集合中的關鍵詞/術語。Latent Dirichlet Allocation(LDA)模型是一種廣泛使用的話題建模技術。以上結果表明,這兩個文件的主題都集中在機器學習和數據科學領域,你可以從GitHub中找到數據集和代碼。
問答
相關閱讀
此文已由作者授權騰訊雲+社區發布,原文鏈接:https://cloud.tencent.com/developer/article/1007140?fromSource=waitui