简介:这份人工智能重点词汇表以doc文档形式呈现,面向人工智能初学者、备考学生及需要梳理基础概念的从业者,帮助读者系统建立AI理论框架,解决术语零散、概念混淆的问题。资源包共1个doc文件,约29KB,内容按条目编号组织,涵盖图灵试验、归结原理、命题与范式、Skolem标准形、一阶逻辑、置换与归类、支撑集、语义树、不确定性推理、贝叶斯定理与贝叶斯网、知识表示、知识库与推理机、产生式系统、语义网络、框架与对象、学习及符号处理技术等核心词汇,每条均给出简明定义与要点说明。目前已有131人学习下载。读者可将其作为术语速查手册,用于课程复习、论文写作或面试准备,快速定位关键概念并理解其逻辑关联,也可配合教材按编号顺序逐条研读,形成对人工智能基础理论的整体认知。
1. 人工智能重点词汇表:从术语黑匣子到能上手查的速查手册
刚入行做算法工程时,我最怕的不是写模型,而是开会。产品经理说“这个场景要做多模态对齐”,后端说“推理延迟卡在 KV Cache 上”,数据标注的同学问“这个样本算不算长尾”。每个字都认识,连起来就是听不懂。后来我养成了一个习惯:手边永远放一份自己维护的人工智能重点词汇表,遇到新词就补进去,标注清楚它属于哪个子领域、和哪些词容易混、在代码里对应哪个 API。这份词汇表不是背单词用的,它是排查问题的索引——当你听到一个陌生术语,能立刻定位到它属于训练、推理、数据还是部署环节,就知道该翻哪块代码、查哪个参数。这篇文章面向三类人:刚转方向想系统梳理术语的工程师、带团队需要统一沟通语言的 Tech Lead、以及准备面试或考试需要快速过一遍核心概念的学生。我会把这份词汇表怎么建、怎么分类、怎么和实际代码挂钩讲清楚,让你能照着做一份自己的版本。
2. 人工智能重点词汇表怎么分类:按生命周期切比按字母排更管用
2.1 为什么字母序词汇表在实战中几乎没用
我见过不少人把术语按 A-Z 排,结果查“Attention”要翻到 A 开头,查“Transformer”翻到 T,查“梯度消失”又得去 G。这种排法只适合考试默写,不适合工程排查。真正好用的分类逻辑是按机器学习项目生命周期来切:问题定义、数据准备、特征工程、模型训练、评估调优、部署推理、监控迭代。每个阶段有自己的核心术语,而且术语之间有依赖关系。比如你听到“类别不平衡”,它属于数据准备阶段,解决方案可能涉及重采样、代价敏感学习、Focal Loss,这些词应该聚在一起。再比如“量化”和“蒸馏”都属于部署推理阶段的模型压缩手段,放在同一组里对比记忆效率最高。
我自己的词汇表分七个大类,每个大类下再按“概念-指标-方法-工具”四个维度展开。这样当你在代码里看到class_weight='balanced',能立刻定位到数据准备阶段的类别不平衡处理方法;看到torch.quantization.quantize_dynamic,能定位到部署阶段的量化技术。分类不是为了好看,是为了缩短从“听到词”到“找到代码位置”的时间。
2.2 七个一级分类与核心词条示例
下面这张表是我词汇表的骨架,你可以直接拿去当模板。每个分类下列出 5-8 个最高频的词条,并标注它在代码中的常见映射。注意:这里只列核心词,完整版需要你根据自己的技术栈补充。
| 生命周期阶段 | 核心词条示例 | 代码/工具映射 |
|---|---|---|
| 问题定义 | 监督学习、无监督学习、强化学习、分类、回归、聚类 | sklearn 的estimator接口、gym 环境 |
| 数据准备 | 标注、清洗、缺失值、异常值、类别不平衡、数据泄漏 | pandas、Great Expectations、imblearn |
| 特征工程 | 归一化、标准化、独热编码、嵌入、特征交叉 | sklearn.preprocessing、Featuretools |
| 模型训练 | 损失函数、优化器、学习率、批大小、过拟合、正则化 | PyTorchnn.Module、optim、DataLoader |
| 评估调优 | 准确率、精确率、召回率、F1、AUC、交叉验证、网格搜索 | sklearn.metrics、Optuna |
| 部署推理 | 量化、蒸馏、剪枝、ONNX、TensorRT、批推理 | torch.quantization、onnxruntime |
| 监控迭代 | 数据漂移、概念漂移、A/B 测试、在线学习 | Evidently、MLflow |
这张表的价值在于:当你遇到一个陌生术语,先判断它属于哪个阶段,然后去对应行找相关词。比如“概念漂移”属于监控迭代阶段,和它相关的有“数据漂移”“在线学习”“模型重训”。这样你就能把孤立术语串成知识网络,而不是背一个个孤立的定义。
2.3 用 Python 脚本自动生成词汇表骨架
手动维护词汇表容易漏词,我一般会写个脚本从已有文档和代码注释里抽取候选术语,再人工筛选。下面这个脚本用jieba做中文分词,用 TF-IDF 找高频术语,输出候选列表。你可以把它跑在自己的技术文档或项目 README 上。
import jieba import jieba.analyse from collections import Counter import re # 读取你的技术文档或代码注释集合 def load_corpus(file_paths): corpus = [] for path in file_paths: with open(path, 'r', encoding='utf-8') as f: corpus.append(f.read()) return '\n'.join(corpus) # 抽取候选术语:TF-IDF + 词性过滤 def extract_terms(text, topK=200): # 只保留名词、动名词、英文术语 allow_pos = ('n', 'vn', 'eng', 'nz') keywords = jieba.analyse.extract_tags( text, topK=topK, withWeight=True, allowPOS=allow_pos ) return keywords # 过滤掉单字和纯数字 def filter_terms(keywords): filtered = [] for word, weight in keywords: if len(word) < 2: continue if re.match(r'^\d+$', word): continue filtered.append((word, round(weight, 4))) return filtered if __name__ == '__main__': # 替换成你自己的文档路径列表 docs = ['doc1.md', 'doc2.md', 'notes.txt'] corpus = load_corpus(docs) candidates = extract_terms(corpus, topK=300) result = filter_terms(candidates) for term, weight in result[:50]: print(f'{term}\t{weight}')这段代码的逻辑分三步:第一步把所有文档拼成一个语料;第二步用jieba.analyse.extract_tags基于 TF-IDF 抽关键词,allowPOS参数限定只保留名词、动名词和英文术语,避免抽到“的”“了”这类虚词;第三步过滤掉单字和纯数字。输出结果是“术语 + 权重”的列表,权重越高说明在文档里越重要。你可以把输出粘贴到表格里,人工判断哪些该进词汇表、该归到哪个分类。参数topK控制候选数量,文档多的时候可以设到 500;allowPOS可以根据你的文档特点调整,比如技术文档里英文术语多,就保留eng。
提示:这个脚本只做候选抽取,不要直接拿输出当最终词汇表。TF-IDF 会漏掉低频但关键的术语,也会把一些通用词排前面。人工筛选这一步省不掉。
3. 把词汇表变成可检索的本地知识库:从 doc 到可查询的 JSON
3.1 词汇表的数据结构设计
原始标题是“人工智能重点词汇表.doc”,但 doc 格式在工程场景里很难用——没法 diff、没法程序化查询、没法做版本控制。我一般会把词汇表转成结构化 JSON,每个词条包含这些字段:term(术语名)、category(所属生命周期阶段)、definition(一句话定义)、related(相关术语列表)、code_hint(代码中的常见映射)、confusable(易混淆术语)。这样设计的好处是:查一个词能顺带看到相关词和易混词,形成知识簇。
下面是一个词条示例:
{ "term": "过拟合", "category": "模型训练", "definition": "模型在训练集上表现好但在验证集上表现差的现象,通常因为模型复杂度过高或训练数据过少。", "related": ["正则化", "Dropout", "早停", "数据增强"], "code_hint": "PyTorch 中可用 nn.Dropout、weight_decay;Keras 中可用 EarlyStopping 回调。", "confusable": ["欠拟合", "数据泄漏"] }这个结构的关键在于confusable字段。很多术语混淆不是因为你不知道定义,而是因为两个词在同一个场景里出现,但解决方向相反。比如“过拟合”和“数据泄漏”都会导致验证集指标异常好,但前者要加正则化,后者要检查数据划分逻辑。把易混词放在一起对比,比单独背定义有效得多。
3.2 用 Python 把 doc 批量转成结构化 JSON
如果你手头已经有一份 doc 格式的词汇表,可以用python-docx读取段落,再按规则解析成 JSON。下面这个脚本假设你的 doc 里每个词条格式是“术语:定义”或“术语 - 定义”,相关词和代码提示在后续段落里。
from docx import Document import json import re def parse_docx(file_path): doc = Document(file_path) entries = [] current = None # 匹配“术语:定义”或“术语 - 定义” pattern = re.compile(r'^(.+?)[:\-]\s*(.+)$') for para in doc.paragraphs: text = para.text.strip() if not text: continue match = pattern.match(text) if match: # 遇到新词条,保存上一个 if current: entries.append(current) current = { 'term': match.group(1).strip(), 'definition': match.group(2).strip(), 'category': '', 'related': [], 'code_hint': '', 'confusable': [] } elif current: # 后续段落作为补充信息 if text.startswith('相关'): current['related'] = [w.strip() for w in text.replace('相关', '').strip('::').split('、')] elif text.startswith('代码'): current['code_hint'] = text.replace('代码', '').strip('::') elif text.startswith('易混'): current['confusable'] = [w.strip() for w in text.replace('易混', '').strip('::').split('、')] if current: entries.append(current) return entries if __name__ == '__main__': entries = parse_docx('人工智能重点词汇表.docx') with open('glossary.json', 'w', encoding='utf-8') as f: json.dump(entries, f, ensure_ascii=False, indent=2) print(f'共解析 {len(entries)} 个词条')这段代码的核心逻辑是逐段扫描 doc,用正则匹配“术语:定义”格式的行作为新词条起点,后续以“相关”“代码”“易混”开头的段落分别填充对应字段。参数方面,pattern里的[:\-]同时匹配中文冒号和短横线,你可以根据实际文档格式调整。输出是一个 JSON 数组,每个元素是一个词条对象。注意:这个脚本假设文档格式比较规整,如果 doc 里混有标题、页码、表格,需要先做清洗。
3.3 用 SQLite 做本地查询:按分类和关键词检索
JSON 文件适合版本控制,但查询不方便。我一般会再导入 SQLite,用 SQL 做多条件检索。下面是把 JSON 导入 SQLite 并建索引的脚本。
import sqlite3 import json def build_db(json_path, db_path='glossary.db'): conn = sqlite3.connect(db_path) cur = conn.cursor() cur.execute(''' CREATE TABLE IF NOT EXISTS terms ( id INTEGER PRIMARY KEY AUTOINCREMENT, term TEXT NOT NULL, category TEXT, definition TEXT, related TEXT, code_hint TEXT, confusable TEXT ) ''') cur.execute('CREATE INDEX IF NOT EXISTS idx_category ON terms(category)') cur.execute('CREATE INDEX IF NOT EXISTS idx_term ON terms(term)') with open(json_path, 'r', encoding='utf-8') as f: entries = json.load(f) for e in entries: cur.execute(''' INSERT INTO terms (term, category, definition, related, code_hint, confusable) VALUES (?, ?, ?, ?, ?, ?) ''', ( e['term'], e['category'], e['definition'], '、'.join(e.get('related', [])), e.get('code_hint', ''), '、'.join(e.get('confusable', [])) )) conn.commit() conn.close() print(f'导入 {len(entries)} 条记录') if __name__ == '__main__': build_db('glossary.json')建好库之后,你可以用这样的 SQL 查“模型训练”分类下所有和“正则化”相关的词条:
SELECT term, definition, code_hint FROM terms WHERE category = '模型训练' AND (related LIKE '%正则化%' OR term LIKE '%正则化%');这个查询会返回过拟合、Dropout、权重衰减等词条,每个都带定义和代码提示。比起翻 doc,这种方式在排查问题时快得多。参数方面,idx_category和idx_term两个索引能加速按分类和术语名的查询;related字段用顿号拼接,查询时用LIKE匹配,数据量在几千条以内性能足够。
4. 词汇表避坑:那些年我整理术语时翻过的车
4.1 坑一:把“相关词”写成同义词,导致查询失效
现象:我在词汇表里把“准确率”和“精确率”标为相关词,结果查“准确率”时把“精确率”的词条也带出来,但两者定义完全不同,反而干扰判断。
原因:相关词应该分两类——一类是“同领域共现词”(如精确率和召回率经常一起出现),另一类是“易混淆词”(如准确率和精确率容易搞混)。我把它们混在一个字段里,查询时无法区分。
解决:拆成related和confusable两个字段。related放共现词,用于扩展阅读;confusable放易混词,用于对比辨析。查询时如果只想看对比,就只查confusable字段。
4.2 坑二:定义写得太学术,排查时看不懂
现象:我一开始把“梯度消失”定义为“反向传播过程中梯度逐层衰减至接近零的现象”,结果有次排查 LSTM 不收敛,看到这个词条还是不知道该怎么调。
原因:定义只说了“是什么”,没说“怎么判断”和“怎么解决”。工程词汇表需要的是操作线索,不是教科书定义。
解决:每个词条的定义改成三段式——现象描述、判断方法、常见解决方向。比如“梯度消失”改成:“训练深层网络时,靠近输入层的参数几乎不更新,损失下降极慢。判断方法:打印各层梯度范数,若逐层递减到 1e-6 以下可确认。解决方向:换 ReLU、加残差连接、用 BatchNorm、改用 LSTM/GRU。”这样排查时直接照着做。
4.3 坑三:分类太粗,一个词不知道该放哪
现象:我把“嵌入”放在“模型训练”分类下,但做特征工程时也会用到嵌入,查的时候要翻两个地方。
原因:一个术语可能横跨多个阶段,强行归一类会导致漏查。
解决:允许一个词条有多个分类标签,用逗号分隔。查询时用LIKE '%特征工程%'也能命中。或者建一张关联表,但简单场景下多标签字段就够了。
4.4 坑四:忘了标注术语的英文对照,看论文时对不上
现象:我在代码里看到weight_decay,知道是权重衰减,但看论文时遇到L2 regularization没反应过来是同一个东西。
原因:词汇表只记了中文,没记英文和常见别名。
解决:加一个aliases字段,放英文术语和常见别名。比如“权重衰减”的 aliases 是weight decay, L2 regularization, 岭回归。查询时同时匹配term和aliases。
4.5 坑五:词汇表不更新,三个月后自己都不敢信
现象:我半年前整理的词汇表,最近查“LoRA”发现没有,查“RLHF”也没有,只能重新翻文档。
原因:没有固定的更新机制,新术语靠临时记忆补,补着补着就断了。
解决:每周花 10 分钟,把本周遇到的新术语按模板补进去。模板就是前面 JSON 那六个字段。补完后跑一遍导入脚本,更新 SQLite。如果团队用,就提交到 Git,让其他人也能补。关键是降低补充成本——如果补一个词要填十个字段,没人会坚持;六个字段、两分钟能填完,就能持续。
5. 让词汇表反过来帮你排查问题:三个实战查询技巧
5.1 用“现象”反查术语:从报错信息定位知识缺口
排查问题时,你看到的往往不是术语,而是现象。比如“验证集 loss 比训练集低很多”,这不是一个术语,但背后可能涉及数据泄漏、正则化过强、验证集分布不同等问题。我一般会在词汇表的definition字段里搜现象关键词,比如搜“验证集 loss 低”,看哪些词条的定义里提到了这个现象。SQL 这样写:
SELECT term, definition, code_hint FROM terms WHERE definition LIKE '%验证集%' AND definition LIKE '%低%';这个查询会返回数据泄漏、正则化、早停等相关词条,每个都带解决方向。比起漫无目的地搜,这种方式能快速缩小范围。
5.2 用“代码 API”反查术语:从函数名定位概念
有时候你接手别人的代码,看到nn.Dropout(p=0.5)但不确定 p 的含义,或者看到FocalLoss但不知道它解决什么问题。这时候可以用code_hint字段反查:
SELECT term, definition, related FROM terms WHERE code_hint LIKE '%Dropout%' OR code_hint LIKE '%FocalLoss%';这个查询会返回 Dropout 和 Focal Loss 的词条,以及它们相关的过拟合、类别不平衡等概念。这样你不仅知道 API 怎么用,还知道它背后的设计意图。
5.3 用“易混词对”做对比复习:面试前快速过一遍
面试前时间紧,不可能背整本词汇表。我一般会查所有confusable字段非空的词条,只看易混词对:
SELECT term, confusable, definition FROM terms WHERE confusable != '';输出结果里,每个词条都带它容易混淆的术语。比如“精确率”的 confusable 是“准确率”,“召回率”的 confusable 也是“准确率”。这样你能快速定位到最容易被问混的概念,集中复习。我自己的习惯是面试前一晚只过这些易混词对,每个词条问自己三个问题:定义是什么、和易混词的区别在哪、代码里怎么体现。三个都能答上来,基本就稳了。
5.4 一个具体技巧:用 Anki 把词汇表变成间隔重复卡片
如果你需要长期记忆这些术语,可以把 JSON 转成 Anki 卡片。下面这个脚本生成 Anki 可导入的 TSV 文件,正面是术语,背面是定义、相关词和代码提示。
import json def json_to_anki(json_path, tsv_path='anki_cards.tsv'): with open(json_path, 'r', encoding='utf-8') as f: entries = json.load(f) with open(tsv_path, 'w', encoding='utf-8') as f: for e in entries: front = e['term'] back = f"定义:{e['definition']}<br>" if e.get('related'): back += f"相关:{'、'.join(e['related'])}<br>" if e.get('code_hint'): back += f"代码:{e['code_hint']}<br>" if e.get('confusable'): back += f"易混:{'、'.join(e['confusable'])}" # Anki 导入格式:正面 TAB 背面 f.write(f"{front}\t{back}\n") print(f'生成 {len(entries)} 张卡片') if __name__ == '__main__': json_to_anki('glossary.json')导入 Anki 后,每天花 5 分钟过卡片,比集中背效率高。参数方面,<br>是 HTML 换行,Anki 支持;TSV 文件用 UTF-8 编码,避免中文乱码。这个脚本生成的卡片正面只有术语,背面是完整信息,适合主动回忆。如果你用其他间隔重复工具,改一下输出格式就行。
我自己的习惯是每周日晚上花 15 分钟:先跑一遍抽取脚本看有没有新词,再手动补几条,然后重新导入 SQLite 和 Anki。这个习惯坚持了两年,现在开会听到陌生术语,基本能当场判断它属于哪个环节、该查哪块代码。词汇表不是背出来的,是用出来的。希望帮到你。
本文还有配套的精品资源,点击获取