8月21日打卡

发布时间:2026/10/16 8:14:27

8月21日打卡 太棒了把知识整理成笔记是最高效的内化方式。这份笔记你不用死记硬背而是当成你的“武功秘籍”面试前看一遍思路瞬间清晰。我帮你把核心心法、完整代码已修Bug、执行流程图、面试话术全部整理成了一份极简笔记直接复制保存就行。 BERT WordPiece 分词 —— 终极笔记面试自救版一、核心思路面试时 30 秒讲清楚一句话概括WordPiece 是一种子词分词算法。它先把句子按空格切分成大词然后对每个大词采用贪心的最长匹配策略从右向左缩短尝试匹配词典。如果后半部分不是词的开头就加上##前缀表示它要粘在前面。实在找不到就标记为[UNK]。三个灵魂要点必须脱口而出为什么要用子词解决未登录词OOV问题平衡词表大小比如“睡觉”拆成“睡”和“##觉”。##是什么表示该子词不是单词的开头必须跟在别的词后面帮助模型理解词根。匹配规则是什么从长到短最长优先词典里有谁就切谁。二、完整可运行代码纯手工版已修复原图所有 Bug# 1. 预处理清洗空格defwhitespace(text):iftextisNone:return[]# 去掉前后空格按空白切分returntext.strip().split()# 2. 主函数WordPiece 分词deftokenize(text,vocab):final_output[]# 存最终所有碎片fortokeninwhitespace(text):# 遍历每个大词charslist(token)# 拆成字符列表如 吃 苹 果start0# 指针当前切到哪了is_badFalse# 标记这个词是否切失败了sub_parts[]# 存当前这个词切出的小碎片whilestartlen(chars):# 只要没切完就继续endlen(chars)# 【修复Bug1】从末尾开始尝试原图写成了 endlen错foundNone# 假设当前没找到匹配的词# 内层循环从长到短尝试匹配whilestartend:# 取出 [start:end] 这一段cur_substr.join(chars[start:end])# 关键逻辑如果不是开头的部分加 ##ifstart0:cur_substr##cur_substr# 查词典ifcur_substrinvocab:foundcur_substrbreak# 找到了立刻停止缩短end-1# 没找到缩短一位再试# 处理匹配结果iffoundisNone:# 试到单个字都没有is_badTrue# 标记为坏词break# 跳出循环这个词废了else:sub_parts.append(found)# 存下这个碎片startend# 指针后移切下一段# 收尾把当前词的结果装进总结果ifis_bad:final_output.append(unk)# 整个词变成未知else:final_output.extend(sub_parts)# 把碎片展开加入总结果returnfinal_output# ---------- 测试用例 ----------if__name____main__:# 模拟词典vocab{我,喜欢,吃,##果,苹果,机器}# 测试1正常情况result1tokenize( 我喜欢吃苹果 ,vocab)print(result1)# 输出: [我, 喜欢, 吃, 苹果]# 测试2有未知词的情况假设词典没有榴莲vocab2{我,喜欢,吃}result2tokenize(我喜欢吃榴莲,vocab2)print(result2)# 输出: [我, 喜欢, 吃, unk]三、手动推导示例面试手撕题大概率考这个给定词典{我, 喜欢, 大白, ##猫, 机器}输入句子我喜欢大白机器人推导步骤大脑里过一遍whitespace切完[我喜欢, 大白机器人]切我喜欢试“我喜欢”没有 → 试“我喜”没有 → 试“我”有 → 再试“喜欢”有 → 得[我, 喜欢]切大白机器人试“大白机器人”没有 → “大白机器”没有 → “大白机”没有 → “大白”有切剩下的“机器人”试“机器人”没有 → “机器”有剩下“人”词典没有 →is_badTrue→ 输出unk最终结果[我, 喜欢, 大白, 机器, unk]四、面试必问的两个 Bug原图里的坑如果面试官把原图你那道题给你看必须立刻指出以下两点这是最大加分项原图错误代码为什么会报错正确写法endlenchars这是一个无效语句只有加法没有赋值Python 直接报SyntaxErrorend len(chars)if is bad:is bad中间有空格Python 无法识别变量名报NameErrorif is_bad:五、如果面试官让你“手撕简化版”最长匹配直接写这个模板很多时候不需要你写##逻辑只需要写核心切分这个模板最通用defmax_match_cut(text,vocab):result[]i0whileilen(text):endlen(text)wordNone# 从最长到最短尝试whileiend:curtext[i:end]ifcurinvocab:wordcurbreakend-1ifwordisNone:# 找不到就保留单字或标记为 UNKresult.append(text[i])i1else:result.append(word)ilen(word)returnresult六、考试/面试时的“标准话术”直接背“这段代码本质上是一个基于词典的贪心最长匹配分词器。它的主要流程分为三步1. 按空格分大词2. 对每个大词从后往前缩短匹配词典3. 匹配失败时回退为unk。其中最关键的设计是为了应对未登录词通过##前缀将长词拆成有意义的子词单元从而保证模型不会因为遇到生僻词而瘫痪。如果我来优化这段代码我会修复end没赋值的致命错误并建议用 Trie 树优化匹配效率避免频繁的字符串拼接。”最后送你的“考场锦囊”写代码时内心默念start和end的移动确保不会死循环。看到##立刻想到“这不是开头要粘前面”。看到unk立刻想到“词典里没有”。这份笔记你现在已经理解了80%剩下的20%靠你闭上眼睛在脑海里把“我喜欢吃苹果”推导一遍。推完这一遍你明天上考场这把稳如泰山 需要我把这份笔记整理成 Markdown 或者 PDF 格式方便你打印吗
延伸阅读

更多相关文章

2026/10/15 23:06:14

OpenAI Translator:基于 AI 大模型的划词翻译神器

OpenAI Translator:基于 AI 大模型的划词翻译神器选中文字即可用 AI 翻译、总结、润色,支持浏览器插件和全平台桌面客户端,兼容多种大模型接口。📖 背景说明 OpenAI Translator 是一款基于 AI 大模型 API 的划词翻译工具&#xff…

2026/10/12 19:26:59

FreeCAD:免费开源的三维参数化 CAD,机械设计与 3D 打印都在用

FreeCAD:免费开源的三维参数化 CAD,机械设计与 3D 打印都在用参数化三维建模软件,用草图、尺寸约束和特征历史精确设计真实物体,支持机械设计、建筑 BIM 与工程分析。📖 背景说明 FreeCAD 是一款免费开源的三维参数化 …

2026/10/15 20:15:01

隐马尔可夫模型(HMM)原理与实战:从序列标注到中文分词

1. 从“猜词游戏”到序列标注:为什么我们需要隐马尔可夫模型想象一下,你正在玩一个“听音猜词”的游戏。你坐在一个屏风后面,只能听到你的朋友在另一侧用键盘打字的声音。你听不到他具体在说什么,但你能清晰地听到每一次按键发出的…

2026/10/16 8:12:03

PDF/Word一键转可编辑PPT:三层解析与AI语义压缩实践

很多做汇报材料的朋友都体会过这种痛苦:拿到一份行业白皮书或者内部制度文件,PDF有七十多页,每一段都写得密不透风。你需要从中划出五六个重点,换成口语化的表述,再用三四十页 PPT 把意思讲清楚。手动做这件事&#xf…

2026/10/16 8:12:03

Python网络设备自动巡检脚本:多厂商支持、异常告警与PDF报告

简介:本资源是一套基于Python实现网络设备自动化巡检的轻量级脚本工具包,面向IT运维工程师、网络管理员及Python初学者,解决大型网络环境中人工巡检效率低、易出错的核心痛点。资源共7个文件,含5个INI配置文件(分别定义…

2026/10/16 8:12:03

MQTT与InfluxDB组合实战:物联网数据采集存储方案

前段时间做了个物联网数据采集的小项目,设备端每隔几秒上报一次温湿度、电量和位置信息,一天下来几百万条数据。一开始团队想用 MySQL 存,结果图表查询慢到让人怀疑人生。这种情况在物联网里太常见了,高频率、按时间流动的传感器数…

2026/10/16 8:12:03

Agent系统中Top K参数的工程化设定方法

1. 这道题不是考算法,是考工程直觉“每周一道 Agent 面试题——Top K 怎么设”,光看标题,很多人第一反应是:又一道 LeetCode 变形题?堆排序?快排分治?滑动窗口?但如果你真这么答&…

2026/10/16 8:12:03

AI助手登录异常复盘:区域性网络故障的Fallback与容灾方案

2024年6月,我所在的项目组经历了一次印象极深的AI助手登录异常。当时正值一个跨平台系统的联调阶段,十几个同事几乎同时发现,常用的AI对话平台开始出现登录页面能打开、但登录请求一直转圈的情况,个别同事甚至被卡到直接报错退出。…

2026/10/16 8:07:03

AI反诈系统测试实战:从功能验证到模型健康度巡检

1. 项目概述:当测试工程师第一次站在AI反诈系统的控制台前我接手这个AI反诈项目那天,会议室白板上还贴着上一个纯规则引擎项目的测试用例表——整整178条,覆盖了“转账金额超5万”“收款方为高危账户”“凌晨2点批量操作”等所有已知风险模式…

2026/10/16 5:33:43

Python调用Gemini Structured Outputs实现工单路由门禁

客服工单最怕的不是模型“答错一句话”,而是它给出一段看起来合理的说明,程序却从中猜错优先级。通俗做法是:要求模型只交 JSON(JavaScript Object Notation,轻量数据格式),再让代码验证它。Gem…

2026/10/16 4:03:48

Spring Boot超市进销存系统毕设实战:从需求拆解到答辩通关

最近带的一个学生项目组里,有A同学跑来问我:选什么毕设题目最稳妥,既能让评审老师觉得工作量够,又不会在答辩时被问到语无伦次。我第一反应就是推荐基于Spring Boot的超市仓库管理系统——也就是超市进销存系统。这个题目乍一看平…

2026/10/15 13:42:16

Flutter StatefulWidget 生命周期核心解析

很多刚开始接触 Flutter 的朋友,在看完一堆“Hello World”和基础组件之后,大概率都会撞上同一堵墙:StatefulWidget 里那堆 initState、build、dispose 方法,到底什么时候被调用?为什么顺序是那样?在里面到…

2026/10/16 0:01:11

Cephadm实战指南:Linux系统工程师的生产级Ceph集群部署与排障

简介:本资源是一份完整的Ceph分布式存储系统中文技术文档合集,面向Linux系统运维工程师、云平台架构师及存储方向开发者,帮助读者系统掌握Ceph集群的部署、配置与运维核心能力。文档覆盖对象存储(RGW)、块设备&#xf…

2026/10/16 0:01:11

ITK中SpatialObject几何体系解析:坐标系、变换与管道集成

1. 空间对象的定位:为什么 ITK 需要一套几何描述体系很多刚开始接触 ITK 的朋友,包括我自己,最初都是被它的图像滤波、配准、分割这些“正统”功能吸引进来的。等真正上手做点实际项目,比如把分割出来的器官边界做量化分析、给血管…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑