文本表示为张量


文档摘要

文本表示为张量 课前测验 文本分类 在本节的前半部分,我们将专注于文本分类任务。我们将使用AG 新闻数据集,该数据集包含如下新闻文章: 类别:科技/技术 标题:肯塔基州公司获得研究肽的拨款(美联社) 正文:美联社报道——由路易斯维尔大学的一位化学研究人员创办的一家公司获得了开发某项技术的拨款…… 我们的目标是根据文本将新闻文章分类到一个类别中。 文本表示 如果我们想用神经网络解决自然语言处理(NLP)任务,我们需要某种方式将文本表示为张量。计算机已经通过编码如ASCII或UTF-8将文本字符映射为屏幕上的字体来表示文本字符。 图像来源 作为人类,我们理解每个字母代表什么,以及所有字符如何组合成句子中的单词。然而,计算机本身并没有这种理解能力,神经网络必须在训练过程中学习其含义。

文本表示为张量

课前测验

文本分类

在本节的前半部分,我们将专注于文本分类任务。我们将使用AG 新闻数据集,该数据集包含如下新闻文章:

  • 类别:科技/技术
  • 标题:肯塔基州公司获得研究肽的拨款(美联社)
  • 正文:美联社报道——由路易斯维尔大学的一位化学研究人员创办的一家公司获得了开发某项技术的拨款……

我们的目标是根据文本将新闻文章分类到一个类别中。

文本表示

如果我们想用神经网络解决自然语言处理(NLP)任务,我们需要某种方式将文本表示为张量。计算机已经通过编码如ASCII或UTF-8将文本字符映射为屏幕上的字体来表示文本字符。

图像显示了一个字符映射到ASCII和二进制表示的图表

图像来源

作为人类,我们理解每个字母代表什么,以及所有字符如何组合成句子中的单词。然而,计算机本身并没有这种理解能力,神经网络必须在训练过程中学习其含义。

因此,在表示文本时我们可以采用不同的方法:

  • 字符级表示,当我们逐个字符地表示文本时。给定文本语料库中有C种不同的字符,“Hello”这个词会被表示为一个5xC的张量。每个字母都会对应于一个在独热编码中的张量列。
  • 词级表示,在这种方法中,我们创建文本中所有单词的词汇表,然后使用独热编码表示这些单词。这种方法更好一些,因为单独来看,每个字母并没有太多意义,因此通过使用更高级别的语义概念——单词,我们简化了神经网络的任务。然而,由于字典大小很大,我们需要处理高维稀疏张量。

无论采用哪种表示方法,首先都需要将文本转换为一系列标记,一个标记可以是一个字符、一个单词,有时甚至是一个单词的一部分。然后,我们将标记转换为数字,通常使用词汇表,并将该数字通过独热编码输入到神经网络中。

N-Grams

在自然语言中,单词的确切含义只能在上下文中确定。例如,“神经网络”和“捕鱼网”的意思完全不同。一种考虑这一点的方法是在模型中基于单词对进行构建,并将单词对视为独立的词汇表标记。这样,句子“我喜欢去钓鱼”将被表示为以下标记序列:“我 喜欢”,“喜欢 去”,“去 钓鱼”。这种方法的问题在于字典大小会显著增加,并且像“去 钓鱼”和“去 购物”这样的组合虽然有相同的动词,但没有共享任何语义相似性。

在某些情况下,我们也可以考虑使用三元组——三个单词的组合——作为标记。这种方法通常称为n-grams。同样,在字符级表示中使用n-grams也是有意义的,在这种情况下,n-grams大致对应于不同的音节。

词袋模型和TF/IDF

当解决诸如文本分类等任务时,我们需要能够将文本表示为一个固定大小的向量,该向量将用作最终密集分类器的输入。最简单的方法之一是将各个单词表示结合起来,例如,通过将它们相加。如果我们对每个单词使用独热编码,最终会得到一个频率向量,显示每个单词在文本中出现的次数。这种文本表示称为词袋模型(BoW)。

图片由作者提供

词袋模型本质上表示哪些单词出现在文本中以及以何种数量出现,这确实可以很好地指示文本的内容。例如,政治新闻文章可能会包含诸如“总统”和“国家”之类的词语,而科学出版物则可能包含诸如“对撞机”、“发现”等词语。因此,单词频率在许多情况下可以很好地指示文本内容。

词袋模型的问题在于,一些常见的单词,如“和”、“是”等,在大多数文本中都出现,而且它们的频率最高,掩盖了真正重要的单词。我们可以通过考虑单词在整个文档集合中出现的频率来降低这些单词的重要性。这就是TF/IDF方法背后的主要思想,在本课程附带的笔记本中将详细介绍这一方法。

然而,这些方法都无法完全考虑文本的语义。我们需要更强大的神经网络模型来做到这一点,我们将在本节后面讨论。

✍️ 练习:文本表示

继续在以下笔记本中学习:

结论

到目前为止,我们已经研究了可以为不同单词添加频率权重的技术。然而,它们无法表示含义或顺序。正如著名语言学家J.R. Firth在1935年所说,“一个词的完整含义总是具有情境性的,脱离上下文的词的研究是不可信的。”我们在课程后面将会学习如何利用语言建模从文本中捕获情境信息。

挑战

尝试使用词袋模型和其他数据模型进行其他练习。你可以从这个Kaggle竞赛中获得灵感。

课后测验

复习与自学

Microsoft Learn上实践你的技能,使用文本嵌入和词袋技术。

作业:笔记本

声明:
本文件灏天文库团队进行了翻译。尽管我们力求准确,但请注意,翻译可能包含错误或不准确之处。原文档以其原始语言为准。我们不对因使用此翻译而产生的任何误解或误译负责。


作者与出处
原作者: microsoft
来源:microsoft
许可证:MIT
整理: 灏天文库整理
由灏天文库结构化整理,提供目录导航、全文检索与在线阅读,便于系统化学习
发布者: 作者: microsoft 转发
评论区 (0)
U