【人工智能】NLP入门指南:自然语言处理基础全解析

在这里插入图片描述


文章目录

  • 前言
  • 一、NLP
    • NLP(自然语言处理)
      • NLU(自然语言理解)
      • NLG(自然语言生成)
  • 二、分词
    • 1.什么是分词
    • 2.常见的分词工具
    • 3.jieba分词
  • 三、词向量
    • 1.什么是词向量
    • 2.文本张量表示方法
    • 3.常见的词向量模型
      • 3.1 ont-hot 编码
      • 3.2 Word2Vec
      • 3.3 Embedding
  • 四、TensorFlow Playground


前言

    在数字化时代,自然语言处理(NLP)已成为人机交互的桥梁。本文将引导读者从基础到应用,全面了解NLP技术。首先,我们将探索NLP的两大支柱:自然语言理解(NLU)和自然语言生成(NLG),理解它们如何分别让机器理解与生成人类语言。接着,文章将深入中文文本的分词技术,特别是jieba分词的使用。进一步,我们将学习文本的数值表示方法,包括one-hot编码、Word2Vec和Embedding模型,这些技术赋予机器学习模型处理语言的能力。最后,通过TensorFlow Playground,我们将直观体验神经网络在NLP中的应用。

在这里插入图片描述


一、NLP

NLP(自然语言处理)

    NLP(Natural Language Processing)自然语言处理的缩写,是人工智能和语言学领域的交叉学科,旨在让计算机能够理解和处理人类语言。NLP 的目标包括让计算机能够读取、解析、理解和生成人类语言文本,从而进行各种与语言相关的任务,如文本分类、情感分析、机器翻译、问答系统、聊天机器人等。

NLP 的研究内容主要以下几个方面:

  1. 词法分析:包括分词、词性标注、命名实体识别等。
  2. 句法分析:分析句子结构,如短语划分、依存关系分析等。
  3. 语义分析:理解句子或文本的含义,包括词义消歧、语义角色标注等。
  4. 信息抽取:从文本中提取结构化信息,如关系抽取、事件抽取等。
  5. 文本生成:根据特定要求生成自然语言文本,如文本摘要、文本续写等。
  6. 文本分类:将文本划分为预定义的类别,如情感分析、主题分类等。
  7. 机器翻译:将一种语言的文本转换为另一种语言的文本。
  8. 问答系统:根据用户提出的问题,从文本或知识库中检索答案。

    为了实现这些任务,NLP 研究者通常会使用各种算法和模型,如基于规则的方法、基于统计的方法、基于深度学习的方法等。近年来,随着深度学习技术的快速发展,基于神经网络的 NLP 模型,如循环神经网络(RNN)、长短期记忆网络(LSTM)、Transformer 等,在 NLP 任务中取得了显著的性能提升。

    自然语言处理(NLP Natural Language Processing) 是一种专业分析人类语言的人工智能。就是在机器语⾔和⼈类语言之间沟通的桥梁,以实现人机交流的目的。

  • 2个核心任务:
    • 自然语言理解 NLU (Natural Language Understanding)
    • 自然语言生成 - NLG (Natural Language Generation)

NLU(自然语言理解)

    自然语言理解(Natural Language Understanding, NLU) 旨在使计算机能够理解和处理人类语言。它通过人工智能技术,从语音或文本输入中获取信息,并对其进行解析以提取有意义的内容。
    通俗来说,NLU就是机器需要理解人的意思。举个栗子🌰,试着理解下面两句话(再试试看从机器的角度理解呢):

  • 冬天到了,衣服能穿多少穿多少
  • 夏天到了,衣服能穿多少穿多少

应用场景:
    NLU广泛应用于语音识别、情感分析和垃圾邮件过滤等领域。例如,在智能助手中,NLU负责识别用户的查询意图和相关实体,以便做出准确的回应。

  典型应用:

  • 机器翻译(有道、百度翻译等)
  • 机器客服(各种app里面的机器客户)
  • 智能音箱(小爱音箱、天猫精灵等)

技术手段:
    NLU的技术手段包括分词、词性标注、句法分析和语义角色标注等。这些技术帮助计算机从自然语言中提取有用的信息,并将其转化为可操作的数据。

NLG(自然语言生成)

    自然语言生成(Natural Language Generation, NLG) 是将结构化数据转换为人类可以理解的自然语言的过程NLG系统分析数据集,创建有意义的叙述,从而生成自然语言输出。

应用场景:
    NLG的应用范围包括聊天机器人、语音助手和自动内容生成等。例如,企业可以利用NLG来创建自动报告,或者在客户服务中生成响应用户问题的文本。

  典型应用:

  • 自动写作(自动写新闻,自动写论文等)
  • 聊天机器人 (各种手机开发的内置聊天机器人,智能音响,商场导航机器人等)
  • BI (Business Intelligence) 的解读和报告生成 (各行各业解读报告生成比如体检报告)

技术手段:
    NLG的技术手段包括文本模板生成、基于规则的生成和统计语言模型等。这些方法使得系统能够根据不同的输入数据和上下文生成自然、流畅的语言。


NLP的发展历程:

  • 神经语言模型(2001): 引入前馈神经网络作为第一个神经语言模型,为后续语言建模任务奠定基础。
  • 多任务学习(2008): Collobert和Weston首次将多任务学习应用于神经网络,通过共享参数在不同任务之间实现信息传递。
  • 词嵌入(2013): 引入词嵌入作为语言建模的关键组成部分,将单词映射到连续向量空间。
  • NLP神经网络(2013): 开始出现基于神经网络的NLP模型,标志着从传统方法向深度学习方法的过渡。
  • Sequence-to-Sequence模型(2014): 引入了序列到序列(seq2seq)模型,广泛应用于机器翻译等任务。
  • 注意力机制(2015): 注意力机制的引入提高了模型对输入中不同部分的关注度,改善了序列处理任务的性能。
  • 基于记忆的网络(2015): 利用记忆网络处理长距离依赖关系,提高了对长文本序列的建模能力。
  • 预训练语言模型(2018): 引入预训练语言模型,通过大规模数据的预训练在特定任务上取得显著性能提升。

常见的NLP任务:

  • 分词: 将句子、段落、文章这种长文本,分解为以字词为单位的数据结构,方便后续的 处理分析工作。
  • 词性标注: 为每个单词分配一个词性标签(如名词、动词、形容词等),以帮助识别实体。
  • 命名实体识别(NER): 从文本中识别和分类命名实体,如人名、地名、组织机构名、日期、时间、货币等。

二、分词

1.什么是分词

    分词就是将句子、段落或文章这样的长文本分解为以字或词为单位的数据结构,以便进行后续处理和分析。
    需要注意的是中文分词和英文分词会有所不同。英文文本中有空格作为自然分隔符,而中文则需要通过特定方法进行分词。并且,英文单词有丰富的变形,需要进行词形还原和词干提取。中文分词面临一些难点,例如没有统一标准、歧义词切分和新词识别等问题。

分词NLP(自然语言处理) 中扮演着至关重要的角色,是许多NLP任务和应用的基石。以下是分词在NLP中的一些主要作用:

  1. 文本预处理:分词是文本预处理的重要步骤之一。在将文本数据输入到NLP模型之前,通常需要对文本进行清洗、去除停用词、分词等预处理操作。分词能够将连续的文本切分成独立的词汇单元,便于后续的分析和处理。
  2. 特征提取:分词有助于从文本中提取有意义的特征。在NLP任务中,如文本分类、情感分析、命名实体识别等,分词可以将文本转化为适合机器学习模型处理的特征向量。通过分词,可以提取出文本中的关键词、短语或句子,作为模型的输入特征。
  3. 语言理解:分词对于计算机理解人类语言具有重要意义。通过将连续的文本切分成词汇单元,计算机可以更容易地识别和理解文本中的语义信息。分词可以帮助计算机识别出文本中的主语、谓语、宾语等语法成分,进而理解文本的含义和上下文关系。
  4. 信息检索:在信息检索领域,分词是构建高效搜索引擎的关键技术之一。通过分词,搜索引擎可以将用户的查询语句和文档库中的文本进行匹配,从而找到相关的文档。分词可以确保查询语句和文档中的词汇单元在语义上保持一致,提高检索的准确性和效率。
  5. 机器翻译:在机器翻译中,分词是翻译过程中的重要环节。通过将源语言文本进行分词,机器翻译系统可以更容易地识别出文本中的词汇单元和语法结构,进而生成准确的翻译结果。分词还可以帮助机器翻译系统处理不同语言之间的词汇对齐和语法差异问题。
  6. 问答系统:在问答系统中,分词有助于将用户的问题和系统中的知识库进行匹配。通过分词,系统可以将用户的问题切分成独立的词汇单元,并与知识库中的信息进行比对和匹配,从而找到相关的答案。分词可以提高问答系统的准确性和响应速度。

分词的方法大致分为3类:

  • 基于词典匹配
  • 基于统计
  • 基于深度学习

2.常见的分词工具

  1. jieba: jieba是Python编写的一个中文分词库,提供了多种分词模式和关键词抽取等功能。
  2. ansj分词器: ansj分词器是一个基于n-最短路径和CRF模型的中文分词开源工具,由Java编写,支持个性化分词。
  3. Hanlp: Hanlp是由Java编写的一款中文自然语言处理工具,支持分词、词性标注、命名实体识别等多种功能。
  4. Stanford: Stanford汉语分词器是基于条件随机场(CRF)模型的线性链预测模型,可以对中文文本进行分词和词性标注。
  5. 哈工大LTP: 哈工大LTP是哈尔滨工业大学开发的语言技术平台,提供包括分词在内的多项中文自然语言处理功能。
  6. KCWS分词器: KCWS分词器是一款轻量级的中文分词器,基于字典和双向最大匹配算法实现。
  7. IK: IK是一个轻量级中文分词工具,基于词典的分词,使用了正向最大匹配算法。
  8. 清华大学THULAC: 清华大学自然语言处理与社会人文计算实验室研发的中文分词工具包,具有高性能和高准确率。
  9. ICTCLAS: ICTCLAS是中国科学院计算技术研究所开发的一套中文分词系统,支持多种分词标准和自定义词典。

3.jieba分词

     jieba 是Python编写的一个中文分词库,提供了多种分词模式和关键词抽取等功能。

  • 安装:pip install jieba
  • 使用:
    • 1.导入jieba库:import jieba
    • 2.使用jieba进行分词

jieba提供了多种分词模式和方法,以下是几种常用的用法:

  • 精确模式:将句子最精确地切开,适合文本分析。
import jieba
seg_list = jieba.cut("我来到北京清华大学", cut_all=False)
print("Default Mode: " + "/ ".join(seg_list))
# Default Mode: 我/ 来到/ 北京/ 清华大学
  • 全模式:把句子中所有的可以成词的词语都扫描出来,速度非常快,但是不能解决歧义。
import jieba
seg_list = jieba.cut("我来到北京清华大学", cut_all=True)
print("Full Mode: " + "/ ".join(seg_list))
# Full Mode: 我/ 来到/ 北京/ 清华/ 清华大学/ 华大/ 大学
  • 搜索引擎模式:在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。
import jieba
seg_list = jieba.cut_for_search("我来到北京清华大学")
print("Search Mode: " + "/ ".join(seg_list))
# Search Mode: 我/ 来到/ 北京/ 清华/ 华大/ 大学/ 清华大学
  • 添加自定义词典:jieba支持用户自定义词典,可以在分词时包含jieba词库中没有的词。
import jieba
jieba.load_userdict("userdict.txt")  # 加载自定义词典
seg_list = jieba.cut("他来到了网易杭研大厦")
print("/ ".join(seg_list))
# 输出(不加 userdict.txt): 他/ 来到/ 了/ 网易/ 杭研/ 大厦
# 输出(加 userdict.txt):他/ 来到/ 了/ 网易/ 杭研大厦

其中,userdict.txt 内容为:

网易
杭研大厦

    注意:userdict.txt是自定义词典文件,每一行包含一个词,支持多行。词典的编码格式必须为utf-8,否则会出现乱码。

其他更详细的信息可参考:https://github.com/fxsjy/jieba


三、词向量

1.什么是词向量

    词向量(Word Embedding)自然语言处理(NLP) 中用来表示词汇的一种高维向量。这种向量通常是通过训练神经网络模型从大量文本数据中学习得到的,能够捕捉词汇之间的语义和语法关系。

传统的词表示方法是基于独热编码(One-Hot Encoding),即为每个词在词汇表中分配一个唯一的索引,然后创建一个与词汇表大小相同的向量,其中只有该词的索引位置为1,其余位置为0。然而,这种方法存在几个问题:

  1. 维度灾难:随着词汇表的增大,向量的维度也会急剧增加,导致计算效率低下。
  2. 语义缺失:独热编码无法表示词汇之间的语义关系,例如“猫”和“狗”在语义上是相近的,但它们的独热编码表示却是完全独立的。

为了克服这些问题,研究者们提出了词向量的概念。词向量是一种低维、稠密的向量表示,通常维度在几十到几百之间。每个词都被映射到一个这样的向量上,并且向量之间的相似性可以反映词汇之间的语义关系。

词向量的训练通常基于无监督学习的方法,例如Word2Vec(包括Skip-Gram和CBOW两种模型)、GloVe、FastText等。这些模型通过最大化文本序列中词汇的共现概率来学习词向量,使得在语义上相近的词汇在向量空间中的距离也更近。

词向量在NLP任务中有着广泛的应用,例如文本分类、情感分析、命名实体识别、机器翻译等。通过将文本中的词汇表示为词向量,可以将NLP任务转化为机器学习问题,并利用各种机器学习算法进行建模和预测。此外,词向量还可以作为特征输入到深度学习模型中,以进一步提高模型的性能。

2.文本张量表示方法

    文本张量表示是一种将文本数据转换为数值形式的方法,以便计算机可以对其进行处理和分析。在自然语言处理(NLP)中,文本张量通常用于表示词向量、字符向量或句子向量等。

["⼈⽣", "该", "如何", "起头"]
==>
# 每个词对应矩阵中的⼀个向量
[[1.32, 4,32, 0,32, 5.2],[3.1, 5.43, 0.34, 3.2],[3.21, 5.32, 2, 4.32],[2.54, 7.32, 5.12, 9.54]]

3.常见的词向量模型

3.1 ont-hot 编码

    无论是人类还是计算机都很难直接将语言字符进行计算。我们期望着把语言字符转换为一种便于计算的形式,也就是把对应的词汇用数值类型的数据进行唯一表示。最简单的一种将语言字符转换为便于计算的一种方式就是 one-hot编码

Color	==> 			Color_red  Color_green  Color_blue  
-----    				---------  -----------  ----------  
red   	==>					1          0           0  
green   ==>					0          1           0  
blue   	==>					0          0           1  
red   	==>					1          0           0

在这个例子中,我们为每一个颜色创建了一个新的列,并且在原始数据中的颜色对应的列上标记为 1,其余列标记为 0。

One-Hot Encoding 的主要优点是它创建了一个稀疏矩阵,这个矩阵可以很容易地用于大多数机器学习算法。然而,它的缺点也很明显,那就是当类别的数量非常大时,会导致特征空间变得非常大,这可能会增加计算成本,并可能导致过拟合。此外,One-Hot Encoding 不能很好地处理有序类别变量(即类别之间存在自然顺序的情况)。

  • 优点:
    1)解决了分类器处理离散数据困难的问题
    2)一定程度上起到了扩展特征的作用
  • 缺点:
    1)没有考虑到词与词之间的顺序问题
    2)全部都是词与词之间相互独立的表示
    3)one-hot得到的特征是离散的,稀疏的

为了解决one-hot编码词与词之间独立的缺点,引入 embedding矩阵embedding矩阵 是一个行数为one-hot编码列数,列数自定义的一个随机权重矩阵。

3.2 Word2Vec

    Word2vec 也叫 Word Embeddings,中文名“词向量”。作用就是将自然语言中的字词转为计算机可以理解的稠密向量(Dense Vector)。在word2vec出现之前,自然语言处理经常把字词转为离散的单独的符号,也就是One-Hot Encoder
    Word2Vec 是由谷歌于2013年正式提出的,但是对词向量的研究可以追溯到2003年论文《a neural probabilistic language model》。但正是谷歌对Word2Vec的成功应用,让词向量的技术得以在业界迅速推广,使Embedding这一研究话题成为热点。毫不夸张地说,Word2Vec对人工智能时代Embedding方向的研究具有奠基性的意义。
    Word2Vec 是一种在自然语言处理中广泛使用的词嵌入技术,它通过训练神经网络模型将文本中的每个单词映射为一个高维向量,从而捕捉单词之间的语义关系。以下是一个Word2Vec的案例,用于说明其工作原理和应用。

案例背景
    假设我们有一个包含大量文本数据的语料库,我们的目标是学习这些文本中单词的语义表示,以便在后续的NLP任务中使用。

Word2Vec模型训练

  1. 数据预处理
    • 对文本数据进行清洗,去除标点符号、停用词等无关信息。
    • 将文本数据切分为单词或短语,构建词汇表。
  2. 模型选择
    • 选择Word2Vec模型,并确定其参数,如向量维度(例如,100维)、窗口大小(例如,5)等。
    • Word2Vec提供了两种主要的训练模型:Skip-Gram和CBOW(Continuous Bag of Words)。Skip-Gram模型通过给定一个中心词来预测其上下文单词,而CBOW模型则通过上下文单词来预测中心词。
  3. 训练过程
    • 使用语料库中的文本数据训练Word2Vec模型。在训练过程中,模型会学习单词之间的共现关系,并将每个单词映射为一个高维向量。
    • 训练完成后,模型会生成一个词汇表到向量的映射表,其中每个单词都对应一个唯一的向量表示。

Word2Vec应用

  1. 语义相似度计算
    • 利用Word2Vec生成的词向量,我们可以计算两个单词之间的语义相似度。例如,通过计算“猫”和“狗”两个单词向量的余弦相似度,我们可以发现它们之间的语义关系较为接近。
  2. 文本分类
    • 在文本分类任务中,我们可以将文本中的单词转换为对应的词向量,并将这些向量作为特征输入到分类模型中。由于词向量能够捕捉单词之间的语义关系,因此这种方法通常能够提高文本分类的准确率。
  3. 推荐系统
    • 在推荐系统中,我们可以将用户的行为序列和文本内容映射为词向量表示,然后计算用户向量和文本向量之间的相似度,从而为用户推荐相关的文本内容。

3.3 Embedding

    在机器学习和自然语言处理(NLP)中,embedding(嵌入) 是一种将一个高维空间中的对象(如单词、短语、句子、图像等)映射到一个低维、稠密、连续的向量空间中的表示方法。这种表示方法通常能够保留原始对象之间的某些关系或属性,使得在向量空间中相似的对象具有相近的表示。

    在自然语言处理中,word embedding(词嵌入) 是最常见的嵌入类型,它将词汇表中的每个单词映射到一个固定大小的向量。这些向量通常是通过训练神经网络模型(如Word2VecGloVeFastText等) 在大量文本数据上学习得到的。

词嵌入的主要优点包括:

  1. 语义表示:词嵌入能够捕捉单词之间的语义关系。在向量空间中,相似的单词(如“猫”和“狗”)通常具有相近的表示,而不相关的单词则具有较远的距离。
  2. 降低维度:与独热编码相比,词嵌入使用低维向量表示单词,从而减少了计算复杂性和存储需求。
  3. 泛化能力:由于词嵌入是在大量文本数据上训练得到的,因此它们能够处理未见过的单词或短语(通过计算其附近单词的向量表示的平均值或类似方法)。

  词嵌入NLP 任务中有着广泛的应用,如文本分类、情感分析、命名实体识别、机器翻译等。通过将文本中的单词表示为词嵌入向量,可以将NLP任务转化为机器学习问题,并利用各种机器学习算法进行建模和预测。

如何基于向量检索服务与灵积实现语义搜索_向量检索服务(VRS)-阿里云帮助中心 (aliyun.com)

四、TensorFlow Playground

    TensorFlow Playground 是一个在线实验环境,用于学习和试验机器学习模型的训练过程。它提供了一个直观的图形界面,允许用户通过拖放节点来构建神经网络,并实时观察模型训练过程中的各项指标变化。旨在帮助初学者理解深度学习模型的基本概念,如层结构、激活函数、损失函数以及梯度下降等

传送门:https://playground.tensorflow.org/
在这里插入图片描述
以便于更好的理解学习率、步长、激活函数、数据、输入层、隐藏层、输出层、损失函数等概念


在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

15.4 zookeeper java client之Curator使用(❤❤❤❤❤)

Curator使用 1. 为什么使用Curator对比Zookeeper原生2. 集成Curator2.1 依赖引入curator-frameworkcurator-recipes2.2 `yml`配置连接信息2.3 CuratorConfig配置类2.4 Curator实现Zookeeper分布式锁业务2.4.1 业务:可重入锁和不可重入锁可重入锁和不可重入锁InterProcessMutex …

scratch魔法门 2024年6月scratch四级 中国电子学会图形化编程 少儿编程等级考试四级真题和答案解析

目录 scratch魔法门 一、题目要求 1、准备工作 2、功能实现 二、案例分析 1、角色分析 2、背景分析 3、前期准备 三、解题思路 1、思路分析 2、详细过程 四、程序编写 五、考点分析 六、推荐资料 1、入门基础 2、蓝桥杯比赛 3、考级资料 4、视频课程 5、pyt…

基于JAVA的美甲店员工管理系统,源码、部署+讲解

摘 要 随着社会科技的飞速发展和进步,网络技术的应用已经深入到生活的方方面面。在这样的背景下,企事业单位的绩效考评体系也受到了极大的影响和冲击。传统的绩效考评方式已经无法满足现代社会的高效需求,因此,研发一款智能化、高…

42 PCB布线叠层与阻抗介绍43 PCB布线过孔添加与设置44 差分对添加与设置45 布线间距规则与介绍

42 PCB布线叠层与阻抗介绍&&43 PCB布线过孔添加与设置&44 差分对添加与设置&&45 布线间距规则与介绍 第一部分 42 PCB布线叠层与阻抗介绍1 板子是怎么来的。2 四层板为例,做叠层和阻抗计算。 第二部分 43 PCB布线过孔添加与设置介绍PCBEdotor中…

c#中的BitConverter的java实现

最近在做c#项目的java迁移,发现部分C#方法java中没有对应实现如图: 且java中的数字类型都是有符号的所以转无符号的时候需要进行手动对符号位& 0xFFFF进行处理,目前只整理了项目中使用到的方法,后续有用到其他方法在进行追加如…

linux学习记录(一)--------目录及文件操作

文章目录 前言Linux目录及文件操作1.Linux目录结构2.常用的Linux命令3.vi编辑器的简单使用4.vi的两个模式 前言 小白学习linux记录有错误随时指出~ Linux目录及文件操作 Linux采用Shell命令->操作文件 1.Linux目录结构 根目录:/ 用户目录:~或者/ho…

H5+JS 4096小游戏

主要实现 1.使用WASD或方向按钮控制游戏 2.最高值4096,玩到4096视为胜利 3.随机生成2、4、8方块 4.移动方块 5.合并方块 JS代码干了什么 初始化游戏界面:创建游戏板和控制按钮。 定义游戏相关变量:如棋盘大小、棋盘状态、得分等。 初始化棋…

软件测试生命周期、BUG描述与处理策略

软件测试的生命周期 需求分析:需求是否完整、是否正确 测试计划:确定由谁测试、测试的起止时间、设计哪些模块 测试设计、测试开发:写测试用例(手工、自动化测试用例)、编写测试工具 执行测试用例 测试评估&…

面向未来的S2B2C电商供应链系统发展趋势与创新探索

S2B2C电商供应链系统的发展趋势及创新方向。首先分析当前市场环境和消费者需求的变化,如个性化消费、即时配送、绿色环保等趋势对供应链系统的影响。随后,预测并讨论未来供应链系统可能的技术革新,如物联网(IoT)在物流…

【系统架构设计师】二十四、安全架构设计理论与实践①

目录 一、安全架构概述 1.1 信息安全面临的威胁 1.1.1 安全威胁分类 1.1.2 常见的安全威胁 1.2 安全架构的定义和范围 二、安全模型 2.1 状态机模型 2.2 Bell-LaPadula模型 2.3 Biba模型 2.4 Clark-Wilson模型 2.5 Chinese Wall 模型 往期推荐 一、安全架构概述 1…

基于LoRA和AdaLoRA微调Qwen1.5-0.5B-Chat

本文只开放基于LoRA和AdaLoRA微调代码,具体技术可以自行学习。 Qwen1.5-0.5B-Chat权重路径:https://huggingface.co/Qwen/Qwen1.5-0.5B 数据集路径:https://github.com/DB-lost/self-llm/blob/master/dataset/huanhuan.json 1. 知识点 LoRA, AdaLoRA技术 具体技术可以去看…

数据结构第十讲:二叉树OJ题

数据结构第十讲:二叉树OJ题 1.单值二叉树2.相同的树3.对称二叉树4. 另一棵树的子树5.二叉树的前序遍历6.二叉树的中序遍历7.二叉树的后序遍历8.二叉树的构建及其遍历9.二叉树选择题9.1二叉树性质19.2二叉树性质29.3二叉树性质三9.4选择题 1.单值二叉树 链接: OJ题链…

『python爬虫』beautifulsoup库获取文本的方法.get_text()、.text 和 .string区别(保姆级图文)

目录 区别.string(不推荐用).text(get_text的简化版少敲代码的时候用).get_text(推荐用,功能强大,为什么不爱呢?) 示例代码总结 欢迎关注 『python爬虫』 专栏,持续更新中 欢迎关注 『python爬虫』 专栏,持续更新中 区别 省流直接看get_text 推荐用这个…

【Git】如何优雅地使用Git中的tag来管理项目版本

目录 tagtag 和 branch区别操作命令打tag,当前分支标记tag提交到远程服务器删除本地tag删除远程tag切换到特定的tag查看所有tag查看标签详细信息 好书推荐 tag Git中的tag(标签)用于给项目在特定时间点(某个版本发布)…

分布式事务-使用队列实现最终一致性

分布式事务-扣减库存 一、最终一致性架构图 1、服务 左侧:创建订单服务Server1 右侧:扣减库存服务Server2 中间:独立消息服务Server3 2、中间件: Kafka-MQ、MySQL-db 二、步骤 0、定义MQ,三个状态 prepareconf…

OBS Studio:如何打造专业级的视频直播体验

1.简介 OBS(Open Broadcaster Software)是一款开源的视频录制和直播软件,广泛用于视频制作、游戏直播和网络直播。它支持多种操作系统,包括Windows、macOS和Linux。OBS提供了丰富的功能,包括但不限于: **…

【React】详解 index.js 文件

文章目录 一、index.js文件的基本结构1. 引入必要的模块2. 渲染根组件3. 注册服务工作者(可选) 二、index.js文件的详细解析1. ReactDOM.render的作用2. 为什么使用React.StrictMode3. 服务工作者的注册 三、index.js文件的最佳实践1. 使用模块化引入2. …

vue2使用wangeditor5及word导入解析的实现与问题

安装 wangeditor5 官网:https://www.wangeditor.com/v5/ yarn add wangeditor/editor # 或者 npm install wangeditor/editor --saveyarn add wangeditor/editor-for-vue # 或者 npm install wangeditor/editor-for-vue --save mammoth.js 官网:https…

一款功能强大的屏幕演示工具,免费版足够使用!

鼠标换肤 | 屏幕画笔 | 放大镜 | 聚光灯 | 屏幕放大 | 倒计时,功能强大的屏幕演示工具 屏幕演示工具适用于Windows平台,特别是Windows 10及以上版本。该软件提供了多种实用功能,包括鼠标换肤、屏幕画笔、放大镜、聚光灯、屏幕放大和倒计时等…

MyBatis的example.createCriteria()方法学习记录

目录 一、mapper的crud方法:1. insert方法insert(User user)insertSelective(User user) 2. select方法selectByPrimaryKey(id)selectByExample(example)selectCountByExample(example) 3. update方法updateByPrimaryKey(User user)updateByPrimaryKeySelective(User user)upda…