文本挖掘

文本挖掘現在是無處不在啊,之前在工作中涉及到一些文本挖掘的問題,但都不是很深入。最近在復習機器學習算法,看到貝葉斯分類,其中有一類就涉及到文本分類。總值涉及到文本挖掘的根本就是分詞然后統計詞頻,然后根據概率公式判別這些詞是否屬于某一類,歸根到底還是一個量化計算的問題。

最基礎的問題就是數據格式問題,向量、數據框、列表這三個在應用過程中都有涉及到,R語言含有很多函數,可以輕松幫我們搞定這些問題。

一、獲取數據

library(RODBC)

db <- odbcConnect(dsn="inspur", uid="inspur_detail", pwd="inspur", believeNRows=FALSE )

cin = sqlQuery(db, "SELECT A.COMMODITY_NAME from B2C_SN_CINFO_201702 A where ROWNUM < 1000")

調取了999天商品信息數據,想觀察一下這些商品信息數據有哪些出現頻次比較高的詞語

二、分詞

library(Rwordseg)

cin$COMMODITY_NAME<-as.character(cin$COMMODITY_NAME)

cin_seg<-segmentCN(cin$COMMODITY_NAME) 分詞函數segmentCN針對的是字符型數據


執行完分詞語句后,分詞數據以列表的形式被儲存

在這里統計詞頻的時候 txtChar <- unlist(cin_seg) ?unlist將數據編程向量或者數字向量

data <- as.data.frame(table(txtChar)) ?將所分詞轉化為數據框的形式

wordcloud(data$txtChar,data$Freq)


在R語言中使用Rwordseg包的segmentCN函數在分詞時,如果出現下面這個錯誤:

Error in .jcall(analyzer, "S", strfunc, X) :

java.lang.NullPointerException

解決方法:

text<-enc2utf8(text) #轉utf-8,有些格式它不支持

text<-text[Encoding(text)!='unknown']#清除無法識別的字符

word.message<-segmentCN(text)#分詞

OK,這樣的話既可以了。


三、數據清洗

推薦使用? http://blog.csdn.net/duqi_yc/article/details/9817243

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容