高中信息技术必修1《文本数据处理-探寻〈红楼梦〉高频人物》教学设计_第1页
高中信息技术必修1《文本数据处理-探寻〈红楼梦〉高频人物》教学设计_第2页
高中信息技术必修1《文本数据处理-探寻〈红楼梦〉高频人物》教学设计_第3页
高中信息技术必修1《文本数据处理-探寻〈红楼梦〉高频人物》教学设计_第4页
高中信息技术必修1《文本数据处理-探寻〈红楼梦〉高频人物》教学设计_第5页
已阅读5页,还剩10页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

高中信息技术必修1《文本数据处理——探寻〈红楼梦〉高频人物》教学设计一、教材与标准解读本课选自浙教版(2019)高中信息技术必修1第4章“数据与信息”第2节“数据处理”第4课时“文本数据处理”。教材以“谁是《红楼梦》里出场次数最多的人”为驱动任务,旨在引导学生经历从非结构化文本到结构化数据的转化全过程。新课标明确要求,在“数据与信息”模块中,学生应理解数据的表示、存储与处理方法,掌握文本数据的获取、清洗、转换与分析基本技能,形成数据意识与计算思维。本课不仅是技能教学的载体,更是跨学科主题学习的典型场域,要求教师将技术细节置于真实问题情境中,避免陷入语法教学的碎片化误区。二、学情分析学生已完成Python基础语法、列表与字典数据结构、文件读写操作等前置学习。他们具备基础的程序阅读与调试能力,但普遍缺乏处理真实“大文本”的工程经验。面对《红楼梦》全文近73万字的语料,学生直觉上倾向于简单的字符串计数,易忽略“贾宝玉”与“宝玉”“宝二爷”指代同一实体的实体消歧问题,也难以识别“林妹妹”“黛玉”共指的复杂性。此外,学生对编码格式、停用词过滤、分词精度等工程细节缺乏敏感度,极易因路径错误、编码冲突、内存溢出等非算法问题中断探究。教学需搭建脚手架,引导学生从“写代码”转向“解决问题”,建立数据处理的全流程视野。三、教学目标1.信息意识:识别非结构化文本中的噪声与冗余,理解数据清洗对分析结果的决定性影响,树立“数据质量决定分析上限”的质量观。2.计算思维:掌握文本预处理(读取、编码转换、去噪、分词、停用词过滤、实体归一化)的标准化流程;构建基于字典的词频统计模型,理解哈希映射在大规模计数中的时空效率优势。3.数字化学习与创新:熟练使用jieba分词库、词云可视化工具,设计实体别名映射表解决指代消歧;通过参数调优对比不同分词模式(精确/全/搜索引擎模式)对结果的影响,体验“模型数据反馈”的迭代建模循环。4.信息社会责任:尊重版权边界,规范引用公开语料;辨析统计结果与文学常识的偏差,批判性看待数据结论,不盲目迷信算法输出。四、重难点突破策略重点:文本数据清洗与结构化转化的完整代码实现,特别是实体归一化映射表的构建与应用逻辑。难点:分词粒度与实体识别的矛盾调和——如何在不引入命名实体识别(NER)重型模型的前提下,利用规则与词典实现高准确率的人物共指消解。突破路径:采用“半成品代码+缺陷诊断+迭代优化”教学范式。预置包含典型错误(编码报错、分词碎片化、别名未合并)的基线代码,引导学生通过对比输出、定位异常、修补逻辑三步走,内化处理经验。引入“人物别名词典”这一领域知识外部化工具,将文学常识显性化为计算资源,降低算法复杂度,体现“人机协同”智慧。五、教学环节设计(一)情境导入:数据背后的文学密码(8分钟)投屏展示《红楼梦》前八十回人物出场统计的两组对比图:一组为网络流传的“贾宝玉1000+次,林黛玉800+次”的粗略统计,另一组为红学专家考证的“宝玉称谓超30种,黛玉称谓超20种”的语言学事实。提问:“同一小说,为何统计结果天差地别?作为信息技术学习者,我们能否给出一个经得起推敲的答案?”学生自由发言,教师记录关键词:称谓多样性、分词边界、统计口径。引出核心任务——设计程序,还原真实高频人物谱系。(二)概念建构:文本数据的结构化认知(10分钟)讲解非结构化数据特征:无固定模式、语义隐含、噪声丰富。对比结构化数据(CSV表格)与非结构化数据(TXT全文)的存储差异。演示用记事本打开《红楼梦》全文文件,观察回次标记“第一回”、换行符、标点符号、空白字符。引导学生抽象出文本处理四阶段模型:获取(读取与编码)→清洗(去噪与规范化)→转换(分词与结构化)→分析(统计与建模)。强调每阶段均面临“信息损失”与“引入偏差”的风险,需权衡取舍。(三)算法建模:从字符串匹配到词频统计(12分钟)现场演示三种统计思路的代码片段与输出对比。思路一:字符串原生count方法。count=text.count("贾宝玉")缺陷:无法覆盖“宝玉”“宝二爷”“宝兄弟”等别名;无法区分“宝玉镯”“宝玉汤”等非人名实体。思路二:分词后遍历列表计数。words=jieba.lcut(text)freq={}forwinwords:ifwintarget_names:freq[w]=freq.get(w,0)+1缺陷:分词粒度导致“林黛玉”可能被切分为“林/黛玉/林黛玉”,计数破碎;别名仍未合并。思路三:实体归一化映射+字典累加(核心模型)。构建映射字典:alias_map={"宝玉":"贾宝玉","宝二爷":"贾宝玉","林妹妹":"林黛玉","黛玉":"林黛玉"...}规范化逻辑:norm_name=alias_map.get(word,word)统计逻辑:freq[norm_name]=freq.get(norm_name,0)+1引导学生分析思路三的时空复杂度:分词O(N),映射查找O(1),统计O(M),总体线性级,适合百万字级语料。讲解字典哈希机制支撑高频更新的原理,建立数据结构与算法效率的联结。(四)代码实战:工程化落地与异常处理(35分钟)1.环境准备与语料获取发放预置资源包:hlm.txt(UTF8编码全文)、stopwords.txt(哈工大停用词表)、alias_dict.json(精心整理的50+核心人物别名映射表,含标准名、别名列表、过滤词条)。指导学生检查文件编码,演示chardet自动检测与手动指定encoding='utf8'的区别,规避UnicodeDecodeError。2.清洗模块:正则表达式的精准应用提供半成品函数clean_text(raw),学生补全正则规则:去除回次标记:re.sub(r'第[一二三四五六七八九十百千万\d]+回.?\n','',raw)去除标点符号与特殊字符:re.sub(r'[^\u4e00\u9fa5azAZ09]','',raw)合并多余空白:re.sub(r'\s+','',raw)学生运行并打印前500字符,验证清洗效果,重点检查“第—回”“甲戌本”“庚辰本”等版本标记是否残留。3.分词与停用词过滤对比jieba三种模式输出:精确模式:lcut(sentence,cut_all=False)—适合统计,粒度粗。全模式:lcut(sentence,cut_all=True)—适合搜索,冗余大。搜索引擎模式:lcut_for_search(sentence)—长词拆解细。学生设计实验,统计“凤姐儿”“王熙凤”在三模式下的词频差异,得出结论:人物统计首选精确模式+自定义词典。指导学生用jieba.load_userdict加载人物标准名列表,强制保护实体不被切分。4.实体归一化核心逻辑学生编写normalize_entity(word,alias_map)函数,实现:若word在alias_map键中,返回对应标准名;若word在标准名集合中,原样返回;否则返回None(非目标实体)。教师巡场重点排查:映射表键值对方向是否反向、停用词过滤是否误删“不”(人名如“贾不假”)、单字名(如“芳”“菱”)是否被过滤。5.统计与排序输出使用collections.Counter优化计数:fromcollectionsimportCountercounter=Counter(valid_entities)top20=counter.most_mon(20)导出CSV结果文件,包含列:排名、标准名、出场次数、别名覆盖数。(五)结果可视化与批判性解读(15分钟)6.词云生成与美化引入wordcloud库,核心参数讲解:font_path(必须指定中文字体如SimHei.ttf,否则显示方块)、mask(遮罩图塑形)、color_func(色彩映射)。学生尝试加载“红楼梦”书影剪影作为mask,生成专属词云。7.数据溯源与异常研判展示班级典型输出Top10:1贾宝玉32152林黛玉18923王熙凤14564薛宝钗11025贾母987……组织“数据侦探”小组赛:每组领取一张“异常现象卡”,如“为何‘人’字高频?为何‘宝玉’未并入贾宝玉?为何‘老太太’计数远低于‘贾母’?”。学生需回溯代码、检查映射表、查阅原文语境,在10分钟内完成根因分析与修正方案汇报。典型案例复盘:现象:“宝玉”计数为0。溯源:jieba精确模式下“宝玉”被识别为单词,但alias_map键为“宝玉”,映射应生效。深查:原文多为“宝玉道”“宝玉笑”“宝玉听了”,分词结果为“宝玉/道”“宝玉/笑”,映射逻辑仅匹配精确词“宝玉”,未覆盖“宝玉道”。修正:在分词后追加规则——若词以标准名/别名开头且长度>2,尝试提取前缀匹配;或更稳健地,在清洗阶段用正则将“宝玉道”“宝玉笑”替换为“宝玉”。对比两种修正策略对语义完整性的影响,体会“激进清洗”风险。8.文学常识与算法输出的对话引用红学大家周汝昌先生考证:“宝玉出场虽最多,但黛玉心理描写最细。”引导学生思考:词频≠重要度≠核心度。提出改进指标——TFIDF加权、共现网络中心度、语义角色标注,为选修模块“数据分析与可视化”埋下伏笔。(六)拓展迁移:大规模文本处理的工程思维(10分钟)抛出挑战任务:“若语料扩大至《二十四史》清洗版(约4亿字),单机Python脚本将面临何种瓶颈?”学生分组讨论,教师汇总关键点:内存瓶颈:全文读入内存崩溃→流式处理/生成器分块读取。计算瓶颈:单线程CPU占用100%→多进程并行MapReduce思想。分词瓶颈:jieba纯Python实现速度慢→C++内核分词器(如cppjieba)、分布式分词服务。存储瓶颈:中间结果文件过大→数据库/列式存储/压缩格式。讲解生成器yield实现惰性分块读取代码模式,演示10万行日志文件的流式词频统计,体会“以空间换时间”与“流式计算”的工程智慧。引申介绍Spark/Flink大数据生态,拓宽技术视野。六、教学反思与延伸本课实践后,发现学生最大收获非语法掌握,而是建立了“数据血缘”意识——每一个统计数字背后,都有清洗规则、分词策略、映射表版本等一长串决策链条。教学中仍有遗憾:受限课时,未深入正则表达式贪婪/非贪婪匹配陷阱、未实战共现网络构建(Gephi导入)。后续可衔接项目式学习“红楼梦人物社交网络分析”,引入NetworkX库,从节点属性(词频/度中心性/介数中心性)到社团划分(Louvain算法),将文本处理推向网络科学与数字人文交叉前沿。附件:核心代码框架(学生版填空骨架)importreimportjiebafromcollectionsimportCounterimportjsondefload_resources():withopen('hlm.txt','r',encoding='utf8')asf:raw=f.read()withopen('stopwords.txt','r',encoding='utf8')asf:stops=set(line.strip()forlineinf)withopen('alias_dict.json','r',encoding='utf8')asf:alias_map=json.load(f)结构:{"别名":"标准名",...}standard_names=set(alias_map.values())构建自定义词典列表user_dict=list(standard_names)+list(alias_map.keys())jieba.load_userdict(user_dict)returnraw,stops,alias_map,standard_namesdefclean_text(raw):TODO:补全正则规则text=re.sub(r'第[一二三四五六七八九十百千万\d]+回.?\n','',raw)text=re.sub(r'[^\u4e00\u9fa5azAZ09]','',text)text=re.sub(r'\s+','',text)returntext.strip()defnormalize(word,alias_map,standard_names):TODO:实现归一化逻辑ifwordinalias_map:returnalias_map[word]ifwordinstandard_names:returnwordreturnNonedefmain():raw,stops,alias_map,standard_names=load_resources()text=clean_text(raw)words=jieba.lcut(text,cut_all=False)entities=[]forwinwords:ifwinstopsorlen(w)<2:continuenorm=normalize(w,alias_map,standard_names)ifnorm:entities.append(norm)counter=Counter(entities)top20=counter.most_mon(20)print(f"{'排名':<4}{'人物':<8}{'出场次数':<8}{'别名数'}")fori,(name,cnt)inenumerate(top20,1):alias_cnt=sum(1fork,vinalias_map.i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论