R語言學習-詞頻分析
概念
1、語料庫-Corpus
語料庫是我們要分析的所有文檔的集合,就是需要為哪些文檔來做詞頻
2、中文分詞-Chinese Word Segmentation
指的是將一個漢字序列切分成一個一個單獨的詞語。
3、停用詞-Stop Words
數據處理的時候,自動過濾掉某些字或詞,包括泛濫的詞如Web、網站等,又如語氣助詞如的、地、得等。
需要加載的包
1、tm包
安裝方式:install.packages("tm")
語料庫:
Corpus(x,readerControl)
x-語料庫的數據源,可以使用目錄數據源-DirSource,或者向量數據源-VectorSource
readerControl-語料庫的讀取控制器,是一個list;參數reader-文本為reader,pdf為readPDF等,參數language為文本語言,默認為“en”
舉例:
#按目錄讀入語料庫,就是把數據讀取出來
C000007 <- Corpus(
DirSource(
‘SogouC.mini/Sample/C000007‘ //這個是相對路徑,絕對路徑為:C:\Users\22636\Desktop\R語言資料\2.1\SogouC.mini\Sample\C000007
),
readerControl = list(language="UTF-8")
)
語料庫處理:
tm_map(x,FUN)
x-上面的語料庫
FUN-使用哪個處理函數,函數如下
tolower-轉成小寫
removeWords-移除分詞,一般用語移除停用詞
stripWhitespace-移除空白字符
PlainTextDocument-處理HTML或者XML文檔
segmengCN-中文分詞函數,來自Rwordseg包
2、tmcn包-停用詞包
安裝方式:install.packages("tmcn", repos="http://R-Forge.R-project.org");
安裝後使用stopwordsCN()
3、Rwordseg包
安裝方式:
install.packages("rJava")
install.packages("Rwordseg", repos="http://R-Forge.R-project.org")//如果這個不行則用下面的
#install.packages("Rwordseg", repos="http://R-Forge.R-project.org", type="source")
分詞方法:
segmentCN(strwords,outfile="",returnType=c("vector","tm"))
strwords-需要分詞的字符串或者文件路徑
outfile-分詞後輸出的路徑,默認為輸入文件的同級目錄
returnType-返回值類型,默認是數組,可以選擇為tm包的語料庫類型
安裝/卸載字典:
installDict(dictpath,dictname)
uninstallDict(dictname)
dictpath-字典文件路徑
dictname-字典名字
字典下載:http://pinyin.sogou.com/dict/
顯示字典列表
listDict()
舉例:
segmentCN("真武七截陣和天罡北鬥陣哪個厲害")
輸出:
[1] "真" "武" "七" "截" "陣" "和" "天罡" "北鬥"
[9] "陣" "哪個" "厲害"
加載字典:
installDict(‘金庸武功招式.scel‘, ‘金庸武功招式‘)
輸出:
[1] "真武七截陣" "和" "天罡北鬥陣" "哪個"
[5] "厲害"
當然也可以使用路徑的方式來進行分詞,如下面則是根據路徑來針對文檔裏面的語句進行分詞,並且分詞後會在同目錄下生成分詞後的新文檔:
data <- segmentCN(
‘SogouC.mini/Sample/C000007/10.txt‘
)
4、TM包和Rwordseg包組合使用
#加載tm和tmcn包
library(tm)
library(tmcn)
#按目錄讀入語料庫
C000007 <- Corpus(
DirSource(
‘SogouC.mini/Sample/C000007‘
),
readerControl = list(language="UTF-8")
)
stopwordsCN()
#加載rwordreg包
library(Rwordseg)
C000007 <- tm_map(C000007, stripWhitespace) //先把c000007語料庫中的空格移除
C000007 = tm_map(C000007, content_transformer(segmentCN), returnType=‘tm‘) //用segmentcn方式進行分詞
R語言學習-詞頻分析