加载相应R包
library(pacman)
p_load(jiebaR, wordcloud)
#根据默认参数建立分词引擎
wk <- worker()
读取hlm.txt文件
#编码很重要,编码不对文字是乱码
hlm <- read.table("C:\\Users\\Admin\\Documents\\R\\data_set\\hlm.txt", sep = "\t", head = F, colClasses = "character", encoding = "UTF-8")
head(hlm)
#随机查看其中一行
hlm[sample(nrow(hlm), 1, replace = T), "V1"]
[1] " 闷来时敛额,行去几回头. "
文本分词
#分词
wds <- segment(hlm$V1, wk)
wk <= hlm$V1
wds.1 <- unlist(wds)
#去掉空行
wds.1 <- wds[wds != " "]
#取字符长度介于2和6之间的词
wds.2 <- wds.1[nchar(wds.1) > 1 & nchar(wds.1) < 7]
#输出前25个高频词
wds.freq25 <- sort(table(wds.2), decreasing = T)[1:25]; wds.freq25
#绘制词云图
wordcloud(names(wds.freq25), wds.freq25, min.freq = 2, random.order = F, random.color = T)
抓取“石头”相关内容,并输出第一段
st <- hlm$V1[grepl("石头", hlm$V1)]; st[1]
[1] "此开卷第一回也.作者自云:因曾历过一番梦幻之后,故将真事隐去,而借"通灵之说,撰此《石头记》一书也.故曰"甄士隐"云云.但书中所记何事何人?自又云:“今风尘碌碌,一事无成,忽念及当日所有之女子,一一细考较去,觉其行止见识,皆出于我之上.何我堂堂须眉,诚不若彼裙钗哉?实愧则有余,悔又无益之大无可如何之日也!当此,则自欲将已往所赖天恩祖德,锦衣纨绔之时,饫甘餍肥之日,背父兄教育之恩,负师友规谈之德,以至今日一技无成,半生潦倒之罪,编述一集,以告天下人:我之罪固不免,然闺阁中本自历历有人,万不可因我之不肖,自护己短,一并使其泯灭也.虽今日之茅椽蓬牖,瓦灶绳床,其晨夕风露,阶柳庭花,亦未有妨我之襟怀笔墨者.虽我未学,下笔无文,又何妨用假语村言,敷演出一段故事来,亦可使闺阁昭传,复可悦世之目,破人愁闷,不亦宜乎?故曰贾雨村"云云.……