真实面经题目 · 原创解析

意图识别使用 LR、命名实体识别使用 HMM 时,实体如何提取,模型如何训练?

这道题考察经典 NLP 任务拆分:LR 适合把句子级特征映射到意图类别,HMM 适合把 token 序列映射到 BIO 实体标签序列。回答要讲清文本预处理、特征构造、HMM 初始/转移/发射概率训练、Viterbi 解码和实体字段回收。

出现于:华为 · 算法

60 秒回答模板

我会把它拆成句子级意图识别和 token 级实体识别。意图识别用 LR 时,先对用户文本做分词或字粒度处理,提取 n-gram、关键词、词典命中、上下文和实体占位等特征,LR 输出各意图类别概率。命名实体识别用 HMM 时,把实体类型设计成 BIO 标签序列,例如 B-city、I-city、O,训练阶段从标注语料估计初始概率、状态转移概率和观测发射概率,预测阶段用 Viterbi 找最大概率标签序列,再把连续的 B/I 标签合并成实体。最后用 intent accuracy、实体 precision/recall/F1 和端到端 slot filling 指标验证。

考点 句子级分类
难度 真实面经题
回答目标 讲清原理、实现和边界

深入解析

01

任务分工

意图识别是句子级分类,目标是判断用户想做什么;命名实体识别是序列标注,目标是从句子中抽取地点、时间、产品名、业务对象等槽位。LR 和 HMM 的分工对应分类和序列建模,不应混成一个模型来讲。

02

LR 意图识别

LR 输入是句子特征向量,可包含字词 n-gram、关键词、词典命中、实体占位、句式模板、上下文特征和统计特征。二分类用 sigmoid,多分类可用 one-vs-rest 或 softmax 形式。训练目标是最小化交叉熵,并用 L1/L2 正则控制稀疏特征过拟合。

03

HMM 标注设计

HMM 需要先定义状态集合,常见是 BIO 或 BIOES 标签,例如 B-person、I-person、B-location、O。观测是字或词序列,隐藏状态是每个位置的实体标签。实体提取不是单点分类,而是寻找全局概率最大的合法标签路径。

04

HMM 训练

有标注语料时,可以用监督计数估计初始概率、状态转移概率和发射概率,并做平滑处理解决未登录词或低频转移。无标注场景可用 Baum-Welch,但面试中若题目问实体提取,优先讲有标注序列的监督训练更直观。

05

解码抽取

预测时用 Viterbi 动态规划,结合初始概率、转移概率和发射概率得到最大概率标签序列。随后把 B-xxx 后连续的 I-xxx 合并为一个实体,并根据业务 schema 输出实体类型、文本 span 和置信度。

06

联合验证

线上效果通常取决于意图和实体是否同时正确。评估时既要看意图准确率,也要看实体级 precision、recall、F1、span 是否完整、类型是否正确,以及端到端槽位填充成功率。错误样本要区分是意图错、实体漏抽还是实体边界错。

易错点

  • 把 LR 讲成序列模型,或把 HMM 讲成普通文本分类器,混淆任务粒度。
  • 只说 HMM 有初始、转移、发射概率,没有说明 BIO 标签和实体 span 如何恢复。
  • 预测时逐个 token 贪心选最高概率标签,忽略 Viterbi 的全局路径优化。
  • 只看意图准确率,不评估实体边界、实体类型和端到端槽位填充效果。

面试官追问

LR 做意图识别有哪些优缺点?

优点是训练快、可解释、线上延迟低,适合稀疏文本特征;缺点是表达能力依赖特征工程,对复杂语义、上下文和组合泛化能力有限。

HMM 为什么适合做经典 NER?

NER 标签天然有序列依赖,例如 I-city 前面通常需要 B-city 或 I-city。HMM 用状态转移概率建模标签之间的依赖,比独立逐 token 分类更稳。

未登录词会影响 HMM 吗?

会。未登录词导致发射概率估计不足,需要平滑、字形特征、词典特征、UNK 处理或回退规则,否则模型容易把低频实体判成 O。

意图和实体错误如何联动处理?

可以用实体结果作为意图特征,也可以用意图约束实体类型;排查时要分别统计意图错、实体漏召、边界错和类型错,避免只看总成功率。