高中信息技术一年级《算法与程序综合应用-jieba库实现中文分词》教学设计_第1页
高中信息技术一年级《算法与程序综合应用-jieba库实现中文分词》教学设计_第2页
高中信息技术一年级《算法与程序综合应用-jieba库实现中文分词》教学设计_第3页
高中信息技术一年级《算法与程序综合应用-jieba库实现中文分词》教学设计_第4页
高中信息技术一年级《算法与程序综合应用-jieba库实现中文分词》教学设计_第5页
已阅读5页,还剩11页未读, 继续免费阅读

下载本文档

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

文档简介

高中信息技术一年级《算法与程序综合应用——jieba库实现中文分词》教学设计一、教材与单元定位本节课选自人教中图版高中信息技术必修一《数据与计算》模块第二单元“算法与程序综合应用”第4课时。教材以“文本数据处理”为核心载体,旨在引导学生经历从问题建模、算法设计、程序实现到结果评价的完整计算思维过程。jieba库作为Python生态中最成熟的中文分词工具,其底层涉及基于词典的最大概率路径查找、隐马尔可夫模型(HMM)解决未登录词识别等核心算法思想,是连接基础语法与自然语言处理(NLP)前沿应用的最佳桥梁。本课不单纯讲授API调用,而是剖析“分词”二字背后的算法逻辑,让学生在真实工程库的阅读与使用中,完成从“代码编写者”向“算法理解者”与“工程实践者”的角色跨越。二、核心素养导向的教学目标1.信息意识:能在海量非结构化文本数据中识别隐性价值,理解分词作为文本结构化预处理的关键环节,在搜索引擎、舆情分析、智能问答等场景中建立数据预处理的敏锐度。2.计算思维:掌握基于前缀词典的有向无环图(DAG)构建与动态规划求最短路径/最大概率路径的核心算法模型;能运用分治、贪心、概率统计等思想分析精确模式、全模式、搜索引擎模式的异同;具备针对领域文本(如医疗、法律、古诗词)构建用户词典、调整词频、引入HMM模型解决歧义与未登录词的工程化问题建模能力。3.数字化学习与创新:熟练使用jieba库完成分词、词性标注、关键词提取(TFIDF/TextRank)全流程操作;能设计针对特定语料的分词优化方案,开发可视化分词对比工具或简易舆情关键词监测原型,体验从脚本编写到微型软件工程的完整迭代周期。4.信息社会责任:明确文本数据采集的合规边界(遵守robots协议、版权法、数据安全法),理解分词过程中可能涉及的隐私切片风险,树立技术向善、算法公正的工程伦理观。三、学情分析与教学策略决策学生已完成必修一第一单元“数据编码与表示”及本单元前三课时的Python基础语法、函数封装、文件读写、第三方库安装与虚拟环境管理学习。但普遍存在三个认知断层:一是对“库”认知停留在“黑盒调用”,缺乏阅读源码、理解内部数据结构(如Trie树/DAG图)的习惯;二是面对真实语料(含噪声、专有名词、歧义)时,缺乏定量评价指标(精确率、召回率、F1值)驱动的优化闭环意识;三是协作开发经验欠缺,不善用Git版本控制、单元测试、需求文档管理项目。基于此,确立“源码导读+工程实战+度量驱动”三位一体策略:•源码导读:精选jieba核心模块`finalseg.py`、`__init__.py`片段,引导学生追踪DAG构建、动态规划路径计算、HMM维特比算法调用链路,将抽象算法落地为可读Python代码。•工程实战:引入真实语料(政府工作报告、电商评论、古诗词集),设计分层任务链,从基础分词到领域适配,再到关键词提取与可视化部署。•度量驱动:引入人工标注标准集,强制要求每次优化(加词典、调频率、切模式)必须产出量化对比报告,倒逼学生从“凭感觉调参”转向“看指标迭代”。四、重难点突破路径重点:jieba三大分词模式底层算法差异的代码级呈现;用户词典机制与动态调整词频(`suggest_freq`)对DAG图结构的实时重构影响;TFIDF与TextRank关键词提取的数学原理直观化与工程落地。难点:隐马尔可夫模型在未登录词识别中的状态转移与发射概率矩阵构建过程;动态规划在DAG图上求最大概率路径时的边界条件处理与时间复杂度分析;多线程并行分词(`jieba.enable_parallel`)在GIL限制下的实际加速比测试与瓶颈定位。五、教学过程设计(共6课时,每课时45分钟)(一)课时1:问题情境与算法建模——从“切不准”到“懂原理”1.情境引入(5分钟)投屏展示三条真实分词错误案例:•“乒乓球拍卖尽了”→精确模式:[乒乓球,拍卖,尽,了]/正确:[乒乓球拍,卖,尽,了]•“他来到了网易杭研大厦”→默认未登录词:[他,来到,了,网易,杭,研,大厦]/正确:[网易杭研]•“结婚的和尚未结婚的”→歧义切分:[结婚,的,和,尚未,结婚,的]/正确:[结婚,的,和尚,未,结婚,的]提问:同一个字符串,为何机器会产生截然不同的理解?核心矛盾在于:中文无天然分隔符,词典覆盖永不完全,歧义消除需上下文语义支撑。这就是本节课要攻克的“中文分词”工程难题。2.算法建模核心讲授(25分钟)建模步骤一:字符串→有向无环图(DAG)在白板上实时推演句子“经常有意见分歧”构建DAG过程:•遍历字符串每个位置i,向后扫描j(i≤j<n),若s[i:j+1]在词典中(或单字),添加有向边i→j+1。•词典存储采用Trie树(前缀树),查找复杂度O(L),L为词长。•结果:节点0(经)→1(常)→2(有)→3(意见)→4(分歧)…同时存在0→2(经常)、3→5(意见分歧)等跨越边。建模步骤二:DAG→最大概率路径(动态规划)定义状态:`dp[i]`表示从位置i到结尾的最大概率路径对数概率和。状态转移方程:`dp[i]=max(log(freq(s[i:j+1])/total)+dp[j+1])`,遍历所有出边i→j+1。边界:`dp[n]=0`。回溯路径即得最优分词序列。建模步骤三:未登录词→HMM序列标注状态集{B(始),M(中),E(末),S(单)}。观测序列为汉字。维特比算法求解最优状态序列,映射回分词边界。现场演示Python伪码实现核心DP逻辑(不依赖jieba),加深算法内化。3.源码追踪实战(15分钟)学生打开本地jieba源码(`sitepackages/jieba/__init__.py`),定位`cut_DAG`函数与`calc`函数。任务单:•找出DAG字典构建代码段,解释`route`变量结构。•定位动态规划回溯循环,对应白板推导的`dp`与`path`数组。•搜索`re_han`正则,理解中英文分离预处理逻辑。教师巡场重点纠正:`freq`获取时的默认值处理、对数概率避免下溢的工程细节、缓存机制(`lru_cache`)对性能的贡献。(二)课时2:三大模式横向评测与工程选型4.实验设计指导(10分钟)发放《分词模式对比实验记录表》,包含字段:测试语料、模式、分词结果、人工标注一致性、耗时(ms)、词汇表覆盖率(OOV率)。语料包准备(共享网盘):•语料A:标准新闻语料(人日语料库片段,约5000字)•语料B:口语化微博评论(含网络用语、错别字,约3000字)•语料C:古诗词集(唐诗三百首,无标点,约2000字)•语料D:医疗电子病历脱敏片段(专业术语密集,约2000字)5.分组协作开发(25分钟)四人小组,角色分工:驱动员(写码)、领航员(查文档/看源码)、记录员(填表/截图)、质量官(跑测试/算指标)。核心代码框架(学生自主补全):```pythonimportjieba,time,jieba.analysefromevaluateimportprecision_recall_f1教师提供简易评价函数defbenchmark(text,gold_standard,mode='default'):start=time.perf_counter()ifmode=='default':seg=jieba.lcut(text)elifmode=='full':seg=jieba.lcut(text,cut_all=True)elifmode=='search':seg=jieba.lcut_for_search(text)elapsed=(time.perf_counter()start)1000p,r,f1=precision_recall_f1(seg,gold_standard)oov=cal_oov_rate(seg,jieba.dt.FREQ)统计切出词不在词典比例returnseg,elapsed,p,r,f1,oov```质量官负责运行脚本,记录员填表。教师重点巡查:全模式在语料C古诗词中产生的组合爆炸现象;搜索引擎模式在语料A长词再切分对召回率提升的量化贡献。6.结论汇报与辩论(10分钟)各组派代表汇报核心发现,教师引导辩论:•“全模式毫无用处?”→反驳:NER实体识别候选生成、搜索引擎倒排索引扩展召回场景下有价值。•“精确模式就最好?”→反驳:OOV率高时召回率崩塌,需结合HMM与用户词典。•总结选型决策树:通用文本首选精确+HMM;搜索业务叠加搜索引擎模式;领域强专业术语必须外挂词典;实时性极敏感场景考虑关闭HMM或并行加速。(三)课时3:领域适配实战——用户词典与词频调优7.痛点直击(5分钟)展示语料D医疗文本分词惨状:“冠心病合并心衰”→[冠心,病合,并,心衰];“左室射血分数”→[左室,射血,分数]。提问:不改源码、不训练模型,仅用jieba提供的公开接口,如何在30分钟内将医疗术语F1提升至0.9+?8.机制深度解析(15分钟)用户词典加载机制:`jieba.load_userdict(file)`→解析每行`词词频词性`→调用`self.add_word(word,freq,tag)`→核心动作:`self.dict[word]=freq`更新主词典频率表+`self.trie.add(word)`向Trie树插入新路径+`self.re_han/re_skip`正则重新编译(触发缓存失效)。动态调频`suggest_freq(segment,tune=True)`:原理是临时组合词频=min(子词频率)系数,强制在DAG中添加跨越边,若`tune=True`则永久写入词典。词性标注映射:兼容jieba自有标签集与PKU标签集,`posseg.cut`底层调用`POSTokenizer`,基于词典词性概率与HMM转移概率联合解码。9.迭代优化冲刺(25分钟)任务:利用提供的《医疗术语词典.txt》(含5000+实体,词频按专业重要性预设),完成三轮迭代:•轮1:直接加载词典,跑基线。•轮2:针对“冠心病合并心衰”此类组合实体,编写脚本自动提取共现高频ngram,批量`add_word`或`suggest_freq`。•轮3:引入规则后处理(正则/依存句法片段),修正“左室射血分数”因“分数”高频被切断的问题。每轮结束必须输出:修改前后对比表、错误案例分类统计表、耗时变化图。教师重点指导:词典过大导致Trie树内存膨胀、加载超时的工程权衡;`jieba.initialize()`延迟加载机制在Web服务热启动中的应用。(四)课时4:关键词提取——从分词到语义洞察10.理论直观化(15分钟)TFIDF:不讲公式推导,用“词在文档频繁×词在语料稀有=区分度高”直观解释。现场演示`jieba.analyse.extract_tags`源码中`idf.txt`加载、停用词过滤、加权求TopK全过程。TextRank:类比PageRank,构建词共现图(窗口大小5),迭代收敛公式:`S(Vi)=(1d)+dΣ(Vj∈In(Vi))(wji/Σwjk)S(Vj)`。重点讲解无向加权图构建、阻尼系数d=0.85经验值、收敛阈值设定。对比两者:TFIDF依赖全局语料统计,适合单文档快速提取;TextRank利用局部共现结构,无需背景语料,适合新鲜短文本。11.可视化开发任务(30分钟)需求:开发一个StreamlitWeb应用,支持文件上传/文本粘贴,侧边栏选择算法(TFIDF/TextRank)、TopK、词性过滤(名词/动词/自定义),主界面展示:关键词权重条形图、词云图、原文高亮标注、分词明细表格可CSV。技术栈:`streamlit`,`jieba.analyse`,`pyecharts`/`wordcloud`,`pandas`。分组协作,教师提供骨架代码与部署检查清单(requirements.txt、.gitignore、Dockerfile雏形)。成果交付:GitHub仓库链接,包含README、运行截图、针对语料A/B/C/D的提取效果主观评价记录。(五)课时5:综合项目——舆情关键词监测原型系统12.项目发布与需求分析(10分钟)场景:某品牌运营团队需每日监测微博/新闻平台品牌相关舆情,自动输出“高频热词”、“负面词预警”、“趋势变化”三张报表。非功能需求:单次处理10万条评论<2分钟;支持增量更新词典;异常日志可追溯。13.架构设计与分模块编码(30分钟)模块拆解:•`crawler.py`:模拟请求(仅教学用合规静态数据集)、清洗(去HTML/Emoji/重复)、存储SQLite。•`processor.py`:核心管线。`jieba.enable_parallel(4)`→分词→停用词过滤→词性保留(n/v/a)→计数聚合→TFIDF/TextRank双算法融合(加权平均)→负面词典匹配(扩展自知网Hownet)→时间窗口滑动统计。•`reporter.py`:Jinja2渲染HTML报表,ECharts动态交互图表,关键词钻取查看上下文语境。•`main.py`:APScheduler定时任务调度、异常捕获邮件告警、配置文件`config.yaml`解耦参数。学生按模块认领,接口契约由教师统一定义(如`cess(batch:List[str])>Dict`),强制进行单元测试编写(pytest覆盖率>80%)。14.压力测试与复盘(5分钟)使用`locust`模拟并发触发定时任务,观察内存泄漏、GIL锁竞争、数据库锁等待。引导学生发现`jieba.enable_parallel`实际加速比仅1.8倍(4核),分析原因:进程间通信开销、词典序列化传输、结果合并排序瓶颈。提出优化方向:预分词缓存、Rust/Cython重写热点路径、切换`cppjieba`或`thulac`。(六)课时6:成果答辩与元认知反思15.答辩会(30分钟)每组5分钟演示:系统架构图、核心算法选型理由、关键难点攻关过程、量化指标对比图、代码规范与工程化亮点、遗留技术债与迭代规划。评委团(教师+选邀企业导师/优秀校友)按《核心素养评价量表》打分:•算法理解深度(25%):能否白板手写DAG+DP/HMM核心流程?•工程落地能力(30%):代码结构、异常处理、日志、测试、部署脚本完备度。•问题解决实效(25%):领域适配F1提升幅度、系统吞吐率、报表业务可用性。•协作与表达(20%):Git提交记录均衡度、答辩逻辑清晰度、对同伴提问的建设性反馈。16.元认知总结与延伸(15分钟)引导学生书面完成《学习路径复盘卡》:•最初认为分词只是`lcut()`,现在理解的三层境界是什么?(API调用→算法建模DAG/DP/HMM→工程体系:词典维护/评价体系/并行部署/业务闭环)•遇到的最大认知冲突及如何解决?(如:全模式看似无用实则有场景;精确模式依赖词典质量而非算法优劣;并行加速受限于GIL与IO)•如果重来一次,架构上会怎么改?(微服务化分词服务、引入向量检索替代关键词匹配、接入大模型微调做少样本领域适配)教师收集复盘卡,作为下学期选修课《自然语言处理进阶》分层分组依据。六、评价体系设计采用“过程性评价(50%)+项目产出(30%)+答辩表现(20%)”模式,拒绝单一卷面考试。1.过程性评价(全程留痕):•源码阅读笔记本(手写/电子笔记,含流程图、关键变量表、疑问点):占15%。•实验记录表与迭代优化报告(四课时实验数据完整性、分析深度):占20%。•Git贡献图与代码评审记录(mit信息规范、CodeReview评论质量、冲突解决记录):占15%。2.项目产出评价(制品导向):•可视化分词对比工具(功能完备、界面交互、异常兜底、文档齐全):占15%。•舆情监测原型系统(架构合理性、核心指标达标、工程规范、创新点):占15%。3.答辩表现(现场考察):•核心问题响应(现场白板推导、代码定位、权衡分析):占10%。•团队协作叙事(角色贡献可视化、冲突化解案例、集体成长故事):占10%。七、教学资源与环境保障1.云端统一开发环境:学校部署JupyterHub+VSCodeServer+GitLab一体化平台,预装Python3.11、jieb

温馨提示

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

评论

0/150

提交评论