1. 从符号到语义:AI理解语言的核心路径
在自然语言处理领域,让机器理解语义一直是核心挑战。传统方法依赖人工规则和特征工程,而现代深度学习通过分布式表示实现了语义的自动学习。这个过程就像教孩子认字——不是死记硬背字典解释,而是通过大量阅读自然掌握词语用法。
1.1 符号的数字化表示
所有NLP系统首先需要解决的基础问题是:如何将人类语言转换为机器可处理的格式。最直观的方案是建立词汇表:
python复制vocab = {
"我": 0,
"喜欢": 1,
"猫": 2,
"狗": 3,
# ...其他词语
}
这种编号方案称为tokenization(分词)。现代分词器如BERT使用的WordPiece会将"unhappy"拆分为["un", "##happy"],平衡词汇表大小与覆盖范围。需要注意:
- 中文通常按字切分,但常用词可保留完整
- 英文需处理大小写、词形变化等
- 特殊token([CLS]、[SEP]等)需要预留编号
实际工程中,HuggingFace的tokenizers库提供了主流模型的标准化实现。选择分词器时需注意其词汇表是否覆盖目标领域术语。
1.2 从离散编号到连续空间
单纯的编号无法表达语义关系("猫"和"狗"都是宠物,但与"汽车"差异大)。解决方案是通过嵌入层(Embedding Layer)将离散ID映射到连续向量空间:
python复制import torch
embedding = torch.nn.Embedding(num_embeddings=10000, embedding_dim=768)
input_ids = torch.tensor([0, 1, 2]) # ["我", "喜欢", "猫"]
embeddings = embedding(input_ids) # 形状变为(3, 768)
这个转换过程的关键在于:
- 初始化时向量随机生成
- 通过训练自动调整向量位置
- 语义相似的词会在空间中靠近(余弦相似度高)
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 语义空间的构建原理
2.1 分布式语义假说
语言学家Harris提出:"一个词的含义取决于它的上下文"。这个思想在Word2Vec中得到验证:
- S
