1. 文本编码:NLP世界的基石
当你第一次接触自然语言处理(NLP)时,可能会被各种复杂的模型和算法吓到。但所有NLP任务都有一个共同的起点——如何让计算机理解人类语言。这就是文本编码要解决的问题。想象一下,你教一个完全不懂中文的外国人读《红楼梦》,首先要做的就是把汉字转换成他能理解的符号系统。文本编码就是完成这个"翻译"工作的关键技术。
在NLP领域,文本编码指的是将人类可读的文本转换为机器可处理的数值表示。这个过程看似简单,实则暗藏玄机。早期的ASCII编码只能处理英文字符,而现代NLP系统需要处理全球各种语言、考虑词语的上下文关系、甚至理解语义的微妙差异。从简单的one-hot编码到复杂的BERT嵌入,文本编码技术的发展直接决定了NLP模型的能力上限。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 文本编码的核心方法演进
2.1 从字符到词:基础编码方案
最早的文本编码方案可以追溯到计算机处理文本的初期阶段。ASCII码使用7位二进制数表示128个字符,包括英文字母、数字和常用符号。这种编码简单直接,但存在明显局限:
- 仅支持英语字符
- 无法表示汉字等非拉丁字符
- 缺乏语义信息
随着计算机全球化,Unicode应运而生。它为世界上所有书写系统的每个字符分配唯一编码,解决了多语言支持问题。但在NLP中,仅解决字符表示远远不够,我们需要更高级的文本表示方法。
词袋模型(Bag of Words)是最早的文本表示方法之一。它将文本视为无序的词汇集合,通过统计词频构建文本向量。例如:
"我爱自然语言处理 自然语言处理也爱我" →
这种方法简单易懂,但存在明显缺陷:
- 忽略词序信息
- 无法处理同义词和一词多义
- 维度灾难(词汇表可能非常大)
2.2 词嵌入:语义编码的突破
词嵌入(word embedding)技术彻底改变了文本编码的格局。与one-hot编码不同,词嵌入将每个词映射为低维稠密向量(通常50-300维),且语义相似的词在向量空间中位置接近。
Word2Vec是里程碑式的词嵌入模型,它通过预测上下文词来学习词向量。例如"国王 - 男人 + 女人 ≈ 女王"这样的向量运算展示了词嵌入捕捉语义关系的能力。在实践中,Word2Vec有两种实现方式:
- CBOW
