扎根理论的三级编码(开放编码、主轴编码、选择性编码)具体怎么做?能不能举个例子?
张薇 · 首席研究员 · 发布 2026-06-25
三级编码是把访谈原始文本逐层抽象成理论的过程:开放编码逐句贴概念,主轴编码把概念归并成范畴并建立关联,选择性编码提炼一个核心范畴串起整个理论。本文用一段模拟访谈走完全程,并回答理论饱和、要不要用 NVivo、编码能否往返等高频疑问。
扎根理论的三级编码是一条从原始访谈文本逐层抽象到理论的路径:开放编码逐句给现象贴上『概念』标签;主轴编码把同类概念归并成『范畴』并在范畴之间建立因果、条件、策略、结果的关联;选择性编码再从所有范畴里提炼一个能统领全局的『核心范畴』,用一条故事线把理论串起来。关键不是把文本贴满标签,而是让编码服务于『构建一个能解释和解决研究问题的理论』。
为什么扎根理论要分三级编码?
扎根理论(Grounded Theory)主张理论应当从数据中『生长』出来,而不是先有假设再去验证。三级编码对应三种不同的抽象高度:开放编码贴近原始语言、保留细节;主轴编码开始归类和建立结构;选择性编码完成从『一堆范畴』到『一个理论』的跨越。分级的意义在于防止研究者一上来就跳到宏大结论,逼迫分析者把每一步抽象都留下可回溯的痕迹,这也是质性研究信度的来源。
需要澄清的是,『三级编码』是 Strauss 与 Corbin 程序化扎根理论的提法。Glaser 的经典扎根理论只分实质性编码与理论性编码,Charmaz 的建构主义扎根理论用初始编码、聚焦编码、理论编码。新手按 Strauss-Corbin 的开放/主轴/选择性三级入门最具可操作性,但要知道流派之间术语并不完全等价。
准备一段模拟访谈文本
下面用一段虚构的访谈片段贯穿三级编码,研究问题设为『读研期间科研动力是如何维持或流失的』。受访者是一名二年级硕士生:『刚进组的时候我特别有干劲,导师画的饼也挺大。但做了半年实验一直失败,组会上被问到没结果就很难堪。后来我发现师兄们其实也都这样熬,慢慢就不那么焦虑了,反正大家都在硬撑。现在我就是给自己定小目标,这周能把数据跑通就行,不去想毕业那么远的事。』这段文本不长,但已经包含了从期待、挫折、社会比较到自我调节的完整动态,适合演示三级编码。
第一级:开放编码怎么做?
开放编码(Open Coding)是逐句甚至逐行阅读文本,对每一个有意义的现象给出贴近原话的概念标签。原则是『贴着数据走』:标签尽量用受访者自己的语言(称为 in-vivo 编码),先求多求细,不急着合并。对上面那段访谈,可以逐句切分并提炼概念。
| 原始语句 | 开放编码概念 |
|---|
| 刚进组特别有干劲,导师画的饼也挺大 | 初始高动机、导师承诺/画饼 |
| 做了半年实验一直失败 | 持续实验失败 |
| 组会上被问到没结果就很难堪 | 公开场合的挫败感 |
| 发现师兄们其实也都这样熬 | 同辈处境的社会比较 |
| 慢慢就不那么焦虑了,反正大家都在硬撑 | 焦虑被常态化、集体硬撑 |
| 给自己定小目标,这周能把数据跑通就行 | 目标降维、短期可控目标 |
| 不去想毕业那么远的事 | 回避远期压力源 |
这一步常见误区是直接写出『动机理论』这种高度抽象的标签,那是越级。开放编码的产物应当是几十个贴地的概念,允许重叠、允许暂时矛盾,后面再处理。
第二级:主轴编码怎么把概念归并成范畴?
主轴编码(Axial Coding)做两件事:一是把开放编码得到的零散概念按相似性聚成更高一层的『范畴』(category);二是在范畴之间建立关联。Strauss-Corbin 提供了一个经典的关联框架——条件、现象、脉络、中介条件、行动/互动策略、结果,新手可以拿它当脚手架来追问范畴之间是什么关系。
- 归并:把『初始高动机』『导师画饼』并入范畴 A『入场期望』;把『持续实验失败』『公开挫败感』并入范畴 B『科研挫折』;把『社会比较』『焦虑常态化』并入范畴 C『同辈缓冲』;把『目标降维』『回避远期压力』并入范畴 D『自我调节策略』。
- 定位:用条件—策略—结果框架追问。范畴 B(科研挫折)是触发条件,范畴 C(同辈缓冲)是中介/脉络条件,范畴 D(自我调节)是行动策略。
- 建立关联:形成一条链——高期望遇到挫折产生动力危机,同辈缓冲降低了焦虑强度,促使个体采取目标降维这一策略,从而把动力从『为毕业』重构为『为短期可控目标』。
- 回到数据验证:把这条关联拿回原文逐句核对,确认每段关联都有文本支撑,而不是研究者脑补。
主轴编码的输出是几个相互关联的范畴及其关系网,而不再是孤立标签。此时理论的骨架已经隐约可见,但还缺一个统领全局的核心。
第三级:选择性编码怎么提炼核心范畴?
选择性编码(Selective Coding)要从所有范畴里识别出一个『核心范畴』(core category)——它出现频繁、能与多数其他范畴产生关联、且抽象程度最高,能用一句话概括整个故事。对上面的例子,核心范畴可以提为『科研动力的降维续航』:个体并非克服了挫折恢复原有高动机,而是通过缩小目标尺度、借助同辈处境把动力维持在一个低但可持续的水平。
提炼出核心范畴后,要写一条『故事线』(story line)把所有范畴串成理论:高入场期望与科研挫折之间的落差制造了动力危机;同辈缓冲提供了情绪上的合理化;个体随之采取目标降维策略,把动力重构为短期可控的续航模式。这条故事线就是该研究最终要提出的『扎根理论』。判断这一级是否做到位,标准是:能否用核心范畴解释回收来的大部分关键现象,而不是只解释了一个访谈片段。
三级编码的抽象层次对比
| 层级 | 核心动作 | 产出物 | 抽象程度 |
|---|
| 开放编码 | 逐句标注、提炼概念 | 几十个贴近原话的概念 | 低(贴地) |
| 主轴编码 | 概念归并成范畴、建立关联 | 若干相互关联的范畴 | 中(有结构) |
| 选择性编码 | 提炼核心范畴、写故事线 | 一个核心范畴+一条理论 | 高(成理论) |
理论饱和:什么时候可以停止编码?
理论饱和(theoretical saturation)指的是继续收集和编码新数据时,不再涌现新的范畴、新的范畴属性或新的关联,故事线趋于稳定。判断饱和不是看访谈了多少人,而是看新数据的边际信息量。实务上很多质性研究在 12 到 20 个访谈左右接近饱和,但这只是经验区间,真正的依据是『新访谈是否还在改变你的范畴结构』。
扎根理论强调理论抽样(theoretical sampling):不是一次抽够样本再分析,而是边编码边决定下一个该访谈谁——哪里的范畴还薄弱、哪类反例还没见到,就去补哪类受访者。饱和判断与理论抽样是绑定的,孤立地数样本量并不能证明饱和。
要不要用 NVivo 之类的工具?
NVivo、ATLAS.ti、MAXQDA 等质性分析软件本质是『编码管理器』:帮你给文本片段挂标签、按节点(node)归类、检索同一编码下的所有引文、统计共现。它们能极大提升整理效率,尤其当访谈量大、编码数上百时。但软件不会替你思考——概念怎么提、范畴怎么归、核心范畴是什么,仍然是研究者的判断。
诚实地说:样本只有几篇、或处于学习阶段时,用 Excel 或 Word 高亮加表格手工编码完全够用,甚至更有助于培养『贴着数据走』的手感。工具是加速器不是替代品,先把三级编码的逻辑想清楚,再决定要不要上 NVivo。
重要前提:编码不是一次成型,可以往返
很多新手以为开放、主轴、选择性是严格的三个先后阶段,做完一个再做下一个。实际操作中三级编码高度迭代:做主轴编码时常会发现某个开放编码标签提错了,要回去改;写故事线时发现某个范畴撑不起来,要回主轴编码重新归并;甚至会回到访谈现场补数据。这种来回往返(constant comparison,持续比较)正是扎根理论的核心方法,不是做错了,而是方法本身要求的。
一个常被忽略的原则:编码要服务于理论,而不是贴标签
三级编码最容易跑偏的地方,是把它做成『给文本贴满五颜六色标签』的体力活,贴完却说不出这些标签合起来回答了什么问题。判断编码质量的真正标准只有一个:它是否在朝着『构建一个能解释研究问题的理论』收敛。每提一个概念、每归一个范畴,都应当能回答『这对回答我的研究问题有什么用』。如果答不上来,说明编码偏离了目标,该回到研究问题本身重新校准,而不是继续堆标签。
开放编码和主轴编码的根本区别是什么?
开放编码是把原始文本拆成贴近原话的零散概念,只求多和细;主轴编码则把这些概念归并成更高层的范畴,并在范畴之间建立条件、策略、结果等关联。前者是拆解,后者是结构化。
扎根理论一定要严格按三级顺序做完吗?
不必。开放、主轴、选择性是抽象层次的区分,不是僵硬的时间阶段。实际编码高度迭代,常需返回上一级修改概念或归类,这种持续比较和往返正是扎根理论要求的方法,而非操作失误。
访谈要做多少个才够?
没有固定数字,依据是理论饱和——新访谈不再带来新范畴或新关联即可停止,经验区间常在 12 到 20 个左右。配合理论抽样,哪类范畴薄弱就补哪类受访者,比单纯凑样本量更可靠。
不用 NVivo 能做扎根理论吗?
能。NVivo 等软件本质是编码管理器,提升整理和检索效率,但不替你判断概念和范畴。样本少或学习阶段用 Excel、Word 手工编码完全可行,核心的理论建构始终由研究者完成。
扎根理论和主题分析(thematic analysis)有什么区别?
主题分析侧重从数据中识别和归纳主题,通常止步于描述性主题框架;扎根理论目标是构建一个有因果或过程关联的理论,需要核心范畴和故事线,抽象层次更高、对理论抽样和饱和的要求也更严格。
作者:张薇 —— 信息科学博士,专注于学术信息检索和知识图谱研究,主持多项国家级科研项目。