大数据 论文
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
大数据课程论文
题目:基于R信息挖掘的《斗罗大陆》分
析
大数据课程论文
——基于R对《斗罗大陆》的文本分析摘要:
R语言是一门统计语言,主要用于数学建模、统计计算、数据处理、可视化等几个方向,天生就不同于其他的编程语言。R语言封装了各种基础学科的计算函数,我们在R语言编程的过程中只需要调用这些计算函数,就可以构建出面向不同领域、不同业务的、复杂的数学模型。
R的思想是:它可以提供一些集成的统计工具,但更大量的是它提供各种数学计算、统计计算的函数,从而使使用者能灵活机动的进行数据分析,甚至创造出符合需要的新的统计计算方法。
下面通过R语言来分析《斗罗大陆》小说。
问题分析:
一、导入数据(readLines)
把小说全文储存在一个txt文档里。使用ReadLines读入所有文本。
text<-readLines("C:\\Documents and Settings\\Administrator\\桌面\\斗罗大陆.txt") text<-text[nchar(text)!=0]
#预览一下:
text[10:20]
[1] " 从鬼见愁悬崖上扔出一块石头,要足足数上十九下才会听到石落山底的回声,可见其高,也正是因为这十九秒,尚超过十八层地狱一筹,故而得名。"
[2] " 一名身穿灰衣的青年正站在鬼见愁顶峰,凛冽的山风不能令他的身体有丝毫移动,从他胸口处那斗大的唐字就可以认出,他来自唐门,灰衣代表的,是唐门外门弟子。"
[3] " 他今年二十九岁,因出生不久就进入唐门,在外门弟子的辈分中排名第三,因此外门弟子称他一声三少。当然,到了内门弟子口中,就变成了唐三。"
[4] " 唐门从建立时开始就分为内外两门,外门都是外姓或被授予唐姓的弟子,而内门,则是唐门直系所属,家族传承。"
[5] " 此时,唐三脸上的表情很丰富,时而笑,时而哭,但无论如何,都无法掩盖他的那发自内心的兴奋。"
[6] " 二十九年了,自从二十九年前他被外门长老唐蓝太爷在襁褓时就捡回唐门时开始,唐门就是他的家,而唐门的暗器就是他的一切。"
[7] " 突然,唐三脸色骤然一变,但很快又释然了,有些苦涩的自言自语道:“该来的终究还是来了。”"
[8] " 十七道身影,十七道白色的身影,宛如星丸跳跃一般从山腰处朝山顶方向而来,这十七道身影的主人,年纪最小的也超过了五旬,一个个神色凝重,他们身穿的白袍代表的是内门,而胸前那金色的唐字则是唐门长老的象征。" [9] " 唐门内门长老堂包括掌门唐大先生在内,一共有十七位长老,此时登山的,也正是十七位。就算是武林大会也不可能惊动唐门全部长老同时出动,要知道,这唐门长老之中,年纪最大的已经超过了两个甲子。"
[10] " 这些唐门长老的修为,无一不是已臻化境,只是转眼的工夫,他们就已经来到了山顶。"
[11] " 外门弟子见到内门长老,只有跪倒迎接的份,但此时,唐三却没有动,他只是静静的看着这些脸色凝重的长老来到自己面前,挡住了所有的去路,而在他背后,是鬼见愁。"
二、单条件筛选数据(grep)
> #用grepl出TRUE/FALSE,再与直接储存的text对照提取
> #方法2:用grep直接看对话效果
> conversation<-text[grepl("|",text)]
> conversation<-temp<-grep("|",text,value=TRUE)
> #示例
> conversation[sample(1:length(conversation),5)]
[1] " 炽火学院的火无双和火舞看到了。神风学院的风笑天自然也看到了。"
[2] " 柳二龙也应该感谢我,没有了家族的阻隔,你们不是能没有任何阻力的在一起了么?”"
[3] " 唐三似乎意识到了什么,作为一名控制系魂师,他最关心的自然也是对方控制系魂师的情况,向大师问道:“老师,那对方的碧磷蛇魂师究竟是凭借什么来控制的呢?以蛇为武魂,似乎并不应该擅长控制才对。”"
[4] " 与此同时,贵宾席上也是一阵议论,雪夜大帝惊讶的看向宁风致,宁风致却向他摇了摇头,表示自己也不知道那金红色的光芒是什么。"
[5] " “好……,好……”比比东笑听着千仞雪的呼唤,她此时眼中尽是满足和慈祥,缓缓抬起手,似乎是想要去摸千仞雪的头是,她的手却只是抬到了一半。"三、多条件选出人物对话(grepl嵌套使用,与|的应用)
> tangsan_tangsan<-text[grepl("唐三",text)&grepl("|三哥|瘦小",text)]
> xiaowu_xiaowu[sample(1:length(tangsan_xiaowu),2)]
[1] " 在蓝银领域地作用下。蓝银霸王枪实际地攻击力极其恐怖。甚至还要在唐三紫极魔瞳目前精神力全力轰击地效果之上。"
[2] " 紧搂着小舞,唐三血红色的双目冷冷的看着海幻斗罗,“你不该用那一幕来刺激我。没有人可以伤害我的小舞,哪怕是在精神上的伤害也不行。”" 四、进一步处理文本
1、拆分段落章节(list列表与for循环)
> 章节名<-(grep("第.章",text,value=TRUE))
> 章节分段<-c(grep("第.",text),length(text)+1)
> dir.create("C:/斗罗大陆/章节分段",recursive=TRUE)
> 分段章节<-list()
> for (i in 1:(length(章节分段)-1)){
+ data<-text[章节分段[i]:章节分段[i+1]-1]
+ 分段章节[[i]]<-data
+ names(分段章节)[i]<-章节名[i]
+ write(data,paste0("C:/斗罗大陆/章节分段/",i,"-",章节名[i],".txt")) }
> head(list.files("C:/斗罗大陆/章节分段/"))
[1] "1-NA.txt" "10-NA.txt" "100-NA.txt" "1000-NA.txt" "1001-NA.txt" [6] "1002-NA.txt"
>
2、统计人物在哪些章节出场,并定位双方互动,制作数据表(strsplit 提取数据、sapply统计数据)
> sapply(分段章节,function(e) sum(grepl("唐三",e)))
章节名<-(grep("第.章",text,value=TRUE))
> 章节分段<-c(grep("第.",text),length(text)+1)
> dir.create("C:/斗罗大陆/章节分段",recursive=TRUE)
> 分段章节<-list()
> for (i in 1:(length(章节分段)-1)){
+ data<-text[章节分段[i]:章节分段[i+1]-1]
+ 分段章节[[i]]<-data
+ names(分段章节)[i]<-章节名[i]
+ write(data,paste0("C:/斗罗大陆/章节分段/",i,"-",章节名[i],".txt")) }
> head(list.files("C:/斗罗大陆/章节分段/"))