第一篇:海量阅读竞赛总结
丹水镇2011秋期海量阅读竞赛活动总结
11月28日,全镇举行的中小学生名著名篇阅读知识竞赛活动已经结束,经过精心组织,优秀学生脱颖而出,这为落实“海量阅读”精神,引导和鼓励学生积极阅读,提高综合素养提供良好的实践平台。
本次竞赛试卷选取了中小学生课外阅读材料,依据文章内容设计的试题,从竞赛情况看,参赛的大部分学生有良好的阅读习惯和理解能力,竞赛时能够做到静心读文,认真思考,答题思路清晰,表达流畅,个别学生思维活跃,想象丰富,答题有独到见解。
《义务教育语文课程标准》在阐述语文课程目标时,明确提出要“培养学生的独立阅读能力”。叶圣陶先生也曾经指出:“学生须读书,须能作文,故特设语文课以训练之。最终目的为:自能读书,不待老师讲;自能作文,不待老师改。老师之训练必做到此两点,乃为教学之成功。”要想实现这一教育目标,开展课外阅读,特别是让学生在课外阅读中接触古今中外优秀的文学名著,确实是非常必要的。课外阅读文学名著,不仅可以有效的训练学生的语感,更重要的是,通过课外阅读,能够让学生感受到语文学习的乐趣,教会学生语文学习的方法,培养学生正确的情感态度和价值观。本次竞赛活动,起到极大的促进作用。但从全镇总体巡视看,感觉到仍然存在许多问题:
一、存在问题,(一)、教师方面:
1.教师的名著阅读意识不强,学生的作业多,没有时间阅读。因此,并没有多少老师真正去落实。班级图书角至今还不够健全,读书笔记检查不够实在。对学校安排的阅读课虽然没有占用,但指导力度不够。
2、教师本身也许具备较高的文学素养,但是,疏于或懒于去激发学生引导学生。其实,教师如果能将自身的阅读经历和体会去感染学生,学生是
有兴趣去阅读的,学生不读书,责任在老师。
3、.一些教师支持不够。名著阅读不单是语文老师的事,而是所有教师的事。经常看到老师强行没收学生的课外书(诸如杂志、名著等)。这无疑在剥夺、打消学生读书的积极性。
(二)、学生方面:
1、习惯方面。一是静心阅读的习惯。有些学生不先通读文章,拿到题目就做,断章取义,造成答题的片面性。二是认真审题的习惯。有部分学生由于看不清题目要求而失分,阅读习惯有待加强。
2、知识方面。一些文学常识要随机渗透。这些知识在教学中就要求教师慧眼发现,善于捕捉知识点随堂点拨,让学生“零存整取”。
(三)、学校方面:
学校的名著阅读环境还未形成。文学氛围不够浓厚,一些老师忙于抓学生过关、抓学生考试。单凭语文的几场竞赛是无法形成读书氛围的。因为,其他科目的老师,只要作业量加大一些,就能让学生疲于奔命。课外阅读在疲惫的夹缝中进行,势必影响读书的积极性和效果。
二、主要建议
(一)学校要创设浓郁的书香氛围,营造宽松和谐的阅读环境,激发学生的读书兴趣。
营造宽松和谐的阅读环境,能激发学生的读书兴趣。学校要多些开展读书实践活动,开放校图书馆、班级图书角,建立定期借阅制度,来营造读书氛围,给学生推荐有益的课外读物,如经典名著、名人故事等,营造有书可读,有好书可读的环境和氛围。同时利用家长会宣讲课外阅读的必要性、重要性,给学生创造良好的读书环境,培养起阅读的兴趣。2.向学生推荐课外读物,供学生选择。可以是书刊的推荐、篇目的推荐和内容的介绍;可以是教师推荐和学生推荐相结合、统一推荐和分散推荐相结合。
(二)教师要教给学生课外阅读的策略和方法。
“得法于课内,得益于课外”,这是对课外阅读指导课任务和作用的精辟概括,让学生习得必要的阅读策略和方法是课外阅读指导课的主要目的之
一。学生掌握了有效的阅读方法,可以使他们大大提高课外阅读的实效性。
1、教给学生基本的阅读方法。
(1)精读法。精读是为了对读物内容作充分的理解,而对读物逐章、逐段、逐句、逐字进行深入阅读的方法。精读法有助于帮助学生完整地理解并消化读物的内容,帮助他们牢固掌握知识,提高思维能力,增强语言修养。
(2)浏览法。当今社会是信息时代,我们要阅读的材料往往很多,而有的文章又往往不需深钻细研,只需知道个大概即可,有些书我们也只需要其中某一部分资料而已,此时,浏览便成了最佳的阅读方式。浏览法能扩大视野,丰富知识,而且省时高效。
(3)批注法。即在阅读过程中边读边批注,教师在课外阅读指导课的教学中中应引导学生在阅读的过程中及时勾画,记录下自己的心得体会,随读随写,手脑并用,养成“不动笔墨不读书”的良好习惯。
除上述的三种常用阅读方法外,还有很多其它的阅读方法,我们要注重指导学生根据不同的阅读书籍、目的、性质选择合适的阅读方式。
2、教给学生课外阅读积累的方法。
(1)学会做笔记。古人云:“不动笔墨不读书。”课外阅读就要培养学生“养成读书记笔记的习惯”。读到好的文章,摘录有关的好词佳句,记下心得体会,日积月累,潜移默化,这就是阅读的收获。
(2)熟读成诵。对于在课外阅读过程中读到的文质兼美的短文、片断、句子,应鼓励学生入情入境地进行赏读,直至达到背诵的程度。并在以后的时间里,经常进行复习。
(3)剪辑法。平时在读报时发现自己喜爱的文章或资料及时剪下来,分
门别类贴在准备好的本子上,在本子的前面加上目录、封面。
(三)开展读书读报活动。
1、学校要利用晨会、班会,有计划地组织学生开展一周两次的集体读书读报活动。培养学生读书读报意识、兴趣、能力,有助于阅读习惯的养成。
2.、举行佳句美文的交流、欣赏,让学生在轻松愉快的氛围中获得知识,了解我国灿烂文化,并激发学生学习的积极性和主动性。
3.、开展阅读手抄报制作比赛,学校要把学生个人的读书心得反映在自办的报纸上,从版面设计到稿件组织都亲力亲为,这样就能把学生的阅读、写作、画画、书写各种能力融于一体,从而丰富了学生的课余生活,并在自我参与中提高整体素质、综合能力。
4、采用学生喜闻乐见的形式,开展有趣的读书活动,如举行故事会、演讲会、经验交流会、主题班队会、读书征文、书评等活动,评选出最佳读书征文、笔记向学校校刊推荐。
(四)学校要开展多元的读书评价手段。
1、读书笔记的评价。对“读书笔记”每周评价,对优秀的读书笔记给以奖励。
2、读书活动评价。如阅读竞赛,读书征文,优秀习作进行评价。评价从参与态度、成绩的优劣客观地、全面地进行。
3、背诵评价。学生在阅读中积累的好词、佳句、精彩片断、名言警句、古诗文等都得一一背诵,除教师抽查外,充分发挥学习小组的优势,学生互查背诵。同时调动家长的积极性,督促背诵。
4、测试评价。重视课外阅读的评价,就能激发学生课外阅读的兴趣,让学生乐学、善学、会学,从而对学生识字解词、知识积累、能力培养,起到潜移默化的作用。
丹水镇中心学校
2011年11月28日
第二篇:海量阅读总结
诵读中华经典古诗,打造书香校园
沙岭小学诵读古诗侧记、小结
营造氛围,形成特色。沙岭小学决定,开展“诵读中华经典古诗,打造书香校园”活动作为教学重要内容之一,营造诵读中华经典的文化氛围,将其成为学校教改特色和亮点之一。利用教室、走廊、楼道、图书室、展板进行经典诵读的环境渲染。各班在班级黑板上设置读书小专栏,如“诗词荟萃”、“经典展示”等,为学生提供展示和交流的平台。学校利用每日广播播音时间,设置“中华经典欣赏”小栏目,示范朗诵推荐的篇目。
加强领导,全面实施。此项工作由教导主任领导,语文教研组长具体负责,班主任和语文教师按照诵读内容及要求、活动时间安排抓好落实。各班围绕小学生必读古诗一百首,制定详实的计划,将诵读内容分解到每月、每周、每天,有计划的分步实施。同时,班主任要配合语文代课教师选好课前领读主持人。学校要求,从三年级起,动员每个学生采蜜集作为“中华经典积累本”,指导学生抄写自己喜欢的诗文,建立诵读卡,随时进行诵读,便于记忆。
开展竞赛,展示成果。中华经典诵古诗读活动是学校一项重要的文化教育工程,贵在天天坚持,持之以恒。为促使诵读经典活动卓有实效,学校要通过开展不同形式的诵读比赛活动巩固落实。一是以班级为单位每周开展一次班级诵读展示活动,评出每周“诵读能手”。二是组成学生课外活动诵读兴趣小组,在教师或小组长指导下采用两人赛、小组赛,限时背、师生背、快背、慢背、轮换背、接龙背,抄
写背、听记背、问答背等多种形式的诵背,让灵活而富有变化的方式激发起学生背诵的积极性。三是学校每月组织一次“师生同台诵读(书写)经典大赛”活动,展示师生的风采。学校设置个人、班级奖项给予鼓励,以此激发师生们的诵读热情。
“阅读不能改变人生的长度,但它可以改变人生的宽度”。全市师生要多读书,读好书,会读书,勤读书。让沙岭小学校园时时充满勃勃生机,处处洋溢浓浓书香
第三篇:海量总结
2011——2012学年第一学期
“海量阅读”实验小结
开展海量阅读实验已近一个学期,这一个学期以来,我立足学生的实际,关注课内外延伸,努力在各类活动中开展了此项实验,取得了初步的成效。我主要做了以下几个方面的工作:
一、整合课本资源,拓宽阅读渠道
在文本的处理上,整合教学资源。课文的教学注重学生自主学习能力的培养,依托小组合作的形式,提高了课堂的效率。对于文本的处理改变了以往的教学模式,通过教学方式的变革来实现学习方式的转变,由“要我学”变成“我要学”。课堂上,充分相信孩子们的能力,大胆放手,尝试着让孩子先学。但其中方法的指导尤为重要,过多的分析、讲解不会给孩子留下太多有用的价值。像《牛郎织女》这种比较好读、浅显易懂的课文,我就降低训练的重点,没有一段段文字揪着反复读。学生已经能复述下来故事了,多次的重复孩子也会厌烦。于是,我把省下来的时间放手让学生去读和这篇文章题材一样的民间故事,像《孟姜女》《白蛇传》《梁山伯与祝英台》就是在这样的氛围中,在这样的背景下被学生读完的。像《安塞腰鼓》、《草原》这些文字较长,语言优美的文章,我让学生在作预习的时候就要多用一些时间读通读熟课文,在课堂上采用多种形式练习朗读直至背诵,使学生真正感受到语文课所独有的乐趣,用美的语言去感染孩子。对于课文的处理切忌牵着孩子的思路一段一段地引着讲。对于描写名人事迹的文章,如《钱学森》《詹天佑》《鞋匠的儿子》等课文,在课堂理解的同时,我又让学生当堂阅读了校本教材《一路花香》上的三篇文章《钱学森》《詹天佑小传》《伟大的平民总统——林肯》,既是对课文的一个拓展,又是向课外的一个延伸,让学生在更好地理解课文的同时,对人物、对中心有了更深一步的解读。
二、课内阅读指导、保障阅读质量
整合课本资源后,原来三堂课时间的教学内容,现在一节课就完成任务了,节省出的时间,就可以运用到课外阅读的指导。从五年级下学期开始坚持读《诺亚方舟》到现在的《一路花香》,学生已经读完了两本校本教材。本学期又向孩子们推荐了几本课外书《简爱》《鲁滨逊漂流记》《史记故事》《昆虫记》等。其次班内每人配备不同种类的书,以小组为单位成立了小小图书馆,同学之间互相传阅图书,保障了阅读的数量。在家长的配合指导下,提供的书籍孩子大都能主动阅读。我每周拿出一节课的时间评改学生记录的读书笔记,评选读书小明星,加以鼓励。课内开展的读书推荐活动,读书交流活动,保障了阅读质量。
三、生活化日记,展现阅读成果
对于孩子来说,培养阅读兴趣,激发写作欲望是语文教师应该重点关注的事情。通过自由的表达,真实的语境,才能全方位培养孩子的语文素养,使读书、识字、积累有更广的展示舞台。为此我多次举行生动有趣的活动,为孩子创造写作素材。语文课堂上,举行了:国庆联欢会、观察新同学、观看月全食、小小辩论会等一系列的活动;课外,我又指导学生进行了采访名人、采集落叶、去敬老院做好事、做剪报等一系列活动。因为这些活动,也涌现了一篇篇精彩的佳作,通过黑板报等形式展示孩子的作品,培养了孩子们的兴趣,提高了学生学语文的热情。
四、丰富多彩的语文实践活动,培养语文素养
利用三节课的时间,我组织学生举行了以“感恩祖国”为主题的的演讲比赛,要求脱稿演讲,即训练了记忆力,又锻炼了孩子的心理素质,更激发了孩子参加语文实践活动的兴趣。我还开展了写字比赛,评选写字小巧手,颁发荣誉证书,让孩子从小树立成就感。依托小组合作,我充分发挥每一个孩子的聪明才智,由小组长参与班级管理,制定组内评优制度,评选每周进步最大的孩子,形成了“比、学、赶、帮、超”的学风,现在班内事事有人做,人人有责任,形成了良好的班风。
五、培养了学生良好的读书习惯
书要静下心来读,这是读书最重要的习惯之一。如何把学生带进书本,让他沉浸在书的海洋,陶醉在书香中,创设良好阅读氛围至关重要。读书还要勤于动笔,所谓“好记性不如烂笔头”。课外阅读中,我让学生养成“不动笔墨不读书” 良好习惯,要求学生在阅读的同时还要写好读书笔记,读写结合,以读促写,根据学生的差异,为学生设计《读书笔记本》,让学生学会写摘抄式笔记——即教会学生在读书时,遇到优美的字、词、句、段、篇或名人名言、俗话谚语把它摘抄在读书笔记上;在读过书之后写下对所读书的体会,即读后感;在此基础上,要求学生不仅要求写好读后感觉,还要求能写出书评。在每周一节阅读指导课上,我对学生进行阅读指导,辅导学生作好阅读笔记或阅读报告。一段时间下来,学生养成了较好的读书习惯,促进了学生阅读与写作能力的提高。
受益于以上活动的开展,孩子们的阅读能力有了很大的提高。一学期的阅读量在几万字左右的孩子已超过了一半。这其中有家长的支持,有孩子们的付出,也有自己辛苦的劳作。思想决定行动,细节决定成败!虽说教无定法,但教者必须有心、有思、有悟、有所改变。改变中寻求永恒,只有树立大的语文观,改变一本书教一学期的思想,大胆放手去实践,才能实实在在的给孩子们留下点什么。在思索中前进,在实践中总结经验,我希望我的海量阅读之路能够越走越远,越走越顺。
第四篇:海量阅读(本站推荐)
曹庄小学语文“海量阅读”课题实施计划
一、指导思想:
结合联合校“阅读中外经典,享受读书乐趣”课题的研究,结合韩兴娥海量阅读和窦桂梅主题教学的学习,本学年研究的重点在“海量阅读”的研究上。以教材为原点,挖掘文本中蕴含的文化因子的辐射作用,以师生为资料链接的双主体,共同探寻相关阅读材料,并在这些参照文本的交互印证下,或体验、或证实、或演绎课文中已有的观念,使阅读的触角伸向文本的文化源头、作者的生命经验、学生的生命体验。在“法定”的语文学习时空内弥合“课内”与“课外”的鸿沟,让学生在有限的语文课堂内掌握最大量的信息,激发学生的阅读兴趣,从而达到语文学习的理想境界。培养课题组成员的课题研究能力,为提高教学质量打下扎实的基础。
二、研究内容:
1、探索培养小学生课外阅读兴趣的手段、途径。全面提高小学生课外阅读的兴趣。
2、扩大学生的阅读范围和质量,培养学生学习语文的能力,减轻负担,提高质量,从而全面提高语文课堂效率,使学生语文素养全面发展的课堂教学研究。
3、探索低、中、高年级积累能力的要求,构建小学阶段课外阅读中积累能力的层次、体系和指导模式。
4、初步探索适合小学生的单元教学模式,形成有效地课型。
三、具体工作:
1、制订计划:
召集课题组成员,制定本学期的课题研究计划,确定研究目标和研究内容,讨论课题组活动形式。向课题组教师提出明确的自学要求、规定每学期应完成的研究任务,扎扎实实的做好课题的研究工作。
2、理论学习与交流:
首先,我们将组织课题组成员对“课题研究方案”再次学习,进一步明确研究的目的,清晰研究的内容,加深对“海量阅读”有关概念的了解。
同时,我们将借助网络提供有关韩兴娥“海量阅读”及窦桂梅“主题教学”的学习材料,采取自主学习、集体交流的形式,在概念上面都有比较清晰的认识。
另外,我们会安排一些特级教师特别是窦桂梅老师的教学案例,学习在课堂实践中他们是如何利用课外文本来提高课堂教学的有效性,提高阅读理解能力,提升语文素养的。
在理论学习的基础上我们将专门组织课题组成员进行研讨沙龙活动,对学习的心得、实践中的思考与困惑等进行交流,在交流中碰撞出思维的火花,促进课题研究的深入。
3、课堂实践:
课题研究要基于课堂,立足于课堂,要在课堂教学实践中发现课内外文本最佳的契合点,发现激发学生阅读兴趣,提高阅读能力、积累丰富知识、提升语文素养的指导方式和方法,并形成一定的教学指导模式。本学期每月开展课堂专题研讨课一次,并邀请学校领导和各级领导对研讨课进行评点与指导。
本学期注重随堂课形式与效果,打算形成系统的教学案例与教案。
4、撰写论文:
组织教师积极撰写论文、教学案例,参加各级各类的评比。组织好课题优秀论文、优秀案例等的汇编工作,形成课题成果群。提高本组老师的科研能力。
四、每月工作安排: 10月:
1、调整课题组成员。
2、讨论课题组计划,制定课题实施方案。
3、上课题组研究课。11月:
1、组织课题组成员进行关于“海量阅读”的理论学习。
2、各实验教师根据自身的教学班级进行实验。12月:
1、各实验教师进行研讨。
3、上好两节课题研究课。1月:
1、学习相关理论,写好随笔。
2、上好两节课题上研究课。
3、进行课题组总结。
第五篇:大数据量,海量数据 处理方法总结
大数据量,海量数据 处理方法总结 大数据量的问题是很多面试笔试中经常出现的问题,比如baidu google 腾讯 这样的一些涉及到海量数据的公司经常会问到。
下面的方法是我对海量数据的处理方法进行了一个一般性的总结,当然这些方法可能并不能完全覆盖所有的问题,但是这样的一些方法也基本可以处理绝大多数遇到的问题。下面的一些问题基本直接来源于公司的面试笔试题目,方法不一定最优,如果你有更好的处理方法,欢迎与我讨论。1.Bloom filter 适用范围:可以用来实现数据字典,进行数据的判重,或者集合求交集
基本原理及要点:
对 于原理来说很简单,位数组+k个独立hash函数。将hash函数对应的值的位数组置1,查找时如果发现所有hash函数对应位都是1说明存在,很明显这 个过程并不保证查找的结果是100%正确的。同时也不支持删除一个已经插入的关键字,因为该关键字对应的位会牵动到其他的关键字。所以一个简单的改进就是 counting Bloom filter,用一个counter数组代替位数组,就可以支持删除了。还有一个比较重要的问题,如 何根据输入元素个数n,确定位数组m的大小及hash函数个数。当hash函数个数k=(ln2)*(m/n)时错误率最小。在错误率不大于E的情况 下,m至少要等于n*lg(1/E)才能表示任意n个元素的集合。但m还应该更大些,因为还要保证bit数组里至少一半为0,则m应 该>=nlg(1/E)*lge 大概就是nlg(1/E)1.44倍(lg表示以2为底的对数)。举个例子我们假设错误率为0.01,则此时m应大概是n的13倍。这样k大概是8个。
注意这里m与n的单位不同,m是bit为单位,而n则是以元素个数为单位(准确的说是不同元素的个数)。通常单个元素的长度都是有很多bit的。所以使用bloom filter内存上通常都是节省的。
扩展:
Bloom filter将集合中的元素映射到位数组中,用k(k为哈希函数个数)个映射位是否全1表示元素在不在这个集合中。Counting bloom filter(CBF)将位数组中的每一位扩展为一个counter,从而支持了元素的删除操作。Spectral Bloom Filter(SBF)将其与集合元素的出现次数关联。SBF采用counter中的最小值来近似表示元素的出现频率。问题实例:给你A,B两个文件,各存放50亿条URL,每条URL占用64字节,内存限制是4G,让你找出A,B文件共同的URL。如果是三个乃至n个文件呢? 根 据这个问题我们来计算下内存的占用,4G=2^32大概是40亿*8大概是340亿,n=50亿,如果
按出错率0.01算需要的大概是650亿个bit。现在可用的是340亿,相差并不多,这样可能会使出错率上升些。另外如果这些urlip是一一对应的,就可以转换成ip,则大大简单了。2.Hashing 适用范围:快速查找,删除的基本数据结构,通常需要总数据量可以放入内存
基本原理及要点:
hash函数选择,针对字符串,整数,排列,具体相应的hash方法。
碰撞处理,一种是open hashing,也称为拉链法;另一种就是closed hashing,也称开地址法,opened addressing。
扩展:
d-left hashing中的d是多个的意思,我们先简化这个问题,看一看2-left hashing。2-left hashing指的是将一个哈希表分成长度相等的两半,分别叫做T1和T2,给T1和T2分别配备一个哈希函数,h1和h2。在存储一个新的key时,同 时用两个哈希函数进行计算,得出两个地址h1[key]和h2[key]。这时需要检查T1中的h1[key]位置和T2中的h2[key]位置,哪一个 位置已经存储的(有碰撞的)key比较多,然后将新key存储在负载少的位置。如果两边一样多,比如两个位置都为空或者都存储了一个key,就把新key 存储在左边的T1子表中,2-left也由此而来。在查找一个key时,必须进行两次hash,同时查找两个位置。问题实例: 1).海量日志数据,提取出某日访问百度次数最多的那个IP。
IP的数目还是有限的,最多2^32个,所以可以考虑使用hash将ip直接存入内存,然后进行统计。3.bit-map 适用范围:可进行数据的快速查找,判重,删除,一般来说数据范围是int的10倍以下 基本原理及要点:使用bit数组来表示某些元素是否存在,比如8位电话号码
扩展:bloom filter可以看做是对bit-map的扩展 问题实例: 1)已知某个文件内包含一些电话号码,每个号码为8位数字,统计不同号码的个数。
8位最多99 999 999,大概需要99m个bit,大概10几m字节的内存即可。
2)2.5亿个整数中找出不重复的整数的个数,内存空间不足以容纳这2.5亿个整数。将bit-map扩展一下,用2bit表示一个数即可,0表示未出现,1表示出现一次,2表示出现2次及以上。或者我们不用2bit来进行表示,我们用两个bit-map即可模拟实现这个2bit-map。
4.堆 适用范围:海量数据前n大,并且n比较小,堆可以放入内存 基 本原理及要点:最大堆求前n小,最小堆求前n大。方法,比如求前n小,我们比较当前元素与最大堆里的最大元素,如果它小于最大元素,则应该替换那个最大元 素。这样最后得到的n个元素就是最小的n个。适合大数据量,求前n小,n的大小比较小的情况,这样可以扫描一遍即可得到所有的前n元素,效率很高。
扩展:双堆,一个最大堆与一个最小堆结合,可以用来维护中位数。问题实例: 1)100w个数中找最大的前100个数。
用一个100个元素大小的最小堆即可。
5.双层桶划分 适用范围:第k大,中位数,不重复或重复的数字
基本原理及要点:因为元素范围很大,不能利用直接寻址表,所以通过多次划分,逐步确定范围,然后最后在一个可以接受的范围内进行。可以通过多次缩小,双层只是一个例子。扩展: 问题实例: 1).2.5亿个整数中找出不重复的整数的个数,内存空间不足以容纳这2.5亿个整数。有点像鸽巢原理,整数个数为2^32,也就是,我们可以将这2^32个数,划分为2^8个区域(比如用单个文件代表一个区域),然后将数据分离到不同的区域,然后不同的区域在利用bitmap就可以直接解决了。也就是说只要有足够的磁盘空间,就可以很方便的解决。
2).5亿个int找它们的中位数。这个例子比上面那个更明显。首先我们将int划分为2^16个区域,然后读取数据统计落到各个区域里的数的个数,之后我们根据统计结果就可以判断中位数落到那个区域,同时知道这个区域中的第几大数刚好是中位数。然后第二次扫描我们只统计落在这个区域中的那些数就可以了。
实 际上,如果不是int是int64,我们可以经过3次这样的划分即可降低到可以接受的程度。即可以先将int64分成2^24个区域,然后确定区域的第几 大数,在将该区域分成2^20个子区域,然后确定是子区域的第几大数,然后子区域里的数的个数只有2^20,就可以直接利用direct addr table进行统计了。6.数据库索引 适用范围:大数据量的增删改查 基本原理及要点:利用数据的设计实现方法,对海量数据的增删改查进行处理。扩展: 问题实例: 7.倒排索引(Inverted index)适用范围:搜索引擎,关键字查询 基本原理及要点:为何叫倒排索引?一种索引方法,被用来存储在全文搜索下某个单词在一个文档或者一组文档中的存储位置的映射。
以英文为例,下面是要被索引的文本: T0 = “it is what it is” T1 = “what is it” T2 = “it is a banana” 我们就能得到下面的反向文件索引: “a”: {2} “banana”: {2} “is”: {0, 1, 2} “it”: {0, 1, 2} “what”: {0, 1}
检索的条件“what”, “is” 和 “it” 将对应集合的交集。正 向索引开发出来用来存储每个文档的单词的列表。正向索引的查询往往满足每个文档有序频繁的全文查询和每个单词在校验文档中的验证这样的查询。在正向索引 中,文档占据了中心的位置,每个文档指向了一个它所包含的索引项的序列。也就是说文档指向了它包含的那些单词,而反向索引则是单词指向了包含它的文档,很 容易看到这个反向的关系。扩展: 问题实例:文档检索系统,查询那些文件包含了某单词,比如常见的学术论文的关键字搜索。8.外排序 适用范围:大数据的排序,去重 基本原理及要点:外排序的归并方法,置换选择 败者树原理,最优归并树
扩展:
问题实例: 1).有一个1G大小的一个文件,里面每一行是一个词,词的大小不超过16个字节,内存限制大小是1M。返回频数最高的100个词。这个数据具有很明显的特点,词的大小为16个字节,但是内存只有1m做hash有些不够,所以可以用来排序。内存可以当输入缓冲区使用。9.trie树 适用范围:数据量大,重复多,但是数据种类小可以放入内存 基本原理及要点:实现方式,节点孩子的表示方式 扩展:压缩实现。问题实例: 1).有10个文件,每个文件1G,每个文件的每一行都存放的是用户的query,每个文件的query都可能重复。要你按照query的频度排序。
2).1000万字符串,其中有些是相同的(重复),需要把重复的全部去掉,保留没有重复的字符串。请问怎么设计和实现?
3).寻找热门查询:查询串的重复度比较高,虽然总数是1千万,但如果除去重复后,不超过3百万个,每个不超过255字节。10.分布式处理 mapreduce 适用范围:数据量大,但是数据种类小可以放入内存
基本原理及要点:将数据交给不同的机器去处理,数据划分,结果归约。
扩展:
问题实例: 1).The canonical example application of MapReduce is a process to count the appearances of
each different word in a set of documents:
void map(String name, String document):
// name: document name
// document: document contents
for each word w in document: EmitIntermediate(w, 1);void reduce(String word, Iterator partialCounts): // key: a word // values: a list of aggregated partial counts int result = 0;for each v in partialCounts: result += ParseInt(v);Emit(result);Here, each document is split in words, and each word is counted initially with a “1” value by
the Map function, using the word as the result key.The framework puts together all the pairs
with the same key and feeds them to the same call to Reduce, thus this function just needs to
sum all of its input values to find the total appearances of that word.2).海量数据分布在100台电脑中,想个办法高效统计出这批数据的TOP10。
3).一共有N个机器,每个机器上有N个数。每个机器最多存O(N)个数并对它们操作。如何找到N^2个数的中数(median)? 经典问题分析 上千万or亿数据(有重复),统计其中出现次数最多的前N个数据,分两种情况:可一次读入内存,不可一次读入。
可用思路:trie树+堆,数据库索引,划分子集分别统计,hash,分布式计算,近似统计,外排序
所 谓的是否能一次读入内存,实际上应该指去除重复后的数据量。如果去重后数据可以放入内存,我们可以为数据建立字典,比如通过 map,hashmap,trie,然后直接进行统计即可。当然在更新每条数据的出现次数的时候,我们可以利用一个堆来维护出现次数最多的前N个数据,当 然这样导致维护次数增加,不如完全统计后在求前N大效率高。
如果数据无法放入内存。一方面我们可以考虑上面的字典方法能否被改进以适应这种情形,可以做的改变就是将字典存放到硬盘上,而不是内存,这可以参考数据库的存储方法。
当 然还有更好的方法,就是可以采用分布式计算,基本上就是map-reduce过程,首先可以根据数据值或者把数据hash(md5)后的值,将数据按照范 围划分到不同的机子,最好可以让数据划分后可以一次读入内存,这样不同的机子负责处理各种的数值范围,实际上就是map。得到结果后,各个机子只需拿出各 自的出现次数最多的前N个数据,然后汇总,选出所有的数据中出现次数最多的前N个数据,这实际上就是reduce过程。实际上可能想直 接将数据均分到不同的机子上进行处理,这样是无法得到正确的解的。因为一个数据可能被均分到不同的机子上,而另一个则可能完全聚集到一个机子上,同时还可 能存在具有相同数目的数据。比如我们要找出现次数最多的前100个,我们将1000万的数据分布到10台机器上,找到每台出现次数最多的前 100个,归并之后这样不能保证找到真正的第100个,因为比如出现次数最多的第100个可能有1万个,但是它被分到了10台机子,这样在每台上只有1千 个,假设这些机子排名在
1000个之前的那些都是单独分布在一台机子上的,比如有1001个,这样本来具有1万个的这个就会被淘汰,即使我们让每台机子选 出出现次数最多的1000个再归并,仍然会出错,因为可能存在大量个数为1001个的发生聚集。因此不能将数据随便均分到不同机子上,而是要根据hash 后的值将它们映射到不同的机子上处理,让不同的机器处理一个数值范围。
而外排序的方法会消耗大量的IO,效率不会很高。而上面的分布式方法,也可以用于单机版本,也就是将总的数据根据值的范围,划分成多个不同的子文件,然后逐个处理。处理完毕之后再对这些单词的及其出现频率进行一个归并。实际上就可以利用一个外排序的归并过程。
另外还可以考虑近似计算,也就是我们可以通过结合自然语言属性,只将那些真正实际中出现最多的那些词作为一个字典,使得这个规模可以放入内存。