想象你走进一家繁忙的邮局,成千上万封信件在传送带上依次滑过。分拣员老张的工作,是扫一眼信封上的地址、邮票和邮戳,迅速把每封信丢进对应的分拣筐:航空件、平邮件、挂号件、快递件……这套动作看似简单,却决定了信能否准确抵达目的地。在自然语言处理的世界里,也有一位这样的“老张”,它叫词性标注器。每个词语就像一封信,而名词、动词、形容词这些语法标签,就是邮局里大大小小的分拣筐。“小明喜欢读书”这句话经过它一过手,就被标成“小明/名词、喜欢/动词、读书/动词”——仿佛老张在一秒钟内给三封信贴上了正确的邮路标签。 词性标注看似只是“贴标签”的小活,但它处在文本预处理的最前端,下游的句法分析、情感分析、机器翻译都要靠它打底。本文将从最朴素的分拣手册(规则方法),讲到老师傅凭经验判邮路(统计方法),再讲到一整套邮路规划看板(HMM 隐马尔可夫模型),最后聊聊工程里真正好用的分拣工具(Python 实现)。读完这篇文章,你不仅能看懂词性标注的核心原理,还能亲手写出一个能运行的标注器。
掌握词性标注是踏入 NLP 文本预处理的第一步,它是几乎所有中文任务的底层基础设施。学完即可独立完成语料的词性标注,并为下游任务构建有效特征。
可视化演示
通过编码器将输入序列逐步编码为上下文向量,再由解码器据此生成输出序列,直观展示Seq2seq模型的多步预测机制。
本节配有交互动效(进入视口后自动加载,约 3KB)。
编码阶段:序列压缩 编码器逐步读取输入词,更新隐藏状态 最终隐藏状态作为上下文向量c h_t = f(h_{t-1}, x_t)
词性标注概述
在邮局里,老张每天面对的第一个问题是:这封信该往哪个筐里放?是他先看信的省份、城市,还是先看收件人姓名?其实他最先做的是给每一封信“定性”——是平信、挂号,还是特快专递。这一定性,决定了后续所有分拣操作。词性标注正是自然语言处理里的“第一定性”:拿到一句分词后的文本,先给每个词语贴上一个语法类别标签,比如名词、动词、形容词,然后再交给下游工序处理。
词性标注的正式任务是:给定一个由 n 个词语构成的句子,输出一个等长的词性标签序列,使得每个词都对应它在当前语境下的语法角色。这里强调“当前语境”很重要,因为同一个词在不同句子里可能是不同词性,比如“研究”在“科学研究”里是名词,在“研究算法”里却是动词。这种一词多性的现象,正是标注器最需要解决的难题。作为最小的可独立运用语言单位,词是承载词性判断的基本对象,因此工程上总是先做分词,再做词性标注,两者是流水线上的两道工序。
词性标注的应用价值贯穿整个 NLP 流水线:句法分析需要它做骨架,命名实体识别用名词短语作候选,情感分析则把“形容词+名词”组合视为重要特征。在智能客服、舆情分析、机器翻译等系统中,词性标注通常是文本预处理的第一站,堪称所有 NLP 任务的“公共地基”。可以说,没有这一道“分拣定性”,后面的每一环都会因为缺乏语法信息而寸步难行。
回到邮局的比喻:老张给信件定性的动作看似微不足道,但一旦定性错误,挂号信可能被塞进平邮筐,特快专递可能被耽误三天。词性标注也是这样——一个标签贴错了,下游任务的错误就会像多米诺骨牌一样连锁放大。因此,理解这个词性标注的“第一定性”,是走进 NLP 世界的必修课。
- 输入词序列句子由 n 个词语组成,w_i 表示第 i 个词,它们就像传送带上等待分拣的信件。
- 输出标签序列每个词对应一个词性标签,t_i 是第 i 个词的分拣结果。
- 标签来源所有标签都来自预先定义好的词性集合 T,比如 T 中包含名词、动词等分拣筐。
词性类别体系
老张的邮局里有一面墙,墙上挂满了大小不一的分拣筐:大筐装普通平信,小筐装挂号信,加锁的筐装保价快件……这些筐的划分不是随意定的,而是根据邮局业务反复磨合出来的分类体系。词性标注也一样,动手标注之前,必须先设计好“分拣筐”——也就是词性类别体系。这套体系定得好不好,直接决定了标注器能不能把词语分得又快又准。
中文的词性体系首先分为两大阵营:实词和虚词。实词像是有实际重量和内容的包裹,承载句子的核心语义,包括名词(小明、学校)、动词(喜欢、读书)、形容词(美丽、快速)、数词和量词。虚词则像信封上的封条和胶带,自身不装内容,却负责语法连接和组织结构,包括介词(在、把)、连词(和、但是)、助词(的、了)、叹词(啊、哦)等。实词决定句子“说什么”,虚词决定句子“怎么说”。
现代中文最常用的标注体系是北京大学《人民日报》标注集,定义了约 26 个词性标记,被广泛用于语料库建设和学术研究。工程工具 jieba 也提供了自己的词性标记体系,与北大标注集大体兼容又略有简化。选择多细的粒度,是一个需要权衡的工程决策:粒度太粗,“分拣筐”太少,无法区分细微语法差异;粒度太细,筐太多,标注难度和歧义都会上升,模型也更容易犯错。
在工程实战中,大家通常直接复用成熟的标注集,而不是自创一套,否则后续对接开源工具和语料资源都会遇到兼容性问题。这就像分拣筐的尺寸必须和全国邮包标准统一,否则你在自家邮局分得再开心,到了下一站也得重新倒筐。理解了词性类别体系,就理解了标注器的“世界观”——它能看到哪些类别,完全取决于墙上挂了哪些筐。
- 实词家族名词、动词、形容词是三大主力,如同邮局里按重量分档的主筐,决定句子的内容。
- 虚词家族介词、连词、助词负责语法连接,如同封条和胶带,辅助实词组合成完整句子。
- 集合可扩展句末省略号表示标注集不是铁板一块,不同体系可以增减类别,对应邮局里随时可以加挂新筐。
规则标注方法
老张刚入职时,师傅塞给他一本厚厚的《分拣手册》,上面写着:“见红色邮票的,进航空件筐;信封上有'密'字的,进机要件筐;重量超过五百克的,进包裹筐。”老张严格按照手册操作,虽然慢,但很少出错。这就是词性标注最早的思路——规则方法:由语言学家和工程师手工编写一系列“如果……那么……”的判断规则,机器照着执行。
规则方法的第一类线索来自词形特征。中文虽然不像英文那样有丰富的形态变化,但仍有规律可循:以“了、着、过”结尾的词通常是动词(吃了、看着、去过),以“性、度、者”结尾的词通常是名词(重要性、长度、读者),以“地”结尾的通常是副词,以“的”结尾的通常是形容词定语。这些词缀如同信封上的油墨标记,一看便知走哪个通道。英文的线索更加明显:-ing、-ed 指向动词,-ly 指向副词,-tion、-ment 指向名词。
第二类线索是上下文规则,因为很多词光看自己是分不清的。规则会写成:“如果前一个词是副词,那么当前词大概率是动词或形容词”“如果当前词跟在'把、被、在'后面,那么当前词大概率是名词”。这些规则利用前后词语的搭配关系,把单个词放入语境中判断,相当于老张不仅看信封上的油墨,还会瞄一眼这封信是从哪个省份寄来的。
规则方法最大的优点是可解释性强,出错时工程师能顺着规则追查原因,就像邮局能查到手写手册的哪一行出了问题。但它的缺点同样致命:规则覆盖面有限,无法穷举千变万化的语言现象;规则之间还可能互相冲突,需要人工排定优先级;维护成本随着规则数量急剧上升。在真实的邮局里,老张很快发现,光靠手册根本无法应对每天涌入的新地址、新邮路——规则方法注定只是标注器的一根拐杖。
- 前置条件检查当前词的前一个词是不是副词,这是规则触发的引信。
- 逻辑蕴含蕴含符号表示“条件成立则推出结论”,是规则方法的核心推理形式。
- 结论集合当前词被判定为动词或形容词二选一,缩小了候选范围。
统计算法基础
干了二十年的老张,后来不再逐条背手册了。他的经验变成了“感觉”:看到一封从北京寄往上海的平信,他根本不用想,手已经伸向了正确的筐。这种“感觉”从哪来?来自他过去分拣过的几十万封信——他无意中统计出了规律。统计方法正是把这种“经验”数字化:不再手写规则,而是从大规模标注语料中自动学习概率规律,靠数字说话。
统计方法的核心是把词性标注看作一个概率最优化问题:给定词语序列 W,我们要寻找概率最大的词性序列 T。根据贝叶斯公式,这个后验概率可以分解为两部分的乘积:一部分是“语言模型”,描述词性之间前后衔接的合理性;另一部分是“发射模型”,描述某个词性生成某个具体词的可能性。这样一来,分拣经验就变成了两个概率表格,机器拿着表格就能自动判邮路。
为了把概率算出来,统计方法引入了两个关键假设。第一个是一阶马尔可夫假设:当前词的词性只与紧邻的前一个词性有关,与更早的词性无关。这相当于老张判断当前信件走哪个筐时,只参考前面那一封信去了哪,而不必回忆整天的分拣历史。第二个是观测独立假设:当前词语的生成只取决于它自己的词性,与其他词无关。这两个假设都忽略了现实中复杂的长期依赖,但换来了计算上的巨大简化,让模型能够高效落地。
从规则手册到概率表格,是词性标注方法论的一次跃迁:机器不再依赖专家熬夜写规则,而是从海量标注语料中“悟”出规律。这就像老张从背手册的新手,成长为凭经验判断的老手。不过,“经验”也有盲区——统计方法虽然覆盖面广,但仍然需要一个精巧的框架把这些概率组织起来,才能最终算出整句话的最佳标注路径。这就是下一节要登场的 HMM 模型。
- 后验概率给定词语序列,我们希望找出使后验概率最大的词性序列,这是问题的最终目标。
- 贝叶斯分解正比符号表示后验正比于“似然×先验”,分母对所有词性序列都相同,计算时可忽略。
- 一阶马尔可夫词性序列的概率约等于相邻词性转移概率的连乘,把长程依赖截断为一步之链。
- 观测独立每个词只由它自己的词性生成,连乘后得到发射概率的整体形式。
HMM词性标注
老张工作的第 21 年,邮局引进了一套“智能分拣看板”:天花板上的大屏幕实时显示每条传送带的状态,字母和数字在屏幕上流动,标出每封信的当前位置与去向。这套系统把老张的经验固化成了一整套可计算的框架——HMM(隐马尔可夫模型)。在 HMM 的世界里,词性序列是“隐藏状态”,我们看不到;词语序列是“可观测输出”,我们看得到。模型要做的,就是根据观测到的词语,反推出最可能的词性链。
HMM 由五个基本要素构成,常被称为五元组:状态集合 S(所有词性标签)、观测集合 O(所有词语)、初始概率 π(句子开头各词性出现的概率)、转移概率矩阵 A(词性之间跳转的概率)、发射概率矩阵 B(每个词性生成每个词的概率)。其中 A 和 B 正是上一节提到的语言模型和发射模型的具体化。这些参数怎么来?答案是极大似然估计:直接在标注语料上数次数、算比例。统计“动词后面跟名词出现了多少次,除以动词出现的总次数”,就得到了转移概率;统计“名词这个标签下'学校'出现了多少次,除以名词出现总次数”,就得到了发射概率。
有了模型参数,最后一步是解码:给定一句话,找出概率最大的词性序列。暴力穷举所有组合在计算上不可行(词性数 N 的 n 次方会爆炸),于是工程师们使用经典的维特比算法。维特比算法把问题转化为动态规划的路径搜索:它维护一个二维网格,横轴是句子中的每个词,纵轴是所有可能的词性,算法一步步向前递推,在每个网格节点上只保留到达该节点的最大概率路径,最后回溯出一条全局最优路径。
HMM 是词性标注史上最具里程碑意义的模型之一,它第一次把“分拣经验”变成了可训练、可复用的概率系统。但它也有明显的局限:一阶马尔可夫假设让模型只能看到前一个词性,类似老张只看上一封信而忽视了更多上下文线索;观测独立假设也忽略了词与词之间的深层语义关联。后来的条件随机场、双向 LSTM、BERT 等模型正是为了突破这些限制而诞生,但 HMM 作为一切序列标注模型的基石,其思路至今熠熠生辉。
- 状态值定义δ_t(j) 表示第 t 个词选择第 j 个词性时,从句子开头走到这里的最优路径概率。
- 转移概率a_ij 表示从词性 i 跳到词性 j 的概率,来自语料统计的频率表格。
- 发射概率b_j(o_t) 表示第 j 个词性生成当前词 o_t 的概率,同样来自语料统计。
- 动态规划递推前一步的最优概率乘以转移概率,再乘以当前词的发射概率,取所有前驱中的最大值。
工具与实践
老张所在的邮局如今设置了月度绩效考核:每月抽查一万封信,统计分拣准确率。准确率是 100%,说明一台机器都没分错;准确率是 99.2%,说明有一千封信里约有八封走错了筐。词性标注的工程评估也遵循同样的逻辑:用人工标注好的测试集,计算标注器输出与标准答案的一致程度。有了这把“考核尺子”,才能理性评估不同方法的优劣,也才能发现模型在哪些文本上系统性翻车。
在实际工程中,绝大多数 NLP 项目不会从零手写 HMM,而是直接使用成熟的工具。Python 生态里最常用的是 jieba 的 posseg 模块,一行代码就能给中文文本分词并标注词性。jieba 内部同时融入了词典规则和统计模型(HMM),对常见文本的标注准确率相当可观,开箱即用。此外,pkuseg、LTP、HanLP 等工具也提供了各具特色的标注器,有的在细分领域语料上表现更优,有的提供了更丰富的词性标记体系。选择工具时,关键是拿自己的业务语料做一次准确率评测,而不是盲目相信宣传数据。
工程实践中最需要警惕的是未知词(未登录词)问题。哪怕是再庞大的词典,也永远会有它没见过的词——网络新词、人名地名、专业术语。HMM 遇到未知词时,发射概率无法计算,只能靠平滑策略兜底,因此标注效果容易大打折扣。应对手段包括:给模型补充领域词典、对数字和英文做专门预处理、用规则正则匹配特殊格式(日期、网址)、甚至对罕见词统一按“未知词”类别处理。这就像邮局面对新出现的快递公司,总要准备一套应急分拣预案,不能因为没有记录就拒收。
词性标注的工程落地,概括起来是三件事:选好工具、定好评估、备好兜底。回想老张的邮局,选工具像是采购分拣设备,评估像是建立绩效考核,兜底则是应对陌生信件的应急预案。三者缺一不可。掌握了这些,你就可以在自己的文本处理流水线上,稳健地给每一个词语贴上正确的“邮路标签”,为下游任务铺平道路。
- 分子正确标注的词语数,即标注结果与人工标准答案一致的词的数量。
- 分母标注词语总数,包含所有参与评测的词,不管对错。
- 结果含义乘以百分之百得到百分比形式的准确率,用于直观对比不同标注器的表现。
AI 应用场景
舆情监测流水线的文本预处理
阶段:文本预处理
解决的问题:舆情系统每天要抓取几百万条社交媒体文本,传统做法只做分词,导致“这家餐厅味道好极了”中的“味道”无法区分是名词还是动词,情感分析模型特征稀疏、效果不稳。接入词性标注后,系统能精准提取“形容词+名词”的情感搭配,负面事件识别的准确率显著提升。
具体案例:某餐饮舆情平台在流水线中加入 jieba.posseg 标注后,将“服务差”“环境吵”这类评价短语作为专门特征输入情感分类器,模型的 F1 值从 0.82 提升到 0.91。词性标签如同一封封已分拣好的信,让后续的情感分析器不必再费劲猜测语法角色。
智能客服问答系统的意图理解
阶段:特征工程与意图识别
解决的问题:用户提问“我想办理退换货”,传统关键词匹配容易把“退换货”拆散或混淆词性,导致意图判定为“取消订单”。通过词性标注提取“动词+名词”动宾结构,系统能准确抓住用户的核心动作和对象,意图识别的鲁棒性大幅提升。
具体案例:某电商智能客服系统对用户问句先做分词和词性标注,再正则匹配“动词+名词”模板,将“怎么退换货”“退换货流程是什么”统一归为退换货意图,人工转接率下降了 35%。这正是把老师傅的分拣经验写成了自动化的客户分流规则。
知识图谱构建中的候选抽取
阶段:信息抽取
解决的问题:从海量企业文档中抽取“公司-投资-项目”三元组时,传统方法在全文本中暴力扫描效率低且噪声大。利用词性标注结果,系统只保留“名词+动词+名词”的三元组候选模式,再配合实体识别,抽取精度与效率同时提升。
具体案例:某金融科技公司在构建企业关系图谱时,先用 HMM 标注器处理了几十万份研报文档,再按词性模板筛选候选句子,三元组抽取的精确率从 55% 提升到 78%。词性标注在这里扮演了“预先分拣”的角色,只把值得细看的信件挑出来。
Python 演示
# -*- coding: utf-8 -*-"""用 HMM 实现一个微型中文词性标注器(教学演示版)"""from collections import defaultdict class HmmTagger: """基于一阶马尔可夫假设的 HMM 词性标注器""" def __init__(self): self.trans_map = defaultdict(lambda: defaultdict(int)) self.emit_map = defaultdict(lambda: defaultdict(int)) self.tag_set = set() self.states = [] def train(self, corpus): """corpus 是已标注语料,格式为 [(词, 词性), ...] 的列表""" for sent in corpus: prev = 'BOS' # 句子开始标记 for word, tag in sent: self.trans_map[prev][tag] += 1 self.emit_map[tag][word] += 1 self.tag_set.add(tag) prev = tag self.trans_map[prev]['EOS'] += 1 # 句子结束标记 self.states = list(self.tag_set) def predict(self, tokens): """用维特比算法解码最优词性序列""" n = len(tokens) tags = self.states viterbi = [{} for _ in range(n)] back_ptr = [{} for _ in range(n)] # 初始化:第一个词 = 初始概率 × 发射概率 for tag in tags: init_p = self.trans_map['BOS'].get(tag, 1e-6) emit_p = self.emit_map[tag].get(tokens[0], 1e-6) viterbi[0][tag] = init_p * emit_p # 递推:当前最优 = 前一状态最优 × 转移概率 × 发射概率 for i in range(1, n): for tag in tags: best_prev = None best_score = -1.0 emit_p = self.emit_map[tag].get(tokens[i], 1e-6) for prev_tag in tags: score = viterbi[i - 1][prev_tag] score *= self.trans_map[prev_tag].get(tag, 1e-6) score *= emit_p if score > best_score: best_score = score best_prev = prev_tag viterbi[i][tag] = best_score back_ptr[i][tag] = best_prev # 回溯:从最后一个词的最优状态倒推整条路径 best_tag = max(viterbi[n - 1], key=lambda t: viterbi[n - 1][t]) result = [best_tag] for i in range(n - 1, 0, -1): best_tag = back_ptr[i][best_tag] result.append(best_tag) result.reverse() return [(w, t) for w, t in zip(tokens, result)] if __name__ == '__main__': corpus = [ [('小明', '名词'), ('喜欢', '动词'), ('读书', '动词')], [('小红', '名词'), ('在', '介词'), ('学校', '名词'), ('读书', '动词')], [('小猫', '名词'), ('喜欢', '动词'), ('睡觉', '动词')], [('老师', '名词'), ('在', '介词'), ('教室', '名词'), ('讲课', '动词')], ] tagger = HmmTagger() tagger.train(corpus) sentence = ['小明', '在', '学校', '睡觉'] print('输入句子:' + ' '.join(sentence)) print('标注结果:') for word, tag in tagger.predict(sentence): print(' {} → {}'.format(word, tag))
tagger.train(corpus)让标注器进入“学徒期”,从人工标注语料中统计规律。self.trans_map[prev][tag] += 1统计“前一词性→当前词性”的转移次数,对应分拣手册里“这个筐到那个筐”的衔接频率。self.emit_map[tag][word] += 1统计“词性→词”的发射次数,对应“这个筐通常装哪些信”的分布。viterbi[0][tag] = init_p * emit_p处理句子第一个词,先按初始概率入筐。best_prev = None; best_score = -1.0每步开始都重置“最优前驱”,像老张每接待一封信都暂时忘记上一封。score *= self.trans_map[prev_tag].get(tag, 1e-6)乘上转移概率,并给没见过的组合一个极小兜底值。back_ptr[i][tag] = best_prev记住这一步从哪个词性来,供最后回溯整条最优路径使用。best_tag = max(viterbi[n - 1], key=lambda t: viterbi[n - 1][t])在最后一个词上挑概率最大的词性作为终点,然后倒推全程。
常见误区
误区分词就是把句子切成词,词性标注就是顺手给词贴个标签,两者本质上是一样的工作,分完词就等于标注完了。
正解这是两道完全不同的工序。分词解决的是“边界”问题——句子从哪里断开成一个个词;词性标注解决的是“归类”问题——每个词属于什么语法类别。邮局里先要决定“这是一封信还是两封信”,才能谈得上“它该进哪个筐”。很多工具把两者打包成一个接口(如 jieba.posseg),但底层逻辑截然不同。分词错误会直接导致词性标注错误,所以工程上总是先优化分词,再谈标注。
为何常见:市面上主流的 Python 工具都是一行代码同时输出分词和词性结果,使用者很少分别去理解两者的差异,久而久之就把它们混为一谈了。
误区现在都是深度学习、大模型的时代了,手写规则又慢又笨,规则方法早该被扫进历史垃圾桶,学它纯属浪费时间。
正解规则方法虽然不再是主流,但它在工程中从未消失。深度学习模型擅长处理高频、常见的语言模式,但在垂直领域的新词、特殊格式文本上,规则方法反而更可靠、更可解释。优秀的标注系统往往是“统计模型为主、规则兜底”的混合架构,就像老张既靠经验判断,也偶尔翻翻手册核对特殊信件。规则方法还是理解统计方法的一把钥匙,学它有助于建立对标注问题本身的直觉。
为何常见:技术博客和论文都在追逐新模型,初学者接触到的大多是“用 BERT 刷新 SOTA”的故事,规则方法显得土气且无人宣传,所以被误认为毫无价值。
误区分拣筐分得越细,每个类别的区分度就越高,标注结果自然越精确,所以应该选最详细的词性标注集。
正解粒度细化是一把双刃剑。标签集越细,类别间的边界就越模糊,标注员自己都容易产生分歧,模型学起来也更困难,标注准确率反而可能下降。比如把“名词”细分成“普通名词、专有名词、时间名词、处所名词”,类别多了,每个类别的训练样本就少了,模型的判断底气也弱了。工程上应该根据下游任务的实际需求选择粒度:做句法分析需要细粒度,做关键词提取可能粗粒度就够用。
为何常见:人们本能地认为“精细 = 更好”,却忽略了机器学习中数据稀疏这个核心矛盾——筐越多,平均每个筐里的信件就越少,经验就越难积累。
误区英语有 -ing、-ed、-ly 这些明显的词形标记,规则方法在英文上管用;中文没有一个词的形态变形,规则方法在中文里肯定寸步难行。
正解中文虽然缺乏系统的屈折变化,但同样存在丰富的构词线索:“了、着、过”常作动词后缀,“性、度、者、家”常作名词后缀,“地”引导状语,“的”引导定语。这些线索虽然是粗粒度的启发式,但作为规则兜底和特征补充依然有效。更准确的说法是:中文的规则线索比英文稀疏,所以统计和深度方法在中文上相对更重要,但这不等于规则方法在中文上一无用武之地。
为何常见:对比英文丰富的词尾变化,中文确实显得“无形态”,初学者容易从“形态变化少”直接跳跃到“规则方法无用”,忽略了中文也在字词层面存在大量可用的构词规律。
误区标注器在自己的测试集上跑出了 97% 的准确率,说明它已经非常可靠,直接部署到线上系统就能一劳永逸。
正解测试集准确率高只代表模型在“同分布”数据上表现好。一旦换到新领域(比如从新闻语料换到医疗病历)、遇到口语化的网络文本、或者碰上大量未登录词,准确率可能断崖式下跌。工程上需要建立持续的评估机制:上线前用目标领域语料做评测,上线后监控线上分布漂移,还要为未知词准备兜底策略。邮局的老张再熟练,面对完全陌生的外国信件,也得先查字典,而不是凭感觉硬分。
为何常见:人们倾向于用单一数字(准确率)来概括模型的全部能力,而忽略了数据分布、领域差异这些看不见的变量,直到线上翻车才发现短板。
面试题
Q1. 词性标注的核心任务是什么?
- A.将文本切分为独立词语单元
- B.为每个词语标注语法类别← 正确答案
- C.识别文本中的命名实体信息
- D.判断句子整体情感倾向方向
答案:B。词性标注的核心是为每个词语分配语法类别标签(名词、动词等),对应邮局给每封信“定性”的动作。A 是分词任务,C 是命名实体识别,D 是情感分析,它们分别是词性标注的上游或下游任务。
Q2. 下列选项中属于实词范畴的是?
- A.名词 动词 形容词 数词← 正确答案
- B.介词 连词 助词 叹词
- C.代词 语气词 感叹词 副词
- D.量词 拟声词 助词 连词
答案:A。实词承载句子的核心语义,名词、动词、形容词、数词、量词都属于实词。B 的介词、连词、助词、叹词都是虚词;C 中语气词、感叹词是虚词;D 中助词、连词是虚词。实词如同有实际内容的包裹,虚词如同封条和胶带。
Q3. 规则方法中“上下文规则”的主要思路是什么?
- A.仅看词语本身的拼写形态特征
- B.借助前后词语线索推断当前词性← 正确答案
- C.统计所有词汇在语料中的频率
- D.使用神经网络自动学习上下文
答案:B。上下文规则利用前后词语的搭配关系来判断当前词的词性,比如“前词是副词则当前词多为动词或形容词”。A 是词形特征规则而非上下文规则;C 偏向统计方法;D 是深度学习方法。上下文规则相当于老张瞄一眼信件来自哪个省份再决定分拣。
Q4. HMM 模型中的转移概率矩阵描述的是什么?
- A.每个词语生成词性标签的概率
- B.词性之间依次转换的概率关系← 正确答案
- C.句子开头第一个词性的初始分布
- D.词语序列在语料中出现的总频率
答案:B。转移概率 a_ij 表示从词性 i 跳到词性 j 的概率,描述的是词性链条前后的衔接规律,对应分拣看板上“从上一个筐到下一个筐”的转移频率。A 是发射概率;C 是初始概率;D 与模型无关。
Q5. 汉语词性标注比英语更具挑战性的主要原因是什么?
- A.汉语词汇基本没有曲折形态变化← 正确答案
- B.汉语的句子语序完全无规律可循
- C.汉语的文字总数远比英语要庞大
- D.汉语中标点符号用法比英语复杂
答案:A。英文有丰富的词形变化(-ing、-ed、-ly),为标注提供了强线索;中文词汇缺乏这类形态标记,同一个“研究”既可以是名词也可以是动词,标注时更依赖上下文推断。B、C、D 的说法要么不准确要么不是核心原因。中文标注更像“凭经验判断”,英文可以部分“看油墨标记”。
Q6. 维特比算法在词性标注中解决的核心问题是什么?
- A.从语料中统计模型需要的全部参数
- B.找出概率最大的词性标注序列← 正确答案
- C.判断输入句子是否符合语法规范
- D.计算某个词在语料中出现的次数
答案:B。维特比是解码算法,在给定模型参数和输入句子后,找出整体概率最大的词性序列。A 是参数估计(训练阶段)的任务;C 是句法分析范畴;D 是简单的计数操作。维特比如同在分拣看板上找出一条从起点到终点最顺的邮路。
Q7. 词性标注通常处于 NLP 处理流程的哪个位置?
- A.文本预处理的早期基础环节← 正确答案
- B.文本生成结果输出的最终末端
- C.深度学习模型训练的收敛阶段
- D.数据采集与清洗之前的规划期
答案:A。词性标注依赖分词结果,通常位于文本预处理阶段,是句法分析、情感分析等下游任务的基础。它不是输出端的任务,也不属于模型训练的收敛阶段,更不是数据采集前的工作。它就像邮局流水线的最前端分拣动作。
Q8. 一个完整 HMM 模型包含哪些组成部分?
- A.状态集合即全部词性标记集合← 正确答案
- B.观测集合即词语构成的词汇表← 正确答案
- C.词性之间的转移概率矩阵← 正确答案
- D.一个可微分的端到端深度模型
答案:ABC。HMM 五元组包括状态集合(词性)、观测集合(词表)、初始概率、转移概率矩阵和发射概率矩阵,A、B、C 分别对应其中三项。D 是深度学习模型,不属于 HMM 的组成部分。五元组就像分拣看板的五个模块:筐、信、起点、跳转表和生成表。
Q9. 提高词性标注准确率的有效措施包括哪些?
- A.扩大训练语料的规模与领域覆盖← 正确答案
- B.引入上下文与词形等丰富线索← 正确答案
- C.将所有未知词统一标成名词类别
- D.为未登录词设计专门的兜底方案← 正确答案
答案:ABD。扩大语料、引入丰富特征、为未知词设计兜底方案都是提升标注准确率的有效手段。C 将所有未知词一律标为名词是错误做法,会掩盖真实词性,如同把所有陌生信件都丢进同一个筐,必然导致大量误分。
Q10. 关于维特比算法,下列说法正确的有哪些?
- A.它是动态规划经典算法之一← 正确答案
- B.它能找出全局最优的标注路径← 正确答案
- C.它持续维护每个节点的局部最优← 正确答案
- D.它无需任何概率模型即可直接工作
答案:ABC。维特比属于动态规划,通过递推维护每个节点的局部最优概率并回溯得到全局最优路径,A、B、C 均正确。D 错误——维特比必须依赖概率模型(转移概率和发射概率)才能计算路径得分,没有模型参数就如同没有分拣手册和看板数据。