当前位置: 首页 > news >正文

信息检索(43):SPLADE: Sparse Lexical and Expansion Model for First Stage Ranking

SPLADE: Sparse Lexical and Expansion Model for First Stage Ranking

  • 摘要
  • 1 引言
  • 2 相关工作
  • 3 方法
    • 3.1 SparTerm
    • 3.2 SPLADE:稀疏词汇和扩展模型
  • 4 实验
  • 5 结论


发布时间(2021)


标题:稀疏词汇 + 扩展模型

摘要

稀疏的优点:
1)术语精确匹配
2)倒排索引效率
两部分:
1、显式稀疏正则化:explicit sparsity regularization
2、术语权重的对数饱和效应:explicit sparsity regularization
在神经信息检索中,正在进行的研究旨在改进排名管道中的第一个检索器。学习密集嵌入以使用有效的近似最近邻方法进行检索已被证明效果很好。同时,人们对学习文档和查询的稀疏表示的兴趣日益浓厚,这些表示可以继承词袋模型的理想属性,例如术语的精确匹配和倒排索引的效率。在这项工作中,我们提出了一种新的第一阶段排名器,该排名器基于显式稀疏正则化和对术语权重的对数饱和效应,从而产生高度稀疏的表示和与最先进的密集和稀疏方法相比具有竞争力的结果。我们的方法很简单,在一个阶段进行端到端训练。我们还通过控制稀疏正则化的贡献来探索有效性和效率之间的权衡。

1 引言

BERT [7] 等大型预训练语言模型的发布震撼了自然语言处理和信息检索领域。这些模型表现出通过简单微调就能适应各种任务的强大能力。2019 年初,Nogueira 和 Cho [17] 在 MS MARCO 段落重排序任务中取得了领先优势,为基于 LM 的神经排序模型铺平了道路。由于严格的效率要求,这些模型最初被用作两阶段排序流程中的重排序器,其中第一阶段检索(或候选生成)是使用依赖于倒排索引的词袋模型(例如 BM25)进行的。
尽管 BOW 模型仍然是强大的基线 [27],但它们受到长期存在的词汇不匹配问题的困扰,即相关文档可能不包含查询中出现的术语。因此,有人尝试用学习的(神经)排序器替代标准 BOW 方法。 设计这样的模型在效率和可扩展性方面带来了一些挑战:因此需要一种可以离线完成大部分计算并且在线推理速度快的方法。使用近似最近邻搜索的密集检索已显示出令人印象深刻的结果 [8, 15, 26],但由于无法明确模拟术语匹配,因此仍然与 BOW 模型相结合。因此,最近人们对学习查询和文档的稀疏表示的兴趣日益浓厚 [1, 4, 19, 28, 29]。 通过这样做,模型可以继承 BOW 模型的理想属性,例如(可能潜在的)术语的精确匹配、倒排索引的效率和可解释性。此外,通过对隐式或显式(潜在的、语境化的)扩展机制进行建模(类似于 IR 中的标准扩展模型),这些模型可以减少词汇不匹配。
本文的贡献有三点:(1)我们在 SparTerm [1] 的基础上进行了改进,并表明对超参数进行轻微调整可以带来远超原始论文中报告结果的改进;(2)我们提出了基于对数激活和稀疏正则化的 SParse 词汇和数据扩展 (SPLADE) 模型。SPLADE 可执行有效的文档扩展 [1, 16],与 ANCE [26] 等密集模型的复杂训练流程相比,其结果具有竞争力;(3)最后,我们展示了如何控制稀疏正则化来影响效率(就浮点运算次数而言)和有效性之间的权衡。

2 相关工作

基于 BERT Siamese 模型 [22] 的密集检索已成为问答和 IR 中候选生成的标准方法 [8, 10, 12, 15, 25]。虽然这些模型的主干保持不变,但最近的研究强调了训练策略的关键方面,以获得最先进的结果,从改进的负采样 [8, 25] 到蒸馏 [11, 15]。 ColBERT [13] 更进一步:推迟的 token 级交互允许有效地将模型应用于第一阶段检索,受益于建模细粒度交互的有效性,但代价是存储每个(子)术语的嵌入 - 引发了人们对该方法对于大型集合的实际可扩展性的担忧。据我们所知,很少有研究讨论使用近似最近邻 (ANN) 搜索对 ​​IR 指标的影响 [2, 23]。由于 MS MARCO 集合的规模适中,结果通常通过精确的强力搜索来报告,因此无法表明有效计算成本
密集索引的替代方案是基于术语的索引。在标准 BOW 模型的基础上,Zamani 等人首次引入了 SNRM [28]:该模型通过对表示进行 ℓ1 正则化,将文档和查询嵌入到稀疏的高维潜在空间中。然而,SNRM 的有效性仍然有限,其效率也受到了质疑 [20]。最近,有人尝试将知识从预训练的 LM 转移到稀疏方法。 基于 BERT,DeepCT [4–6] 专注于在完整词汇空间中学习语境化术语权重——类似于 BOW 术语权重。然而,由于与文档相关的词汇保持不变,这种方法无法解决词汇不匹配的问题,正如使用查询扩展进行检索所承认的那样 [4]。这个问题的第一个解决方案是使用生成方法(如 doc2query [19] 和 docTTTTTquery [18])扩展文档,以预测文档的扩展词。 文档扩展会向文档中添加新术语(从而解决词汇不匹配问题),并重复现有术语,通过提升重要术语来隐式地重新加权。然而,这些方法受到训练方式(预测查询)的限制,这种方式本质上是间接的,限制了它们的进展。最近的研究(如 [1, 16, 29])选择了解决这个问题的第二种方法,即估计文档每个术语所隐含的词汇表每个术语的重要性,即计算文档或查询标记与词汇表中所有标记之间的交互矩阵。 接下来是一个聚合机制(对于 SparTerm [1] 大致是 sum,对于 EPIC [16] 和 SPARTA [29] 是 max),它允许计算词汇表每个术语、完整文档或查询的重要性权重。然而,EPIC 和 SPARTA(文档)表示在构造上不够稀疏——除非诉诸 top-𝑘 池化——与 SparTerm 相反,因此可以实现快速检索。此外,后者不包括(像 SNRM)显式稀疏正则化,这会阻碍其性能。我们的 SPLADE 模型依赖于这种正则化以及其他关键变化,从而提高了此类模型的效率和有效性。

3 方法

SparTerm:
1)对于词汇表中的每个词的权重都与query/doc进行运算
2)通过门控获得稀疏向量:门控有两种方式
  a)手动设置参数
  b)参数可学习
在本节中,我们首先详细描述 SparTerm 模型 [1],然后介绍我们的模型 SPLADE。

3.1 SparTerm

SparTerm 根据 Masked Language Model (MLM) 层的 logits 预测 BERT WordPiece 词汇表 (|𝑉 | = 30522) 中的术语重要性。更准确地说,让我们考虑一个输入查询或文档序列(WordPiece 标记化之后)𝑡 = (𝑡1, 𝑡2, …, 𝑡𝑁 ),以及其对应的 BERT 嵌入 (ℎ1, ℎ2, …, ℎ𝑁 )。 我们考虑标记 𝑗 (词汇表) 对于标记 𝑖 (输入序列) 的重要性 𝑤𝑖𝑗:
其中 𝑔𝑗 是后面描述的二进制掩码(门控)。上面的等式可以看作是查询/文档扩展的一种形式,如 [1, 16] 中所示,因为对于词汇表的每个标记,模型都会预测一个新的权重 𝑤𝑗 。SparTerm [1] 引入了两种稀疏化方案,可以关闭查询和文档表示中的大量维度,从而可以有效地从倒排索引中检索:
仅词汇是 BOW 掩蔽,即如果标记 𝑗 出现在 𝑡 中,则 𝑔𝑗 = 1,否则为 0;
损失函数:对比损失
局限性。
1)SparTerm 扩展感知门控有些复杂,
2)并且模型无法进行端到端训练:门控机制是事先学习的,并在使用 L𝑟𝑎𝑛𝑘 微调匹配模型时进行固定,
因此阻止模型学习排名任务的最佳稀疏化策略。此外,词汇和扩展感知两种策略的表现几乎一样好,这让人对扩展的实际好处产生质疑。

3.2 SPLADE:稀疏词汇和扩展模型

下面,我们建议对 SparTerm 模型进行细微但必要的改动,以大幅提高其性能。
模型。我们对公式 2 中的重要性估计进行了微小的改动,引入了对数饱和效应,这可以防止某些项占主导地位,并自然地确保表示中的稀疏性:
虽然直观地看,使用对数饱和可以防止某些项占主导地位——与 IR 和 log(tf) 模型中的公理方法相似 [9]——但隐含的稀疏性乍一看可能令人惊讶,但根据我们的实验,它获得了更好的实验结果,并且已经允许在没有任何正则化的情况下获得稀疏解。
排名损失。给定一个批次中的查询 𝑞𝑖、一个正文档 𝑑 + 𝑖、一个(硬)负文档 𝑑 − 𝑖(例如来自 BM25 采样)以及批次中的一组负文档(来自其他查询的正文档){𝑑 − 𝑖,𝑗 }𝑗,我们考虑来自 [8] 的排名损失,它可以解释为最大化文档 𝑑 + 𝑖 在文档 𝑑 + 𝑖 、𝑑− 𝑖 和 {𝑑 − 𝑖,𝑗 } 中相关的概率:

4 实验

我们在完整排名设置下,使用 MS MARCO 段落排名数据集 1 训练并评估了我们的模型。该数据集包含约 880 万段段落,以及数十万个带有浅层注释的训练查询(平均每个查询约 1.1 个相关段落)。开发集包含 6980 个带有相似标签的查询,而 TREC DL 2019 评估集为 43 个查询提供了来自人工评估员的细粒度注释 [3]。

5 结论

最近,基于 BERT 的密集检索已证明其在第一阶段检索中的优势,从而对传统稀疏模型的竞争力提出了质疑。在这项工作中,我们提出了 SPLADE,这是一种重新审视查询/文档扩展的稀疏模型。我们的方法依赖于批内负样本、对数激活和 FLOPS 正则化来学习有效且高效的稀疏表示。 SPLADE 是初始检索的一个有吸引力的候选者:它可以与最新的最先进的密集检索模型相媲美,其训练过程简单明了,其稀疏性/FLOPS 可以通过正则化明确控制,并且可以对倒排索引进行操作。 由于其简单性,SPLADE 为进一步改进这一研究领域奠定了坚实的基础。

相关文章:

信息检索(43):SPLADE: Sparse Lexical and Expansion Model for First Stage Ranking

SPLADE: Sparse Lexical and Expansion Model for First Stage Ranking 摘要1 引言2 相关工作3 方法3.1 SparTerm3.2 SPLADE:稀疏词汇和扩展模型 4 实验5 结论 发布时间(2021) 标题:稀疏词汇 扩展模型 摘要 稀疏的优点&#xf…...

DockerHub 镜像加速

Docker Hub 作为目前全球最大的容器镜像仓库,为开发者提供了丰富的资源。Docker Hub 是目前最大的容器镜像社区,DokcerHub的不能使用,导致在docker下pull镜像无法下载,安装kubernetes镜像也受到影响,下面请看解决方式。 1.加速原理 Docker下载加速的原理…...

Oracle 迁移 Mysql

-- Oracle->MySQL -- 使用时改一下where条件的owner和table_name -- 字段数据类型映射时会将Oracle中的浮点NUMBER转换为decimal(65,8)定点数 -- 可以识别主键约束、非空约束,但无法识别外键约束、唯一约束、自定义check -- 对于Oracle字符串长度为4000的&#x…...

vue3父子组件通信

一&#xff0c;父传子——defineProps 方法&#xff1a; 在父组件的模板中使用子组件标签&#xff0c;并且给标签自定义属性和属性名&#xff0c;即通过v-bind绑定数值&#xff0c;而后传给子组件&#xff1b;子组件则通过defineProps接收使用。 父组件&#xff1a; <tem…...

CSS中使用应用在伪元素中的计数器属性counter-increment

在CSS中&#xff0c;counter-increment 是一个用于递增计数器值的属性。它通常与 counter-reset 和 content 属性一起使用&#xff0c;以在文档中的特定位置&#xff08;如列表项、标题等&#xff09;插入自动生成的数字或符号。 counter-increment 基本用法&#xff1a; 使…...

【SkiaSharp绘图08】SKPaint方法:自动换行、是否乱码、字符偏移、边界、截距、文本轮廓、测量文本

文章目录 SKPaint方法BreakText 计算指定宽度内可绘制的字符个数ContainsGlyphs字体是否包含文本字符(是否会乱码)GetGlyphOffsets 字符偏移量GetGlyphPositions 偏移坐标GetGlyphWidths 每个字符的宽度与边界GetHorizontalTextIntercepts 轮廓截距GetPositionedTextIntercepts…...

深入理解Servlet Filter及其限流实践

引言 在Java Servlet技术中&#xff0c;Filter是一个拦截器&#xff0c;它允许开发者在请求到达目标资源之前或响应发送给客户端之后&#xff0c;对请求或响应进行拦截和处理。这种机制为实现诸如身份验证、日志记录、请求修改等功能提供了极大的灵活性。 Filter基础 Filter…...

使用cv2对视频指定区域进行去噪

视频去噪其实和图象一样&#xff0c;只是需要现将视频截成图片&#xff0c;在对图片进行去噪&#xff0c;将去噪的图片在合成视频就行。可以利用cv2.imread()、imwrite()等轻松实现。 去噪步骤 1、视频逐帧读成图片 2、图片指定区域批量去噪 2、去噪后的图片写入视频 1、视频逐…...

AI在创造还是毁掉音乐?

AI对音乐产业的影响是复杂而多维的&#xff0c;既有创造性的贡献也存在潜在的挑战。我们可以从以下几个角度来分析这个问题&#xff1a; ### 创造性贡献 1. **音乐创作**&#xff1a;AI可以帮助音乐家创作新的旋律和和声&#xff0c;甚至生成完整的音乐作品。例如&#xff0c…...

【2023年全国青少年信息素养大赛智能算法挑战赛复赛真题卷】

目录 2023全国青少年信息素养大赛智能算法挑战赛初中组复赛真题 2023全国⻘少年信息素养⼤赛智能算法挑战复赛⼩学组真题 2023全国青少年信息素养大赛智能算法挑战赛初中组复赛真题 1. 修复机器人的对话词库错误 【题目描述】 基于人工智能技术的智能陪伴机器人的语言词库被…...

Android系统揭秘(一)-Activity启动流程(上)

public ActivityResult execStartActivity( Context who, IBinder contextThread, IBinder token, Activity target, Intent intent, int requestCode, Bundle options) { IApplicationThread whoThread (IApplicationThread) contextThread; … try { … int result …...

使用Java实现哈夫曼编码

前言 哈夫曼编码是一种经典的无损数据压缩算法&#xff0c;它通过赋予出现频率较高的字符较短的编码&#xff0c;出现频率较低的字符较长的编码&#xff0c;从而实现压缩效果。这篇博客将详细讲解如何使用Java实现哈夫曼编码&#xff0c;包括哈夫曼编码的原理、具体实现步骤以…...

IDEA、PyCharm等基于IntelliJ平台的IDE汉化方式

PyCharm 或者 IDEA 等编辑器是比较常用的&#xff0c;默认是英文界面&#xff0c;有些同学用着不方便&#xff0c;想要汉化版本的&#xff0c;但官方没有这个设置项&#xff0c;不过可以通过插件的方式进行设置。 方式1&#xff1a;插件安装 1、打开设置 File->Settings&a…...

visual studio 创建c++项目

目录 环境准备&#xff1a;安装 visual studiovisual studio 创建c项目Tips&#xff1a;新建cpp文件注释与取消注释代码 其他初学者使用Visual Studio开发C和C时常遇到的3个坑 环境准备&#xff1a;安装 visual studio 官网&#xff1a;https://visualstudio.microsoft.com/zh…...

MGV电源维修KUKA机器人电源模块PH2003-4840

MGV电源维修 库卡电源模块维修 机器人电源模块维修 库卡控制器维修 KUKA电源维修 库卡机器人KUKA主机维修 KUKA驱动器模块维修 机械行业维修&#xff1a;西门子系统、法那克系统、沙迪克、FIDIA、天田、阿玛达、友嘉、大宇系统&#xff1b;数控冲床、剪板机、折弯机等品牌数控…...

设置浏览器互不干扰

目录 一、查看浏览器文件路径 二、 其他盘新建文件夹Cache 三、以管理员运行CMD 四、执行命令 一、查看浏览器文件路径 chrome://version/ 二、 其他盘新建文件夹Cache D:\chrome\Cache 三、以管理员运行CMD 四、执行命令 Mklink /d "C:\Users\Lenovo\AppData\Loca…...

kafka操作命令详解

目录 1、集群运维命令 1.1、集群启停命令 1.3、集群迁移命令 1.4、权限管理命令 1.4.1、权限参数介绍 1.4.2、增加权限命令 1.4.3、移出权限命令 1.4.4、查看所有topic权限命令 1.4.5、查看某个topic权限命令 2、生产者命令 2.1、创建topic命令 2.2、删除topic命令 …...

graalvm jdk和openjdk

下载地址:https://github.com/graalvm/graalvm-ce-builds/releases 官网: https://www.graalvm.org...

docker基础使用教程

1.准备工作 例子&#xff1a;工程在docker_test 生成requirements.txt文件命令&#xff1a;&#xff08;使用参考链接2&#xff09; pip list --formatfreeze > requirements.txt 参考链接1&#xff1a; 安装pipreqs可能比较困难 python 项目自动生成环境配置文件require…...

计算机网络 交换机的安全配置

一、理论知识 1.交换机端口安全功能介绍 交换机端口安全功能是针对交换机端口进行安全属性的配置&#xff0c;以控制用户的安全接入。主要包括以下两种配置项&#xff1a; ①限制交换机端口的最大连接数&#xff1a;控制交换机端口连接的主机数量&#xff1b;防止用户进行恶…...

深入解析大语言模型系列:Transformer架构的原理与应用

引言 在自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;大语言模型&#xff08;Large Language Models, LLMs&#xff09;近几年取得了突破性的进展&#xff0c;而 Transformer 作为这些模型的核心架构&#xff0c;功不可没。本文将详细介绍 Transformer 的原理、结…...

uni-app地图组件控制

uni.createMapContext(mapId,this) 创建并返回 map 上下文 mapContext 对象。在自定义组件下&#xff0c;第二个参数传入组件实例this&#xff0c;以操作组件内 <map> 组件。 注意&#xff1a;uni.createMapContext(mapId, this) app-nvue 平台 2.2.5 支持 uni.create…...

前端调用api发请求常用的请求头content- type的类型和常用场景

Content-Type 是一个非常重要的HTTP头&#xff0c;它定义了发送给服务器或客户端的数据的MIME类型。这对于服务器和客户端正确解析和处理数据至关重要。下面是一些常见的 Content-Type 值及其用途和区别。 常见的 Content-Type 值 text/plain • 用途: 纯文本&#xff0c;无格…...

数据仓库之SparkSQL

Apache Spark SQL是Spark中的一个组件&#xff0c;专门用于结构化数据处理。它提供了通过SQL和DataFrame API来执行结构化数据查询的功能。以下是对Spark SQL的详细介绍&#xff1a; 核心概念 DataFrame: 定义: DataFrame是一个分布式数据集合&#xff0c;类似于关系型数据库中…...

如何在 MySQL 中导入和导出数据库以及重置 root 密码

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 如何导入和导出数据库 导出 要导出数据库&#xff0c;打开终端&#xff0c;确保你没有登录到 MySQL 中&#xff0c;然后输入以下命令&…...

基于uni-app和图鸟UI的云课堂小程序开发实践

摘要&#xff1a; 随着移动互联网的快速发展&#xff0c;移动学习已成为教育领域的重要趋势。本文介绍了基于uni-app和图鸟UI框架开发的云课堂小程序&#xff0c;该小程序实现了移动教学、移动学习、移动阅读和移动社交的完美结合&#xff0c;为用户提供了一个便捷、高效的学习…...

解决python从TD数据库取50w以上大量数据慢的问题

1.问题背景描述 python项目中的时序数据都存放在TD数据库中&#xff0c;数据是秒级存入的&#xff0c;当查询一周数据时将超过50w数据量&#xff0c;这是一次性获取全量数据到python程序很慢&#xff0c;全流程10秒以上&#xff0c;希望进行优化加速 2.排查 首先&#xff0c…...

游戏心理学Day21

玩家情绪与暴力攻击 情绪 情绪的分类 情绪是一种经常波动的东西&#xff0c;我们既体验过骄傲激动和开心&#xff0c;也体验过羞怯内疚和沮丧。我们的感受高度依赖于情境。研究者区分出至少三种途径来考察作为一种相对固定的人格特征的情绪&#xff0c;即为情感性&#xff0…...

接口测试基础 --- 什么是接口测试及其测试流程?

接口测试是软件测试中的一个重要部分&#xff0c;它主要用于验证和评估不同软件组件之间的通信和交互。接口测试的目标是确保不同的系统、模块或组件能够相互连接并正常工作。 接口测试流程可以分为以下几个步骤&#xff1a; 1.需求分析&#xff1a;首先&#xff0c;需要仔细…...

贪心+动归1

​​​​​​​​​​​​​​跳跃游戏 给你一个非负整数数组 nums &#xff0c;你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标&#xff0c;如果可以&#xff0c;返回 true &#xff1b;否则&#xff0…...

三星S20以上手机中的动态相片及其分解

三星S20以后的相机&#xff0c;相机拍出来的图片&#xff0c;用三星手机自带的“相册”打开之后&#xff0c;还会有“查看动态照片”的选项&#xff0c;点击之后就能查看拍照片时前后2秒左右的视频&#xff01; 不知道这个功能是不是三星独有的。 这样得到的图片非常大。因为…...

一文了解HarmonyOSNEXT发布重点内容

华为在2024年6月21日的开发者大会上正式发布了HarmonyOS NEXT版&#xff0c;这是华为在操作系统领域的一次重大飞跃&#xff0c;标志着华为在构建全场景智能生态方面的卓越成就。HarmonyOS NEXT版不仅带来了全新的系统架构和性能提升&#xff0c;还首次将AI能力融入系统&#x…...

矩阵中严格递增的单元格数

题目链接&#xff1a;leetcode:矩阵中严格递增的单元格数 描述 给你一个下标从 1 开始、大小为 m x n 的整数矩阵 mat&#xff0c;你可以选择任一单元格作为 起始单元格 。 从起始单元格出发&#xff0c;你可以移动到 同一行或同一列 中的任何其他单元格&#xff0c;但前提是目…...

超参数调优-通用深度学习篇(上)

文章目录 深度学习超参数调优网格搜索示例一&#xff1a;网格搜索回归模型超参数示例二&#xff1a;Keras网格搜索 随机搜索贝叶斯搜索 超参数调优框架Optuna深度学习超参数优化框架nvidia nemo大模型超参数优化框架 参数调整理论&#xff1a; 黑盒优化&#xff1a;超参数优化…...

小程序中data-xx是用方式

data-sts"3" 是微信小程序中的一种数据绑定语法&#xff0c;用于在 WXML&#xff08;小程序模板&#xff09;中将自定义的数据绑定到页面元素上。让我详细解释一下&#xff1a; data-xx 的作用&#xff1a; data-xx 允许你在页面元素上自定义属性&#xff0c;以便在事…...

【2024德国工作】外国人在德国找工作是什么体验?

挺难的&#xff0c;德语应该是所有中国人的难点。大部分中国人进德国公司要么是做中国业务相关&#xff0c;要么是做技术领域的工程师。先讲讲人在中国怎么找德国的工作&#xff0c;顺便延申下&#xff0c;德国工作的真实体验&#xff0c;最后聊聊在今年的德国工作签证申请条件…...

Unity中获取数据的方法

Input和GetComponent 一、Input 1、Input类&#xff1a; 用于处理用户输入&#xff08;如键盘、鼠标、触摸等&#xff09;的静态类 2、作用&#xff1a; 允许你检查用户的输入状态。如某个键是否被按下&#xff0c;鼠标的位置&#xff0c;触摸的坐标等 3、实例 (1) 键盘…...

Java的死锁问题

Java中的死锁问题是指两个或多个线程互相持有对方所需的资源&#xff0c;导致它们在等待对方释放资源时永久地阻塞的情况。 死锁产生条件 死锁发生通常需要满足以下四个必要条件&#xff1a; 互斥条件&#xff1a;至少有一个资源是只能被一个线程持有的&#xff0c;如果其他…...

Unity 公用函数整理【二】

1、在规定时间时间内将一个值变化到另一个值&#xff0c;使用Mathf.Lerp实现 private float timer;[Tooltip("当前温度")]private float curTemp;[Tooltip("开始温度")]private float startTemp 20;private float maxTemp 100;/// <summary>/// 升…...

千年古城的味蕾传奇-平凉锅盔

在甘肃平凉这片古老而神秘的土地上&#xff0c;有一种美食历经岁月的洗礼&#xff0c;依然散发着独特的魅力&#xff0c;那便是平凉锅盔。平凉锅盔&#xff0c;那可是甘肃平凉的一张美食名片。它外表金黄&#xff0c;厚实饱满&#xff0c;就像一轮散发着诱人香气的金黄月亮。甘…...

微信小程序视频如何下载

一、工具准备 1、抓包工具Fiddler Download Fiddler Web Debugging Tool for Free by Telerik 2、VLC media player Download official VLC media player for Windows - VideoLAN 3、微信PC端 微信 Windows 版 二、开始抓包 1、打开Fiddler工具&#xff0c;设置修改如下…...

SVN 安装教程

SVN 安装教程 SVN&#xff08;Subversion&#xff09;是一个开源的版本控制系统&#xff0c;广泛用于软件开发和文档管理。本文将详细介绍如何在不同的操作系统上安装SVN&#xff0c;包括Windows、macOS和Linux。 Windows系统上的SVN安装 1. 下载SVN 访问SVN官方网站或Visu…...

HTML静态网页成品作业(HTML+CSS)—— 家乡山西介绍网页(3个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;未使用Javacsript代码&#xff0c;共有6个页面。 二、作品演示 三、代…...

【抽代复习笔记】20-群(十四):定理6的补充证明及三道循环置换例题

例1&#xff1a;找出S3中所有不能和(123)交换的元。 解&#xff1a;因为 (123)(1) (1)(123) (123)&#xff0c;(123)(132) (132)(123) (1)&#xff0c;所以(1)、(132)和(123)均可以交换&#xff1b; 而(12)(123) (23)&#xff0c;(123)(12) (13)&#xff0c;故 (12)(12…...

【单片机毕业设计选题24018】-基于STM32和阿里云的农业大棚系统

系统功能: 系统分为手动和自动模式&#xff0c;上电默认为自动模式&#xff0c;自动模式下系统根据采集到的传感器值 自动控制&#xff0c;温度过低后自动开启加热&#xff0c;湿度过高后自动开启通风&#xff0c;光照过低后自动开启补 光&#xff0c;水位过低后自动开启水泵…...

【计算机毕业设计】​206校园顺路代送微信小程序

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…...

9、PHP 实现调整数组顺序使奇数位于偶数前面

题目&#xff1a; 调整数组顺序使奇数位于偶数前面 描述&#xff1a; 输入一个整数数组&#xff0c;实现一个函数来调整该数组中数字的顺序&#xff0c;使得所有的奇数位于数组的前半部分&#xff0c; 所有的偶数位于位于数组的后半部分&#xff0c;并保证奇数和奇数&#xff…...

iOS开发工具-网络封包分析工具Charles

一、Charles简介 Charles 是在 Mac 下常用的网络封包截取工具&#xff0c;在做 移动开发时&#xff0c;我们为了调试与服务器端的网络通讯协议&#xff0c;常常需要截取网络封包来分析。 Charles 通过将自己设置成系统的网络访问代理服务器&#xff0c;使得所有的网络访问请求…...

7、PHP 实现矩形覆盖

题目&#xff1a; 矩形覆盖 描述&#xff1a; 我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。 请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形&#xff0c;总共有多少种方法&#xff1f; <?php function rectCover($number) {$prePreNum 1;$preNum 2;$temp 0;i…...

鸿蒙开发通信与连接:【@ohos.wifiext (WLAN)】

WLAN 说明&#xff1a; 本模块首批接口从API version 8开始支持。后续版本的新增接口&#xff0c;采用上角标单独标记接口的起始版本。 该文档中的接口只供非通用类型产品使用&#xff0c;如路由器等&#xff0c;对于常规类型产品&#xff0c;不应该使用这些接口。 导入模块 …...