最近工作比较忙,重新回顾梯度和导数相关的知识后,决定把注意力放到应用层面。自然语言处理(NLP)是一个相对直观的入门方向,其中 One-Hot 编码是基础也是入门点。本文将用清晰的方式介绍其原理、表示方法及简单示例,帮助理解从词汇到向量的映射过程。
One-Hot 编码的核心思想是:从零向量开始,将文中出现的单词对应的位置置为 1,其余位置为 0。这样就把离散的单词转化为了向量形式,便于后续的矩阵运算和模型输入。
对句子进行分词并忽略标点,同时将所有单词统一小写后,若得到的词汇表为 {time, fruit, flies, like, a, an, arrow, banana},那么每个单词就对应一个长度为 8 的单热向量。记作 1[w] 表示单词 w 的单热表示。
若把短语、句子或文档的单热表示聚合起来,通常采用按词汇表的逐词进行“逻辑或”操作来得到该文本的压缩表示。比如短语 like a banana 的单热矩阵是一个 3×8 的矩阵,其中的列为各自的 8 维单热向量。二进制编码也很常见,即文本/短语在词汇表长度的向量中用 0/1 表示单词的缺失或存在。例如 like a banana 的二进制编码为: [0,0,0,1,1,0,0,1]。
下面给出一个示例流程,用于从文本到向量的转换与可视化:从文本片段中提取并处理英文内容,构建 CountVectorizer/TF-IDF 等向量化工具,计算并展示单热或 TF-IDF 的矩阵及热点词分布。示例包括:
- 从文本集合中提取词袋向量,并将结果以矩阵形式呈现;
- 构建热力图以直观显示单词在不同句子中的出现情况;
- 使用 TF-IDF 对文本进行特征化,并查看前若干热点词及其权重。

示例片段及处理过程(简述):
1) 使用 CountVectorizer 将文本转化为稀疏矩阵,完成单热/袋模型的基础实现;
2) 通过 TF-IDF Vectorizer 提取重要特征,得到每个词的权重分布;
3) 将结果用热力地图等方式进行可视化分析,帮助理解不同文本的特征差异。

