几种Word Embedding技术详解

news2025/2/26 4:15:53

NLP 中的词嵌入是一个重要术语,用于以实值向量的形式表示用于文本分析的单词。这是 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 向量,我们使用 Scikit-learn 的 TF-IDF Vectorizer。将其应用于前 4 条示例推文后,我们获得 -

在这里插入图片描述

TfidfVectorizer 的输出

行表示每篇文档,列表示词汇表,通过上述公式得到tf-idf(i,j)的值,得到的这个矩阵可以和目标变量一起用来训练机器学习/深度学习模型。

现在让我们讨论两种不同的词嵌入方法。我们还将讨论实际操作部分!

词袋模型(BOW)

词袋是一种流行的文本词嵌入技术,其中向量中的每个值代表文档/句子中的单词数。换句话说,它从文本中提取特征。我们也称之为矢量化。

为了帮助您入门,下面介绍了如何创建 BOW。

  • 第一步,你必须将文本标记成句子。
  • 接下来,第一步标记化的句子有进一步标记化的单词。
  • 删除所有停用词或标点符号。
  • 然后,将所有单词转换为小写。
  • 最后,创建单词的频率分布图。

下面我们将在连续词选择袋中用适当的例子来讨论 BOW。

Word2Vec

Word2Vec 方法由 Google 于 2013 年开发。目前,我们将该技术用于所有高级自然语言处理(NLP) 问题。它是为了训练词嵌入而发明的,基于分布假设。

在这个假设中,它使用 skip-gram 或连续词袋(CBOW)。

这些基本上是浅层神经网络,具有输入层、输出层和投影层。它通过考虑单词在历史和未来的顺序来重建单词的语言上下文。

该方法涉及对文本语料库进行迭代以学习单词之间的关联。它依赖于一个假设,即文本中的相邻单词彼此具有语义相似性。它有助于将语义相似的单词映射到几何上接近的嵌入向量。

它使用余弦相似度度量来测量语义相似度。余弦相似度等于 Cos(角度),其中角度是在两个单词/文档的向量表示之间测量的。

  • 所以如果余弦角为 1,则表示单词重叠。
  • 如果余弦角是直角或者90°,则表示单词之间没有上下文相似性,是相互独立的。

总而言之,我们可以说这个度量标准为相同的板分配了相似的向量表示。

Word2Vec 的两种变体

Word2Vec 有两种基于神经网络的变体:连续词袋(CBOW)和 Skip-gram。

1. CBOW - 连续词袋变体包括神经网络模型所采用的各种输入。由此,它可以预测与作为输入的不同单词的上下文密切相关的目标单词。它是一种快速且很好的方法,可以为经常出现的单词找到更好的数字表示。让我们了解 CBOW 的上下文和当前单词的概念。

在这里插入图片描述

在 CBOW 中,我们定义一个窗口大小。中间的单词是当前单词,周围的单词(过去和未来的单词)是上下文。CBOW 利用上下文来预测当前单词。每个单词都使用定义的词汇表中的 One Hot Encoding 进行编码,然后发送到 CBOW 神经网络。

在这里插入图片描述

隐藏层是标准的全连接密集层。输出层根据词汇表生成目标词的概率。

正如我们之前讨论过的词袋(BOW)以及它也被称为矢量化器,我们将在这里举一个例子来进一步阐明它。

让我们从灾难推文中选取一小部分(4 条推文)来了解 BOW 的工作原理:-

“真可惜”,

“发誓果酱让世界燃烧”,

“发誓真正的车祸”,

“不幸的是,汽车着火了”

为了创建 BOW,我们使用 Scikit-learn 的 CountVectorizer,它可以对文本文档集合进行标记,构建已知单词的词汇表,并使用该词汇表对新文档进行编码。

在这里插入图片描述

CountVectorizer 的输出

这里的行代表每个文档(在我们的例子中为 4 个),列代表词汇表(所有文档中唯一的单词),值代表相应行的单词数。

同样,我们可以将 CountVectorizer 应用于完整的训练数据推文(11,370 篇文档),并获得一个矩阵,该矩阵可与目标变量一起用于训练机器学习/深度学习模型。

2. Skip-gram — Skip-gram 是一种与 CBOW 略有不同的词嵌入技术,因为它不根据上下文预测当前单词。相反,每个当前单词与连续投影层一起用作对数线性分类器的输入。这样,它可以预测当前单词前后一定范围内的单词。

这个变体只接受一个单词作为输入,然后预测与之密切相关的上下文单词。这就是它能够有效表示稀有词的原因。

在这里插入图片描述

Word2Vec(两种变体)的最终目标是学习隐藏层的权重。隐藏的结果将用作我们的词嵌入!现在让我们看看使用 Word2Vec 创建自定义词嵌入的代码-

Import Libraries
from gensim.models import Word2Vec
import nltk
import re
from nltk.corpus import stopwords


预处理文本

#Word2Vec inputs a corpus of documents split into constituent words.
corpus = []
for i in range(0,len(X)):
 tweet = re.sub(“[^a-zA-Z]”,” “,X[i])
 tweet = tweet.lower()
 tweet = tweet.split()
 corpus.append(tweet)


接下来是激动人心的部分!让我们尝试从推文中找出一些随机单词的最相似词(矢量表示) -
model.wv.most_similar(‘disaster’)

输出 -

在这里插入图片描述

单词元组列表及其预测概率
‘灾难’的嵌入向量 -

在这里插入图片描述
单词元组列表及其预测概率
‘灾难’的嵌入向量 -

在这里插入图片描述

维数 = 100

词袋模型和 TF-IDF 面临的挑战

现在让我们讨论一下迄今为止讨论过的两种文本矢量化技术所面临的挑战。

在 BOW 中,向量的大小等于词汇表中元素的数量。如果向量中的大多数值为零,则词袋将是一个稀疏矩阵。稀疏表示更难建模,这既出于计算原因,也出于信息原因。

此外,BOW 缺乏有意义的关系,也没有考虑单词的顺序。以下是此词嵌入技术的更多挑战。

  • 大量权重: 大量输入向量会为神经网络带来大量权重。
  • 没有有意义的关系或对词序的考虑: 词袋不考虑单词在句子或文本中出现的顺序。
  • 计算密集型: 重量越大,需要更多的计算来训练和预测。

TF-IDF模型虽然包含了比较重要的词语和不太重要的词语的信息,但是它并没有解决高维性和稀疏性的难题,而且与BOW不同,它也没有利用词语之间的语义相似性。

GloVe:用于词语表示的全局向量

NLP 中的GloVe 词嵌入方法由斯坦福大学的 Pennington 等人开发。它被称为全局向量,因为模型直接捕获了全局语料库统计数据。它在世界类比和命名实体识别问题中表现出色。

该技术降低了训练模型的计算成本,因为最小二乘成本或误差函数更简单,从而进一步产生了不同的、改进的词嵌入。它利用局部上下文窗口方法(如 Mikolov 的 skip-gram 模型)和全局矩阵分解方法来生成低维词表示。

潜在语义分析 (LSA) 是一种全局矩阵分解方法,它在世界类比方面表现不佳,但利用了指示次优向量空间结构的统计信息。

相反,Skip-gram 方法在类比任务上表现更好。然而,由于没有对全局共现计数进行训练,它没有充分利用语料库的统计数据。

因此,与使用局部上下文创建词向量的 Word2Vec 不同,GloVe 专注于全局上下文来创建词向量,这使其比 Word2Vec 更具优势。在 GloVe 中,单词之间的语义关系是使用共现矩阵获得的。

���虑两句话 -

我是一名数据科学爱好者

我正在寻找数据科学工作

对于上面的句子,GloVe 中涉及的共现矩阵如下所示 -

在这里插入图片描述

窗口大小 = 1

该矩阵中的每个值代表与行/列中相应单词共现的次数。请注意 - 该共现矩阵是使用全局单词共现计数(单词连续出现的次数;窗口大小=1)创建的。如果文本语料库有 1m 个唯一单词,则共现矩阵的形状为 1m x 1m。GloVe 背后的核心思想是,单词共现是模型“学习”单词表示的最重要统计信息。

现在让我们看一个斯坦福大学 GloVe 论文中的例子,了解共现概率比率在 GloVe 中的工作原理。“例如,考虑目标词 ice 和 steam 与词汇表中各种探测词的共现概率。以下是来自 60 亿词语料库的一些实际概率:”

在这里插入图片描述

这里,

在这里插入图片描述
假设 k = solid,即与 ice 相关但与 steam 无关的单词。预期的 Pik /Pjk 比率将很大。同样,对于与 steam 相关但与 ice 无关的单词 k,例如 k = gas,比率将很小。对于 water 或 fashion 等与 ice 和 steam 都相关或与两者都不相关的单词,比率应该约为 1。

与原始概率相比,概率比能够更好地区分相关词(固体和气体)和不相关词(时尚和水)。它还能够更好地区分两个相关词。因此,在 GloVe 中,词向量学习的起点是共现概率的比率,而不是概率本身。

在这里插入图片描述

理论讲得够多了。是时候写代码了!

导入库
导入 nltk
进口再
从 nltk.corpus 导入停用词
从手套导入 Corpus,手套
文本预处理
#GloVe 输入一个文档语料库,将其拆分成组成单词
语料库 = []
对于范围内的 i(0,len(X)):
 推文 = re.sub(“[^a-zA-Z]”,” “,X[i])
 推文 = 推文.lower()
 推文 = 推文.split()
 corpus.append(推文)
训练词向量
语料库 = 语料库()
语料库.fit(文本语料库,窗口 = 5)
手套 = 手套(无组件 = 100,学习率 = 0.05)
#no_components = 词嵌入的维数 = 100
glove.fit(corpus.matrix,epochs=100,no_threads=4,verbose=True)
glove.add_dictionary(语料库.词典)
查找最相似的 -
手套.most_similar(“风暴”,数字=10)


输出 -

在这里插入图片描述

单词元组列表及其预测概率

BERT(来自 transformer 的双向编码器表示)

这种基于自然语言处理 (NLP) 的语言算法属于称为transformers的类。它有两种变体,即包含 1.1 亿个参数的 BERT-Base 和具有 3.4 亿个参数的 BERT-Large。

它依靠注意力机制来生成具有语境的高质量世界嵌入。因此,当嵌入经过训练过程时,它们会通过每个 BERT 层,以便其注意力机制能够根据左侧单词和右侧单词捕捉单词关联。

与上面讨论的相比,这是一种先进的技术,因为它可以创建更好的词嵌入。这要归功于维基百科数据集和海量词库上的预趋势模型。通过微调嵌入,可以针对特定任务的数据集进一步改进此技术。

它在语言翻译任务中有着广泛的应用。

在这里插入图片描述

结论

词嵌入可以训练 GRU、LSTM 和 Transformers 等深度学习模型,这些模型在情绪分类、名称实体识别、语音识别等 NLP 任务中取得了成功。

这是一份最终回顾清单。

  • 词袋模型:从文本中提取特征
  • TF-IDF:信息检索,关键词提取
  • Word2Vec:语义分析任务
  • GloVe:词语类比、命名实体识别任务
  • BERT:语言翻译、问答系统

在这篇博客中,我们讨论了 NLP 中的两种向量化技术:词袋和 TF-IDF,它们的缺点,以及GloVe 和 Word2Vec 等词嵌入技术如何通过降维和上下文相似性克服其缺点。通过以上所述,您将更好地理解词嵌入如何使您的日常生活受益。

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2040959.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

视觉SLAM中的数学基础:李群与李代数

在视觉SLAM(Simultaneous Localization and Mapping)中,理解和应用李群(Lie Group)与李代数(Lie Algebra)是非常关键的。李群与李代数为描述和处理空间中的连续变换(如旋转和平移&am…

【OCR 学习笔记】二值化——局部阈值方法

二值化——局部阈值方法 自适应阈值算法Niblack算法Sauvola算法 自适应阈值算法 自适应阈值算法1用到了积分图(Integral Image)的概念。积分图中任意一点 ( x , y ) (x,y) (x,y)的值是从图左上角到该点形成的矩形区域内所有值的和。即: I (…

逻辑回归之鸢尾花数据集多分类任务

目录 1.导入数据 2.定义多分类模型 3.准备测试数据 4.绘制决策边界 对于多分类任务,其实就是多个二分类任务。 先分黑色(标签为1)和其他(标签为0),在这个基础上再去分红色和绿色,此时就将红色标签设置为1,其他设置为0&#x…

关于 Lora中 Chirp Spread Spectrum(CSS)调制解调、发射接收以及同步估计的分析

本文结合相关论文对CSS信号的数学形式、调制解调、发射接收以及同步估计做了全面分析,希望有助于更好地理解lora信号 long-range (LoRa) modulation, also known as chirp spread spectrum (CSS) modulation, in LoRaWAN to ensure robust transmission over long d…

Unity(2022.3.38LTS) - 页面介绍

目录 A. 创建项目 B.Unity 编辑器页面 C. 自己点点 A. 创建项目 有多个编辑器版本的选择编辑器. 3D和2D的区别就是初始化的包不同,这些包打开项目之后都可以在自行下载,随意切换, B.Unity 编辑器页面 Unity 编辑器页面是一个高度集成且功能丰富的开发环境,为游…

ISE14.7后仿真、烧录教程

ISE14.7后仿真、烧录教程 ISE14.7后仿真、烧录教程 系统版本:win10,EDA工具版本:ISE14.7,modelsim SE 10.4,本文主要包含两部分内容,首先是基于ISE的后仿真,基于ISE和modelsim的联合后仿真&am…

C++简单界面设计

#include "mywidget.h"MyWidget::MyWidget(QWidget *parent): QWidget(parent) {---------------------窗口设置----------------------this->setWindowTitle("南城贤子摄影工作室");//设置窗口标题this->setWindowIcon(QIcon("d:\\Pictures\\C…

上海悠远为您解析芯片管理系统的核心功能

在当今科技日新月异的时代,芯片作为信息技术的基石,其管理效率与安全性直接关系到整个系统的稳定运行与数据安全。因此,一个高效、智能的芯片管理系统成为了不可或缺的技术支撑。该系统通过集成多项核心技术,实现了对芯片从生产到…

统信UOSV20 安装redis

在线安装 在统信软件(UOS)上使用yum安装Redis,可以按照以下步骤进行: 打开终端。首先添加Redis的官方仓库,可以使用以下命令: sudo yum install epel-release安装Redis: sudo yum install r…

简单的spring boot tomcat版本升级

简单的spring boot tomcat版本升级 1. 需求 我们使用的springboot版本为2.3.8.RELEASE,对应的tomcat版本为9.0.41,公司tomcat对应版本发现攻击者可发送不完整的POST请求触发错误响应,从而可能导致获取其他用户先前请求的数据,造…

c# 直接使用c++ 类库文件

🏆本文收录于《CSDN问答解惑-专业版》专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收…

基于JSP的足球赛会管理系统

你好呀,我是计算机学姐码农小野!如果有相关需求,可以私信联系我。 开发语言:Java 数据库:MySQL 技术:JSPJavaBeansServlet 工具:Eclipse、Navicat、Maven 系统展示 首页 管理员功能模块 用…

Linux:动态库和静态库

静态库与动态库 A:静态库(.a):程序在编译链接的时候把库的代码链接到可执行文件中。程序运行的时候将不再需要静态库。 B:动态库(.so):程序在运行的时候才去链接动态库的代码&#…

Ubuntu24.04设置国内镜像软件源

参考文章: Ubuntu24.04更换源地址(新版源更换方式) - 陌路寒暄 一、禁用原来的软件源 Ubuntu24.04 的源地址配置文件发生改变,不再使用以前的 sources.list 文件,升级 24.04 之后,该文件内容变成了一行注…

Java | Leetcode Java题解之第334题递增的三元子序列

题目&#xff1a; 题解&#xff1a; class Solution {public boolean increasingTriplet(int[] nums) {int n nums.length;if (n < 3) {return false;}int first nums[0], second Integer.MAX_VALUE;for (int i 1; i < n; i) {int num nums[i];if (num > second…

日常网站优化:SEO的6项目日常例行工作

大部分人每天都会登录自己的网站&#xff0c;或者至少每周登录一次。但是&#xff0c;如果你是一家小企业或者团队的负责人&#xff0c;你可能会有很多其他的工作要做&#xff0c;相对的&#xff0c;就没有那么多的时间可以花在SEO上。 当然您也可以选择一个专业的团队&#x…

差异对比:云服务器PK物理服务器

【若您对以下内容感兴趣&#xff0c;欢迎联系或关注我们】 在服务器领域&#xff0c;云服务器和物理服务器是两种常见的选择&#xff0c;它们在多个方面存在明显的区别。 一、资源虚拟化 云服务器&#xff1a;基于物理服务器通过虚拟化技术构建而成&#xff0c;多个虚拟服务…

flutter 画转盘

import package:flutter/material.dart; import dart:math;const double spacingAngle 45.0; // 每两个文字之间的角度 // 自定义绘制器&#xff0c;ArcTextPainter 用于在圆弧上绘制文字 class ArcTextPainter extends CustomPainter {final double rotationAngle; // 动画旋…

多种办公功能的WORD VBA程序

word的VBA办公助手 源代码 Option Explicit 需要引用 excel 16.0 库 所有内容仅供个人学习使用&#xff0c;严禁传播。1-公共变量-表格属性------------------------------------------------------------------------- Dim Hg% hg:行高 Const K1 0.1 Dim Flg_bh As Boolean …

力扣题/二叉树/二叉树中的最大路径和

二叉树中的最大路径和 力扣原题 二叉树中的 路径 被定义为一条节点序列&#xff0c;序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点&#xff0c;且不一定经过根节点。路径和 是路径中各节点值的总和。给你一个二叉树…