上下文向量的应用

上下文向量是高级 NLP 任务的强大工具。它们可以让你捕捉词语的上下文含义,例如在词语具有多种含义时,识别句子中词语的正确含义。在本帖中,我们将探讨上下文向量的一些示例应用。具体来说,

  • 你将学习如何从文档中提取上下文关键词
  • 你将学习如何使用上下文向量生成文档摘要

通过我的书籍《Hugging Face Transformers中的NLP》快速启动您的项目。它提供了带有工作代码的自学教程

让我们开始吧。

上下文向量的应用
照片作者:Erik Karits。部分权利保留。

概述

这篇文章分为两部分:

  • 上下文关键词提取
  • 上下文文本摘要

上下文关键词提取

上下文关键词提取是一种根据词语的上下文相关性来识别文档中最重要词语的技术。试想一下,你有一个文档,想突出最具有代表性的词语。一种方法是找出与文档语义最相似的词语。这项技术对于各种 NLP 任务都很有用,例如信息检索、文档聚类和文本摘要。

让我们通过将文档中的每个词语与整个文档进行比较来实现一个简单的上下文关键词提取系统

在此示例中,BERT 模型用于为文档中的每个词语生成上下文向量。文档向量是所有 token 向量的平均值。或者,您可以通过将整个文档输入模型后提取 `[CLS]` 前缀 token 来获取文档向量。但是,这里没有使用这种方法,因为输入文档可能太长,模型无法一次处理。相反,文档被分割成句子,每个句子被单独处理。

有了每个词语的向量和文档向量,就可以计算每个词语与文档之间的余弦相似度。`extract_contextual_keywords()` 函数返回相似度得分最高的 N 个词语。然后打印这些结果。

余弦相似度衡量两个向量的接近程度。在这种情况下,如果一个词语向量接近文档向量,则认为它很好地代表了文档。之所以有效,是因为词语向量是上下文感知的,由 Transformer 模型生成。与依赖频率(如 TF-IDF)或预定义规则(如 RAKE)的传统关键词提取方法不同,这种方法利用了 Transformer 模型所捕获的语义理解。

运行此代码时,您将获得

要改进结果,您可以考虑实现停用词移除,以排除输出中的常用词,如“to”。

上下文文本摘要

文档摘要可以通过多种方式完成。最常见的方法之一是从文档中选择最有代表性的句子,这种方法称为抽取式摘要。

一种执行抽取式摘要的方法是为每个句子生成一个向量,并为整个文档生成一个向量。然后选择与文档最相似的句子。使用上下文向量,可以轻松地实现这种方法。我们来试试

如果运行此代码,您将获得

在此示例中,`get_sentence_embedding()` 函数用于通过使用 Transformer 最后一层的 `[CLS]` token 嵌入来为整个句子生成嵌入。`[CLS]` token 是一个特殊的 token,加在句子的前面,Transformer 被训练来生成代表整个输入的嵌入。

在 `extractive_summarize()` 函数中,您为文档中的每个句子生成句子嵌入,并将文档嵌入计算为所有句子嵌入的平均值。然后,您计算文档嵌入与每个句子嵌入之间的余弦相似度,选择相似度得分最高的 N 个句子。

摘要是通过将这些前 N 个句子按它们在文档中的原始顺序连接起来形成的。这假定在语义上最相似的句子最能代表文档。

进一步阅读

以下是一些您可能觉得有用的进一步阅读资料:

总结

在本篇文章中,您了解了上下文向量在各种应用中的使用。特别是,您学习了:

  • 如何为文档、句子或单词生成上下文向量
  • 如何执行上下文关键词提取以在文档中查找重要关键词
  • 如何执行提取式摘要

这些应用展示了上下文向量在高级 NLP 任务中的强大功能和多功能性。通过理解和利用这些向量,您可以构建能够捕获文本中丰富语义关系的复杂 NLP 系统。

想在您的NLP项目中使用强大的语言模型吗?

NLP with Hugging Face Transformers

在您自己的机器上运行最先进的模型

...只需几行Python代码

在我的新电子书中探索如何实现
使用 Hugging Face Transformers 进行自然语言处理

它涵盖了在以下任务上的实践示例实际用例文本分类、摘要、翻译、问答等等...

最终将高级NLP带入
您自己的项目

没有理论。只有实用的工作代码。

查看内容

暂无评论。

发表评论

Machine Learning Mastery 是 Guiding Tech Media 的一部分,Guiding Tech Media 是一家领先的数字媒体出版商,专注于帮助人们了解技术。访问我们的公司网站以了解更多关于我们的使命和团队的信息。