目录
团队博客: CSDN AI小组
相关阅读
1 前言
在自然语言处理(Natural Language Processing,NLP)领域中,语言表示是一项核心任务,其旨在将人类语言转化为计算机可理解和处理的形式。语言表示的基本原理和历史演变是理解和应用 NLP 技术的基石。随着人工智能和深度学习的迅猛发展,语言表示也经历了一系列的演进和改进。从早期符号化的离散表示方法到如今基于深度学习的分散式表示 (Distributed Representations) 方法,语言表示都在 NLP 任务中扮演着至关重要的角色。本文主要从离散表示和连续表示 (分散式表示是连续表示的一类方法) 的角度,介绍语言表示的基本原理和历史演变。
2 语言表示
2.1 离散表示
离散表示主要分为符号表示和基于聚类的表示两类方法,早期的语言表示方法是符号化的离散表示。为了方便计算机进行计算,一般将符号或符号序列转换为高维的稀疏向量。但是符号表示的缺点是词与词之间没有距离的概念,比如“电脑”和“计算机”被看成是两个不同的词,这和语言的特性并不相符。因此,符号表示需要引入人工知识库,比如同义词词典、上下位词典等,才能有效地进行后续的语义计算。一种改进的方法是基于聚类的词表示,比如 Brown 聚类算法,通过聚类得到词的类别簇来改进词的表示。下面将介绍一些常见的离散表示方法,其中除了基于聚类的表示方法之外,其余的都是符号表示方法。
2.1.1 独热编码
独热编码 (One-Hot Encoding) 是一种离散的词向量化方法。它将词转换为二进制向量表示,以便于分析和建模。以下是一个例子来说明独热编码的工作原理:
假设我们有一个词典,词典中包含以下5个词语:
电脑
计算机
苹果
香蕉
橙子
词典的大小是向量的维度 (此处为5) ,One-Hot 向量就是其中一维为 1、其余维为 0 的向量,以下是词典中所有词的词向量,其中每一行或每一列,都可看作是对应词的向量表示:
| - | 电脑 | 计算机 | 苹果 | 香蕉 | 橙子 |
|---|---|---|---|---|---|
| 电脑 | 1 | 0 | 0 | 0 | 0 |
| 计算机 | 0 | 1 | 0 | 0 | 0 |
| 苹果 | 0 | 0 | 1 | 0 | 0 |
| 香蕉 | 0 | 0 | 0 | 1 | 0 |
| 橙子 | 0 | 0 | 0 | 0 | 1 |
2.1.2 词袋模型
词袋模型是自然语言处理中常用的一种表示文本的方法,它将文本表示为一个固定长度的向量,忽略了文本中词语的顺序和语法结构,仅考虑词语的在文本中的出现频率。
假设我们有以下三个文本句子作为我们的样本:
今天天气真好!
我们出去公园露营了。
露营真有意思,又是开心的一天,下次天气好,我们还去公园露营!
首先,我们需要对这些句子进行预处理。在预处理阶段,我们需要进行分词,并去除常见的停用词(如 “今天”、“我们” 等)。预处理后的样本如下所示:
天气 好
公园 露营
露营 有意思 开心 天气 好 公园 露营
接下来,我们需要构建一个词汇表,该词汇表包含了在所有文本中出现的唯一单词。在这个例子中,词汇表可能包括:“天气”、“好”、“公园”、“露营”、“有意思”、“开心”。
然后,我们将每个句子表示为一个向量。向量的长度等于词汇表中单词的数量。对于每个句子,我们统计每个单词在该句子中的出现次数,并将其放入向量对应的位置。
在这个例子中,我们可以得到以下向量表示:
[1, 1, 0, 0, 0, 0]
[0, 0, 1, 1, 0, 0]
[1, 1, 1, 2, 1, 1]
上述向量表示分别表示了句子中每个单词的出现次数。例如,第一个句子中,“天气”、“不错”分别出现了1次,其他单词则没有出现。
这样,我们就将文本表示为了一个固定长度的向量,可以用于机器学习算法进行训练和分类等任务。然而,词袋模型忽略了单词的顺序信息,可能丢失了一些上下文相关的语义信息。
2.1.3 TF-IDF 模型
TF-IDF(Term Frequency-Inverse Document Frequency)是一种用于加权表示词语在文本中重要性的技术,它常常与词袋模型结合使用。
词袋模型仅考虑词语的出现频率,将文本表示为一个向量,而不考虑词语的重要性。TF-IDF是一种改进的方法,它通过结合词频(TF)和逆文档频率(IDF)来度量一个词语在文本集合中的重要性。
TF(词频)表示一个词在一个文档中的出现次数。它衡量了一个词在特定文档中的重要性,如果一个词在文档中出现的次数越多,那么它对该文档的重要性也就越高。公式如下:
TF(t, d) = (词t在文档d中出现的次数) / (文档d中的总词数)
IDF(逆文档频率)衡量了一个词在整个文档集合中的普遍程度。对于一个词在整个文档集合中经常出现的情况,其IDF值较低;而对于一个在文档集合中很少出现的词,其IDF值较高。这样设计是为了降低常见词语对文本的重要性,增加罕见词语的权重。公式如下:
IDF(t) = log((总文档数) / (包含词t的文档数 + 1))
TF-IDF通过将TF和IDF相乘来计算一个词语的最终权重。这种权重表示了一个词语在特定文档中的重要性,同时考虑了它在整个文档集合中的普遍程度。在词袋模型中,TF-IDF被用来代替简单的词频,以更准确地表示词语的重要性。公式如下:
TF-IDF(t, d) = TF(t, d) * IDF(t)
因此,TF-IDF可以说是在词袋模型的基础上引入了对词语重要性的考量,以改进文本的表示和特征选择。
2.1.4 N-gram 模型
N-gram 模型是一种基于词语序列的文本表示方法。它将文本中的连续 N 个词语作为一个单元进行处理,形成一个 N-gram 序列。通过统计文本中不同 N-gram 序列权重得分 (词频、TF-IDF等),可以得到文本的表示。
使用“词袋模型”中预处理后的样本,进行 Bi-gram (2-gram) 操作后的结果如下所示:

本文介绍了自然语言处理中语言表示的发展,从离散的独热编码、词袋模型、TF-IDF、N-gram到连续的WordEmbedding(如Word2Vec、GloVe、FastText),再到基于神经网络的RNN、CNN、ELMo,以及Transformer架构的GPT、BERT和BART。这些模型不断改进,捕捉语言的语义和上下文信息,提高NLP任务的性能。
最低0.47元/天 解锁文章
9206

被折叠的 条评论
为什么被折叠?



