互联网技术 / 互联网资讯 · 2024年3月9日

One-Hot 编码在自然语言处理中的应用

最近工作比较忙,重新回顾梯度和导数相关的知识后,决定把注意力放到应用层面。自然语言处理(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 对文本进行特征化,并查看前若干热点词及其权重。

关于自然语言处理之One Hot模型

示例片段及处理过程(简述):

1) 使用 CountVectorizer 将文本转化为稀疏矩阵,完成单热/袋模型的基础实现;

2) 通过 TF-IDF Vectorizer 提取重要特征,得到每个词的权重分布;

3) 将结果用热力地图等方式进行可视化分析,帮助理解不同文本的特征差异。

关于自然语言处理之One Hot模型