程序代码
#文本分词&正则
#案例:《笑傲江湖》文本基础分析
setwd("E:/Rwd_All")
library(jiebaR) #加载分词包,墙裂推荐jiebaR包
engine<-worker() #根据默认参数建立分词引擎
##下面读取txt文本
xajh<-read.table("C:\\Users\\Administrator\\Desktop\\金庸-笑傲江湖.txt",
sep="\t",header=F,colClasses="character") #读取《笑傲江湖》txt文件
head(xajh) #查看表头
xajh$V1[c(1:5,5000:5005,20000:20005)] #随便查看部分内容
##下面进行文本分词
words<-engine<=xajh$V1 #分词
words1<-unlist(words)
words1<-words[words!=""]
w1=words1[nchar(words1)==1];w1 #查看一个字的词(w1)有没有分析价值
sort(table(w1),decreasing=T)[1:50] #输出前50个出现频率最高w1
#注:不做深入分析,忽略掉这些单字的语气词、代词、动词、形容词等
words2<-words1[nchar(words1)>1 & nchar(words1)<7] #只要字符创长度介于2-6的词
wordFreq25=sort(table(words2),decreasing=T)[1:25];wordFreq25 #输出前25个高频词
library(wordcloud) #加载包,做词云图用
wordcloud(names(wordFreq25),wordFreq25,min.freq=2,random.order=F,random.color=T,colors = c(1:25))
#词云图绘制较简单,参数使用文档介绍的很详细,我就不罗嗦了!做个机智的“调包侠”lol……
##下面抓取令狐冲和盈盈的对话
冲盈<-xajh$V1[grepl("冲哥|令狐冲|令狐少侠|令狐公子",xajh$V1) &
grepl("盈盈|婆婆|姑姑|圣姑|任盈盈|任小姐",xajh$V1) &
grepl("“|”",xajh$V1)]
n=sample(1:length(冲盈),20);n
sents=冲盈[n];sents #随机抽看冲盈对话的20句
##第二个就是最喜欢的风清扬前辈了,这次抽出跟风清扬相关的所有内容
风清扬<-xajh$V1[grepl("风清扬|风老前辈|风太师叔|独孤九剑",xajh$V1)]
风清扬[1:20] #查看前20相关的内容
##保存自己喜欢的小说内容至txt文件
write.table(冲盈,"冲盈.txt")
write.table(风清扬,"风清扬.txt")
运行结果
#仅贴出部分运行结果
> wordFreq25=sort(table(words2),decreasing=T)[1:25];wordFreq25 #输出前25个高频词
words2
令狐冲 甚么 说道 自己 岳不群 一个 师父 盈盈 剑法 弟子 林平之 岳灵珊 咱们 一声 不是 恒山 他们
4728 2053 1580 1166 1117 1041 993 974 964 934 871 866 861 824 762 752 739
长剑 田伯光 不知 出来 之中 教主 师妹 心中
729 662 646 643 580 574 570 569
> sents=冲盈[n];sents #随机抽看冲盈对话的20句
[1] "将胸膛挺了挺。盈盈道:“你死在临头,还笑甚么?”令狐冲" "令狐冲惊喜交集,情不自禁的冲口而出:“盈盈来了!”急"
[3] "令狐冲一坐定后,便问:“圣姑到底怎样啦?这可急死我" "盈盈道:“不用心急,要救两个人,总还办得到。”令狐冲知"
[5] "令狐冲道:“多谢大师好意,待晚辈护送婆婆到达平安的" "令狐冲和盈盈同时叫道:“不好!”从高粱丛中跃了出来。"
[7] "就叫我学他的样。”那婆婆道:“正是。”令狐冲笑道:“天下" "盈盈道:“冲哥,这华山之上,有一处地方和你大有干系,"
[9] "听,不许隐瞒抵赖。”盈盈道:“不上来!好没正经。”令狐冲" "令狐冲向盈盈道:“盈盈,你是不能随我去的了?”盈盈"
[11] "盈盈眼光中闪出喜悦的光芒,道:“冲哥,你这是真心话" "盈盈道:“定闲师太是为了女儿而死的。”令狐冲向她瞧"
[13] "令狐冲笑道:“从此之后,我不叫你婆婆了,那我叫你甚" "那婆婆道:“我仔细想想,要令狐冲这小子抛了你,另娶"
[15] "盈盈与令狐冲并肩缓缓回见性峰来,说道:“东方不败此" "活呢。”盈盈道:“你这话可不是骗我?”令狐冲道:“就怕我"
[17] "令狐冲惊道:“我师父断了腿骨?”盈盈微笑道:“没震死" "盈盈急道:“你不能走。”令狐冲道:“为甚么?”盈盈道:"
[19] "令狐冲和盈盈都暗暗点头,心道:“左冷禅和劳德诺所以" "那婆婆叫道:“喂,喂,你怎么啦?”令狐冲脸上、手上"
>
> ##第二个就是最喜欢的风清扬前辈了,这次抽出跟风清扬相关的所有内容
> 风清扬<-xajh$V1[grepl("风清扬|风老前辈|风太师叔|独孤九剑",xajh$V1)]
> 风清扬[1:20] #查看前20相关的内容
[1] "“风清扬”三个大字,是以利器所刻,笔划苍劲,深有半寸," "寻思:“这位风清扬是谁?多半是本派的一位前辈,曾被罚在"
[3] "石壁之上。令狐冲见到壁上“风清扬”三个大字,伸出手指," "风清扬风老前辈!”"
[5] "令狐冲登时想起石壁上所刻的那“风清扬”三个大字,忍" "风……”他想“风清扬”的名字中有个“清”字,那是比师"
[7] "父“不”字辈高了一辈的人物,接着道:“风太师叔归隐多年," "夕之间尽数暴毙,只有风清扬一人其时不在山上,逃过了这"
[9] "过的,虽有你风太师叔不断指点,终归无用。你还是乖乖的" "巧法?田伯光提到风清扬,便真有一个风清扬出来。”"
[11] "白送在你手里?”转面向那老者道:“风老前辈,田伯光是后" "前辈风太师叔,实是万千之喜。”"
[13] "那老者风清扬道:“你起来。”令狐冲又恭恭敬敬的磕了" "去取。风清扬摇头道:“不用!”眯着眼向太阳望了望,轻声"
[15] "风清扬向缩在地下的田伯光瞧了一眼,话道:“他给你戳" "风清扬摇摇头,说道:“你是岳不群的弟子,我本不想传"
[17] "风清扬指着石壁说道:“壁上这些华山派剑法的图形,你" "只听风清扬续道:“岳不群那小子,当真是狗屁不通。你"
[19] "风清扬一怔,已明其理,淡淡的道:“他要是不肯呢?你" "不杀自己,自己又怎能一占上风,却便即杀他?风清扬道:"
词云图:
男主出镜率当仁不让了……
输出文件截图示例:
之所以保存部分小说内容,完全是因为:像我这样资深级的伪笑傲迷,电视剧看了N遍,想看原小说却一直没行动的人,冲盈之间的打情骂俏及风清扬这种神级人物的所言所行是值得保存下来细细品味的。