以ChatGPT为例进行自然语言处理学习——入门自然语言处理

news/2025/3/27 12:55:11/

⭐️我叫忆_恒心,一名喜欢书写博客的在读研究生👨‍🎓。
如果觉得本文能帮到您,麻烦点个赞👍呗!

近期会不断在专栏里进行更新讲解博客~~~ 有什么问题的小伙伴 欢迎留言提问欧,喜欢的小伙伴给个三连支持一下呗。👍⭐️❤️
Qt5.9专栏定期更新Qt的一些项目Demo
项目与比赛专栏定期更新比赛的一些心得面试项目常被问到的知识点。

⭐️最近在整理以前的学习资料时,看到了之前之前入门NLP的一些学习笔记,就进行了一些整理。

在这里插入图片描述

目录

    • 一、热点与背景
    • 二、什么是自然语言处理
    • 三、目前自然语言处理有哪些挑战呢?
    • 四、Word2Vec
      • 4.1 为什么要学习`Word2Vec`
      • 4.2 为什么需要词向量?
        • 1、词语序的问题
        • 2、词相似性带来的问题
      • 4.3 Word2Vec有什么意义呢?
      • 4.4 Word2Vec的维度意义
        • 一、**词向量模型训练**
        • 二、词向量模型训练--黑盒
        • 三、Word2Vec的实现方法
        • 四、直接建模的问题——以Skip-gram为例
        • 五、负采样方法的引入——以Skip-gram为例
        • 六、小结
        • 附录:词向量长什么样子:

一、热点与背景

各位同学,欢迎来到今天的课程!我们将会探索一门有趣且富有挑战性的领域——自然语言处理。在本次课程中,我将先介绍一下当下人工智能领域的热点,以此引出什么是什么是自然语言处理,以及它的应用,以及自然语言基石的“词向量Word2Vec

image-20230417100959287

相信各位同学最近都听过ChatGPTGPT-4,百度的文言一心甚至有些同学也已经玩上了这些工具,大家都知道这是人工智能的产物,但是ChatGPT有哪些功能,我们进行一个简单的介绍。

我们输入一句:

作为一名刚入门自然语言处理的同学,第一堂课的学习,你能给些建议吗?

即使这个输入,可能含有错别字。

image-20230417101215054

那这背后运用的是那些技术的呢?

CV还是自然语言处理

二、什么是自然语言处理

上述设计到的模型所用的人工智能领域技术是自然语言处理,那么什么是自然语言处理呢?

我们来看一下维基百科上是如何进行定义的:

计算机科学与语言学领域交叉的一门学科,目的是让计算机能够理解、解释、生成人类语言。

这么说可能会优点抽象,简单来说就是:

自然语言处理 (Nautral Language Process, NLP) =自然语言理解(Natural Language Understand, NLU) + 自然语言生成
(Natural Language Generate, NLG)。

可能这在你看来是很神奇的一件事情,但其实ChatGPT也就做了这两部分的内容。

总的来说:NLP = NLU + NLR

ChatGPT可以说是自然语言处理综合应用的一个典型的模型了

image-20230417104322724

自然语言处理技术可以看出是两个阶段。

我们以ChatGPT为例,他是如何做到这些功能的呢?

(通过一个图 人–>电脑 电脑—人)

ChatGPT为例,我们每一次向他输入一段话的时候,会发生哪些事情呢?

image-20230323073852717

其中词法分析、句法分析、语义分析属于NLU任务,对话管理生成回复属于NLG任务。

我门进行一个简单的小结。

image-20230417104630271

三、目前自然语言处理有哪些挑战呢?

与图像处理相比,自然语言处理更为复杂。

image-20230417104726259

图像:所见即所得

文本:所要的文字背后的语义。

简单来说自然语言处理,普遍遇到以下三个问题:

image-20230417104824990

万丈高楼平地起,接下来我们讲解一下自然语言处理的基石Word2Vec

四、Word2Vec

自然语言处理以及语言模型的本质是词向量。

我们以问题为导向进行Word2Vec的学习。

4.1 为什么要学习Word2Vec

从自然语言的发展趋势来看:

从词向量表示方法出现后,短短5年时间,自然语言处理就得到了大幅度进展(预训练语言模型BERTGPT).。

image-20230417105310846

4.2 为什么需要词向量?

一句话或一个文章都是一个词一个词组成。

解决了基于规则和基于统计学习方法遗留的问题:

•输入词的语序问题。

•词之间相似性的问题。

1、词语序的问题

基于统计的方法:

只看一个词的出现和总体的关系。

但是这种统计词频,避免不了一个问题,就是比如一个词出现在不同的位置,所表达的语义是不同的。如下面的例句。

Input1:我|要|学习|自然|语言|处理。

Input2:我|要|语言|自然|地|学习。

2、词相似性带来的问题

比如:

“自然语言处理”=“NLP”

但与“吃饭”无关。

不同语义的文字相似度应该低,相同语义的相似度高。

具体表现在二维空间上是距离的疏远

image-20230417105936126

相关性

越相近的表达离得越近 。

通过一些问题来解释。

这里有个前提大家先熟悉了神经网络,不过多强调神经网络而是把重点放到词向量模型中。

先考虑第一个问题:

4.3 Word2Vec有什么意义呢?

看起来比较抽象,可以先从人的角度来观察。

比如说,现在来了一个人,我们应该如何对其进行描述呢?

image-20230323094947174

对一个人进行打分,一个指标相当于一个维度****。

身高、性格、能力等综合特征多个维度构成了一个独特的人的描述。

当我们有了这种多个指标构成的多种维度时,我们就可以进行向量的运算

比如相似度计算:

image-20230417110925985

欧拉公式、余弦公式通过距离计算他们的相似度。

4.4 Word2Vec的维度意义

在实际的训练过程中,数据的维度越高,能提供的信息也就越多,从而计算结果的可靠性就更值得信赖。(通常为50-300维)

image-20230323095558232

一、词向量模型训练

image-20230323100545439

输入:词的特征。

黑盒:通过神经神经网络反向传播调整模型参数

输出:下个单词的预测

二、词向量模型训练–黑盒

我们来看一下一个整体的结果:

image-20230417111409299

训练过程:

1.从embedding表中查找输入词的初始embedding值

2.通过神经网络来预测下一个值。

3.前向传播:求损失函数的值

4.反向传播:更新权重参数和输入的embedding值

三、Word2Vec的实现方法

输入:自然 语言 处理 包含 很多 任务

分为两个部分

image-20230417111635642

简单来说:

就是输入的不同,CBow,以上下文预测中渐次。Skip-gram 以一个中间词预测上下文。

四、直接建模的问题——以Skip-gram为例

输入:自然 语言 处理 包含 很多 任务

Window Size = 3

image-20230417111903608

存在的问题:求解一个Length(corpus)的多分类问题。

解释:因为从预测结果来看,候选词为长度-1 个。

解决办法:将输入与输出同时作为输入,计算候选输出的概率。

image-20230417114105584

解释:然而由于输入包含了输出的标签,预测目标全为1,因此模型进行乱猜导致无法训练。

五、负采样方法的引入——以Skip-gram为例

由于训练过程只有正样本,导致模型训练无法收敛,因此可以适当添加错误的样本。

负采样(Negative Sample)方法:在输入样本中加入负样本(错误的样本)

输入:自然 语言 处理 包含 很多 任务

image-20230418092400680

根据大量实验的经验值:负样本个数3-5个比较合适

六、小结

  1. Word2Vec的意义
  2. 词向量模型的训练
  3. Word2Vec实现方法
  4. 直接建模的问题
  5. 负采样的引入

image-20230418092453548

附录:词向量长什么样子:

输出Word2Vec下面是一个五十维的向量:

image-20230323095953047

我们用热度图来判断他们之间的相似性

image-20230323100146498

我们用热度图来判断他们之间的相似性,其中红色越深 关系越强。

image-20230323100206154

假设我们已经训练好了词向量,

image-20230323100234725

观察一下当前的词向量的相似性:

image-20230323100413109

可以可视化的观察到,词向量的相关性。

最后,最后
如果觉得有用,麻烦三连👍⭐️❤️支持一下呀,希望这篇文章可以帮到你,你的点赞是我持续更新的动力


http://www.ppmy.cn/news/46989.html

相关文章

变压器计算—12V1A为例

1、初级圈数NP(Vinmin*Tonmax)/(Ae*Bmax) Vinmin:最小输入电压一般按AC输入90v计算,换算成直流是90*1.4126V Tonmax:最大导通时间如f65K(常用的一个频率) …

【Transformer系列(3)】 《Attention Is All You Need》论文超详细解读(翻译+精读)

前言 哒哒~时隔好久终于继续出论文带读了,这次回归当然要出一手王炸呀——没错,今天我们要一起学习的就是传说中的Transformer!在2021年Transformer一经论文《Attention is All You Need》提出,就如龙卷风一般震惊学术界&#xf…

Qt QVector 详解:从底层原理到高级用法

目录标题 引言:QVector的重要性与简介QVector的常用接口QVector和std::Vector迭代器:遍历QVector 中的元素(Iterators: Traversing Elements in QVector)常规索引遍历基于范围的for循环(C11及以上)使用STL样…

JavaScript从入门到精通

JavaScript从入门到精通 一 Hello World二 Js编写位置三 Js基本语法四 常量和变量五 标识符六 数据类型七 强制类型转换 一 Hello World <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</ti…

网络编程套接字(一)

学习任务&#xff1a; 我们先来认识端口号&#xff0c;区分好主机IP和端口号的区别&#xff0c;以及涉及到进程PID和端口号的区别。 然后简单认识一下TCP协议和UDP协议&#xff0c;这两个协议都是传输层的。接着了解什么是网络字节序&#xff0c;它有什么作用。然后是网络编程的…

javaweb838仓库进销存管理系统

此系统主要分4个模块&#xff0c;分别是&#xff1a; 出库管理模块&#xff1a;对每种出库出去的商品都有相应的记录显示。 入库管理模块&#xff1a;对每种入库来的商品都有相应的记录显示&#xff0c;如果商品管理局显示某一厂家的某一种商品不符合要求&#xff0c;则在入库的…

解决 “Function not implemented“, 为 arm64 架构宿主机重新构建 Nacos 镜像

文章目录 前言重新构建镜像的步骤附录FAQ: "cannot install the best candidate for the job" & "conflicting requests"Dockerfile 文件 前言 官方的 Nacos 镜像在 arm64 架构的系统上运行容器会出现 “Function not implemented” 的相关异常日志以…

Linux内存管理(三十三):vmalloc 详解

源码基于&#xff1a;Linux 5.4 0. 前言 kmalloc()、vmalloc()、malloc() 这三个函数是常用的内存分配函数&#xff0c;但有着本质的区别。 kmalloc() 基于slab 分配器&#xff0c;是建立在一个物理地址连续的大内存块上&#xff0c;所以 kmalloc() 分配的内存物理是上连续的…