几种主流词嵌入技术详解
NLP 中的词嵌入概述
自然语言处理(NLP)中的**词嵌入(Word Embedding)**是一个核心术语,用于以实值向量的形式表示文本分析中的单词。这是 NLP 领域的一项重大进步,显著提高了计算机理解基于文本内容的能力。它被认为是深度学习在解决具有挑战性的自然语言处理问题方面最重要的突破之一。
在这种方法中,单词和文档被转换为数字向量,使得语义相似的单词拥有相似的向量表示。提取的特征被输入到机器学习模型中,以便处理文本数据并保留语义和句法信息。这些信息一旦以转换后的形式接收,就会被 NLP 算法使用,这些算法可以轻松消化这些学习到的表示并处理文本信息。
由于这项技术带来的巨大优势,ML NLP 的受欢迎程度正在飙升,使其成为最受开发人员欢迎的技术之一。
现在您已经对该主题有了基本的了解,让我们从头开始向您介绍词嵌入、其技术和应用。
什么是词嵌入?
词嵌入或词向量是我们用来表示文档和单词的一种方法。它被定义为一个数字向量输入,允许具有相似含义的单词具有相同的表示。它可以近似含义并在较低维空间中表示单词。这些可以比使用 WordNet 等图形嵌入的手工构建模型训练得更快。
例如,具有 50 个值的词嵌入可以表示 50 个独特特征。许多人选择预先训练的词嵌入模型,如 Flair、fastText、SpaCy 等。
示例场景
假设我们有一个监督学习任务,需要预测哪些推文与真实灾难有关,哪些不是(分类任务)。这里的独立变量是推文(文本),目标变量是二进制值(1:真实灾难,0:非真实灾难)。
机器学习和深度学习算法只接受数字输入。那么,我们如何将推文转换为数值呢?我们将深入研究解决此类问题的技术,但首先让我们看看词嵌入提供的解决方案。
解决方案
NLP 中的词向量是一种将单个单词表示为低维空间中的实值向量并捕获单词间语义的技术。每个单词都由具有数十或数百维的实值向量表示。
词频 - 逆文档频率 (TF-IDF)
词频 - 逆文档频率(TF-IDF)是用于文本词向量化的经典机器学习算法,包含两个指标,即词频(TF)和逆文档频率(IDF)。
该算法采用统计测量来查找文本中的词语相关性,文本可以是单个文档的形式,也可以是称为语料库的各种文档的形式。
- 词频 (TF):分数衡量的是特定文档中单词出现的频率。简单来说,就是统计文档中单词出现的次数。
- 逆文档频率 (IDF):分数衡量文本中单词的稀有性。它比词频分数更重要,因为尽管 TF 分数赋予频繁出现的单词更多权重,但 IDF 分数关注的是语料库中可能包含重要信息的罕见单词。
TF-IDF 算法可用于解决信息检索、停用词删除、关键词提取和基本文本分析等较简单的自然语言处理和机器学习问题。然而,它无法有效地捕捉序列中单词的语义关系。
TF-IDF 矢量化示例
为了创建 TF-IDF 向量,我们通常使用 Scikit-learn 的 TfidfVectorizer。将其应用于示例推文后,我们会得到一个矩阵,其中行表示每篇文档,列表示词汇表。
from sklearn.feature_extraction.text import TfidfVectorizer
import numpy as np
# 示例推文列表
texts = [
"真可惜",
"发誓果酱让世界燃烧",
"发誓真正的车祸",
"不幸的是,汽车着火了"
]
# 初始化向量器
vectorizer = TfidfVectorizer()
X = vectorizer.fit_transform(texts)
# 输出稀疏矩阵
print(X.toarray())
print(vectorizer.get_feature_names_out())
得到的这个矩阵可以和目标变量一起用来训练机器学习/深度学习模型。


