AgentRE:用智能体框架提升知识图谱构建效果,重点是开源!

news2024/11/13 3:12:11

发布时间:2024 年 09 月 13 日

Agent应用

AgentRE: An Agent-Based Framework for Navigating Complex Information Landscapes in Relation Extraction
在复杂场景中,关系抽取 (RE) 因关系类型多样和实体间关系模糊而挑战重重,影响了传统 “文本输入,文本输出” 语言模型的性能。为此,我们提出了基于代理的 RE 框架 AgentRE,该框架通过整合大型语言模型的记忆、检索和反思能力,有效应对这些挑战。AgentRE 包含三大模块,助力代理高效获取并处理信息,显著提升 RE 性能。实验表明,AgentRE 在低资源环境下表现卓越,并能生成高质量训练数据,用于优化小型模型。

在这里插入图片描述

一、背景

关系抽取( Relation Extraction,简称RE)旨在将非结构化文本转换为结构化数据(即关系三元组),在知识图谱构建等领域能发挥关键作用。
然而,关系抽取常因关系类型的多样性及句子中实体关系的模糊性等问题,致使高效 RE 难以实现。
近年来,大型语言模型(Large Language Models, LLMs)凭借其在自然语言理解与生成的强大效能,逐渐在关系抽取领域获得广泛应用。虽已取得一定进展,这些应用多限于监督式微调或小规模样本的问答(QA)形式的基础抽取,于复杂关系抽取场景的应用则较少。
将LLMs应用于复杂RE任务时,面临以下挑战:

  1. 如何最大化利用LLMs的潜力,深入挖掘有益于RE的多元信息? 包括标记样本、关联文献及知识图谱内的知识等,均可助力提升RE模型性能。遗憾的是,LLMs的上下文窗口限制阻碍了对这些丰富信息的全面整合。
  2. 如何在特定或数据贫乏领域有效实施RE? 特定领域的数据稀缺性制约了传统监督模型的表现。
  3. 如何以经济的方式实现高效的RE? 虽然LLMs表现出色,但在实践层面,模型尺寸较小、计算资源需求低的模型更受欢迎。因此,利用大型模型的智慧去微调小型模型成为了一个有吸引力的解决方案。

借鉴智能体框架的理念,即通过赋予系统记忆、反思及与外界互动的能力,可以有力推动复杂RE任务的解决。受此启发,本文作者创新性地提出了一种基于智能体的RE框架——AgentRE,旨在克服上述关系抽取挑战。

二、 什么是AgentRE?

在这里插入图片描述

上图 (a) 展示了“文本输入,文本输出(text-in, text-out)”模式下语言模型的 RE 流程,该模型直接从输入文本或通过简单的提示方法产生带有错误的结果。

图(b)则展示了AgentRE的RE流程,这是一个包含检索和记忆模块的智能体框架,在多次推理回合中利用各种信息,以实现更精确的RE。

首先,AgentRE 将大型语言模型(LLM)作为智能体,处理来自不同渠道的数据。借助检索和记忆模块等工具,辅助智能体进行推理。与传统的单轮“文本输入,文本输出”语言模型不同,AgentRE通过多轮交互和推理,拓宽了信息源的利用范围,克服了单轮提取的局限。

其次,在资源有限的情况下,AgentRE能够借助LLM的推理和记忆能力,在提取过程中进行动态总结和反思,从而精进其持续学习能力,通过不断积累经验与知识,提升提取效能。

最后,将AgentRE的推理路径转化为包含多种推理策略的高质量数据,如直接生成、分步提取和基于思维链的提取。这些丰富的数据可用于微调小型模型,引导它们灵活选择不同的提取策略,从而在成本可控的前提下,提升模型的提取表现。
在这里插入图片描述

图(a)AgentRE的整体架构,其中LLM扮演智能体的角色,通过与检索、记忆和提取模块的协同工作,从输入文本中提炼出关系三元组。

图(b)至(d)分别展示了检索、记忆和提取模块的内部结构。

  • 检索模块(Retrieval Module):负责维护静态知识库,便于存储和检索信息,这包括训练集中的标注样本以及相关的标注指南等资料。
  • 记忆模块(Memory Module):负责维护动态知识库,用于记录当前提取结果的短期记忆,以及用于总结和反思历史操作的长期记忆。通过在记忆模块中进行读写操作,记录并利用以往的提取经验。
  • 提取模块(Extraction Module):利用检索和记忆模块提供的信息,通过多种推理方法从输入文本中抽取结构化信息(关系三元组)。

2.1 检索模块

检索模块负责从现有数据集中提取相关样本,并搜集补充知识,辅助提取模块完成关系提取(RE)任务。可检索的数据范围广泛且类型繁多,主要分为两大类。

  • 标注数据:带有明确输入输出关系的标注数据,这些数据可以作为少量样本整合进LLM的上下文中,帮助模型把握当前任务的输入输出关系。
  • 相关资讯:包括关系定义、标注准则,乃至百科全书中的外部知识。这些信息作为辅助资讯注入LLM的上下文,能够辅助模型更好地理解提取任务。

为了高效地管理和运用这两类数据,设计了两种特定的检索模块:

  • 样本检索模块
  • 相关信息检索模块。

一旦获取了富有信息量的标记数据和其它相关信息,检索模块就可以利用这些数据:
在这里插入图片描述

  • 一种直接的方法是将它们合并为提示,以此整合有益信息。这些提示词模板如上图所示。提示词分为不同颜色标记的多个部分,每个部分都有清晰的标签,引导模型处理输入文本并生成适当的输出。:
    • • 紫色部分用于任务描述和输入句子
    • • 蓝色部分用于示例和可能的关系类型
    • • 青绿色部分用于相关信息
    • • 黑色部分用于输出。
  • 提取模块可能会采用除直接提示之外的各种推理方法。
2.1.1 样本检索

如图(b)下部展示,样本检索模块利用编码器将当前文本转化为嵌入向量。计算训练数据集中样本与当前文本的相似性,以检索与当前文本相似的样本。

例如,对于句子“5月9日,诺贝尔文学奖得主、作家莫言在北京发表了演讲。”,样本检索模块可以从训练数据集中检索出相关样本,如文本“When the newly minted Nobel Prize in Literature, British novelist Kazuo Ishiguro, found himself…”及其对应的关系三元组标签(Kazuo Ishiguro, 获奖, Nobel Prize in Literature)。

提取过程可能被分解为两个阶段:

  • 首先是识别句子中潜在的关系类型
  • 然后基于这些识别出的候选关系类型进行提取

检索候选关系类型的过程在图(b)中以虚线箭头表示。实现这种检索的一种有效方法是开发一个在数据集上训练的分类器,预测给定文本中最可能出现的关系。此外,利用LLMs的推理能力也可以实现检索关系类型的任务。

2.1.2 相关信息检索

如图(b)的上部展示,相关信息检索模块的目的是检索与特定句子相关的知识点。相较于样本检索使用的嵌入检索技术,本模块运用了多元化的检索手段,融合向量与实体,实现精确匹配与模糊语义匹配的有机结合。

以句子“5月9日,诺贝尔文学奖得主、作家莫言在北京发表了演讲。”为例,本模块不仅提取句子的语义信息,还识别出其中的潜在实体,如莫言、诺贝尔奖和北京,并利用这些实体检索相关背景知识。

此外,以诺贝尔奖为起点,还能从标注指南中检索到关于奖项关系类型的详细描述,包括关系两端实体的定义和深入阐释。

相关信息检索模块涵盖提取关键信息或生成嵌入向量的预处理环节,以及多个用于检索输入文本相关资讯的检索器。在预处理阶段,除了文本编码器,还包含一个实体识别器,用于识别输入文本中的所有潜在实体。

采用多种策略从不同数据源中检索相关知识,比如从知识图谱中检索实体的属性和关系,从标注指南中检索关系类型的解释性信息,或是从外部百科全书中检索相关背景知识。记忆模块

2.2 记忆模块

记忆模块负责在提取过程中动态地利用现有知识,并进行反思和总结,更好地完成后续的提取任务。

仿照人脑的记忆机制,模型的记忆被划分为短期记忆和长期记忆。

2.2.1 短期记忆

短期记忆记录了初步的提取经验。

如图©所示,对于句子“博物馆位于莫言的故乡,高密东北乡。”,模型提取的结果是(莫言, 出生地, 高密东北乡)和(博物馆, 位于, 高密东北乡)。其中第一个关系三元组是正确的,但第二个由于博物馆的指代不明确而被标记为错误。短期记忆中,通过记录这些正确与错误的结果,模型便能在后续的提取中将它们作为参考。这个过程相当于从过往经验中汲取教训。具体来说,模型会分别在正确记忆和错误记忆中添加新的条目。

2.2.2 长期记忆

长期记忆涵盖了对过往记忆的深入反思与更新,如图©所示。

在长期记忆中,AgentRE能够基于准确的成果对长期记忆进行刷新,并针对不准确的结果进行深思熟虑。

以图©的示例为鉴,得到正确的提取成果后,AgentRE便将其关于莫言的记忆从“莫言,著名作家,1955年2月17日出生,本名管谟业”更新为“莫言,著名作家,1955年2月17日出生于高密东北乡,本名管谟业”。对于错误的结果,AgentRE则进行反思。比如,面对一个错误的提取成果和相关的标注准则,它会产生反思文本“根据标注准则,不完整的实体,如博物馆,本不应被提取”。因此,当接收到下一个输入文本“以最有影响力的当代作家和学者王先生命名的博物馆……”,AgentRE便能借助先前的反思避免重蹈覆辙。

2.3 提取模块

AgentRE中提取模块借鉴了 ReAct 的互动式方法,通过多轮的思考、行动、观察来推进,如图(d)所描绘。

在此框架下,检索与记忆模块被视作智能体可调用的外部工具。智能体通过一系列API接口,输入工具名称和参数,随后获得反馈结果。这种设计赋予了智能体灵活调用工具、选择工具种类及调用方式的能力。

以图(d)中的句子为例:“5月9日,诺贝尔文学奖得主、作家莫言在北京发表了演讲。”在首回合,智能体识别出可能的关系类型,随后决定调用SearchAnnotation API来获取相关资讯。进入第二轮,智能体运用SearchKG API检索有关莫言的既有知识。最终,在搜集到充分的信息后,智能体执行Finish操作,以产出提取成果。

在提取过程中,AgentRE并非总是遵循一连串完整的ReAct互动。会根据输入文本的复杂度,灵活选择最合适的提取策略。

比如,在直接提取中,预测的关系三元组直接从文本中导出;在分阶段提取中,先筛选关系类型,再进行三元组的提取;或者采用思维链(CoT)提取,最终结果通过逐步推导生成。

2.4 小模型的精炼

在真实场景中,部署具备强大推理能力的LLMs智能体以完成信息提取任务,往往需要高昂的成本。

而相对较小的大型语言模型(SLLMs)在推理能力上通常表现逊色。为了弥补这一鸿沟,作者提出了一种蒸馏学习的方法,通过利用大型模型的历史推理路径来引导小模型的学习。

对不同类型问题采用多样化的推理策略,可以显著增强模型解决问题的适应性。例如:

  • 在关系提取(RE)任务中,文本中明确表述的直接关系可以直接推断并生成结构化输出。
  • 对于那些包含更复杂关系的句子,采用基于思维链(CoT)的推理方法,可以引导模型逐步逼近最终结果,减少错误。

AgentRE推理框架通过智能体有效地为不同情境定制了多样化的推理方法。为了赋予SLLMs相似的能力,并简化推理过程,建议从AgentRE的历史推理路径中提炼出更简洁的推理逻辑,用以指导小模型的学习。

3. 效果评估

3.1 测评数据集

为验证AgentRE的效能,在以下两个数据集进行测试:

  • DuIE:作为规模最大的中文关系抽取数据集,囊括了48类预设关系类型。覆盖了传统简单的关系类型,也涵盖了涉及众多实体的复杂关系类型。该数据集的标注文本源自百度百科、百度信息流及百度贴吧,共包含210,000句样本与450,000个关系实例。
  • SciERC:专为科学领域设计的英文命名实体识别与关系抽取数据集。其标注数据源自Semantic Scholar Corpus,覆盖了500篇科学文章摘要。SciERC数据集共标注了8,089个实体和4,716个关系,平均每篇文档包含9.4个关系。

3.2 测试基准方法

将AgentRE与数种基于LLM的信息抽取模型/框架进行了对比:

  • ChatIE:通过与ChatGPT的对话,提出了一种零次学习IE方法,将零次学习IE视为一种多轮问答过程。先识别潜在的关系类型,再基于这些类型抽取关系三元组。
  • GPT-RE:在少量学习框架内采用任务感知检索模型,并整合CoT自动推理机制,以解决输入-标签映射中的实例相关性和解释问题。
  • CodeKGC:运用Python类来表达关系的框架模式,通过推理依据增强信息抽取的准确性。
  • CodeIE:将IE任务转化为代码形式,借助LLMs的代码推理能力。
  • UIE:引入了一种结构化编码语言,用于文本到结构化输出的生成,适用于T5模型的预训练。
  • USM:一个集结构化与概念能力于一体的统一语义匹配框架,专为信息抽取设计,基于RoBERTa构建。
  • InstructUIE:在Flan-T5上实施基于指令的微调,以提升任务的泛化能力。

ChatIE和CodeKGC运用LLMs进行零次学习,而CodeIE、CodeKGC和GPT-RE则采用少量学习策略。UIE、USM和InstructUIE则采用监督微调(SFT)。GPT-RE还在特定任务上对如text-davinci-003这样的大型模型进行了微调,成本较高。

3.3 测评结果

在这里插入图片描述

实验结果如上图,仅采用F1分数作为评价标准。

对于比较基准模型/框架,尽量引用原始发表数据,或通过复现其公布的模型与源代码来获取结果。

为了确保实验比较的公正性,主要采用同一基础大型语言模型,如gpt-3.5-turbo。对于那些采用不同基础模型的方法,在表格中以斜体字呈现了它们的原始成果,并补充了使用gpt-3.5-turbo作为基础模型所得到的结果。

上表根据三种不同的实验范式划分:

  • 零样本学习(ZFL)
  • 少样本学习(FSL)
  • 有监督的微调(SFT)

在SFT设置下,这些方法大致可分为三类,根据模型参数规模如下:

  • 1)UIE使用的T5-v1.1-large和USM使用的RoBERTa-Large,参数规模分别为0.77B和0.35B。
  • 2)InstructUIE使用的Flan-T5和AgentRE-SFT使用的Llama-2-7b,参数规模分别约为11B和7B。
  • 3)GPT-RE-SFT使用的gpt-3.5-turbo,参数规模约为175B。

在ZSL组中,ChatIE-multi的表现超过了ChatIE-single,说明多轮对话的有效性。AgentRE-ZSL的卓越表现则反映了其在高效利用辅助信息方面的优势。

在FSL组中,CodeKGC-FSL超越了基于对话的ChatIE,而GPT-RE与其表现相匹配,突显了结构化推理和精确样本检索的优势。AgentRE-FSL显著超越了当前最佳模型,展示了其在利用标记数据和辅助信息方面的卓优势

在SFT设置下,对较小模型如UIE和USM进行微调,虽然优于基线模型,但仍不及AgentRE-FSL。AgentRE-SFT在InstructUIE上的表现显著更佳,证明了AgentRE中蒸馏学习的有效性。然而,GPT-RE-SFT在SciERC上取得了最佳性能,尽管由于其庞大的模型规模和基于text-davinci-003的API训练带来了更高的训练成本。

3.4 消融实验

消融实验探究了AgentRE在不同配置下的表现:

  • 缺少检索模块(AgentRE-w/oR)
  • 缺少记忆模块(AgentRE-w/oM)
  • 两者皆无(AgentRE-w/oRM)

在这里插入图片描述

依据上表,AgentRE-w/oRM的性能显著不足,表明这两个模块的关键作用。

AgentRE-w/oR和AgentRE-w/oM相较于AgentRE-w/oRM展现出更好的效果,表明独立引入记忆和检索模块的好处。

完整框架AgentRE整合了这两个模块,达到了最佳表现,证明结合检索能力获取相似样本和利用记忆模块优化先前提取的协同效应。

3.4.1 检索模块分析

影响检索模块效果的主要变量包括用于数据表示和检索的模型,以及检索过程中可用的内容。
在这里插入图片描述

上表结果表明:无论是统计方法还是基于嵌入的方法,都显著优于随机检索。这表明,检索与输入文本更紧密相关的标记样本,对于辅助模型的决策过程、提高其抽取精度具有显著效果。在评估的模型中,BGE在两个数据集上均展现出最好的性能。

检索内容:在为检索模块选定了基础模型之后,进一步探讨不同类型可用信息对检索的影响。
在这里插入图片描述

上表列出了实验结果,其中“None”和“AgentRE-w/oM”分别代表没有和仅有完整检索模块的变体。此外,“-samples”、“-doc”和“-KG”分别表示缺少标记样本检索、注释指南检索和知识图谱检索组件的变体。

结果证实,忽略任何类型的信息都会降低AgentRE的性能,尤其是移除标记样本(-samples)对性能的影响最为显著。

在这里插入图片描述

为探究记忆模块对信息抽取效能的影响,分析了在DuIE数据集上,AgentRE在不同记忆配置下,随着训练样本数量增加的F1、召回率和精确度得分,如上图所示,图中的X轴代表训练样本的数量。对比模型包括不包含记忆模块的AgentRE-w/oM、搭载浅层记忆的AgentRE-wM),以及融合了浅层与深层记忆的AgentRE-wM+。相较于缺乏记忆功能的模型,这些搭载记忆模块的模型能够同时利用输入样本及历史抽取记录。

  • 搭载记忆模块的模型(AgentRE-wM和AgentRE-wM+)在所有评价指标上均优于无记忆模块的版本,凸显了记忆模块在提升抽取精度方面的积极作用。
  • 随着数据量的增加,搭载记忆模块的模型表现更佳,这表明了利用过往抽取经验进行动态学习的有效性。
  • AgentRE-wM+在数据输入增多时相较于AgentRE-wM展现出更卓越的性能,这暗示了一种全面的记忆方法,超越了单纯的个体样本追踪,能够进一步提升抽取效能。

代码请访问:https://github.com/Lightblues/AgentRE
论文地址: https://arxiv.org/pdf/2409.01854

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

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

相关文章

一种没有注释的语言

原文:Breck Yunits - 2024.09.05 JSON 是 PLDB(A Programming Language Database)中唯一不支持注释的流行语言。JSON 既不支持单行注释,也不支持多行注释。 JSON 最初是有注释的 Douglas Crockford 在 2012 年解释了他独特的设计…

稀有 Punk 10E 到手?「捡漏」的背后是一个已停止运营的 NFT 碎片化协议

撰文:Yangz,Techub News 今日凌晨,作为 24 个 Ape Punk 之一的 CryptoPunk #2386 以 10 ETH 的价格被 0x282 开头的地址购入。一时间,NFT 圈内尽是「羡慕」与「质疑」。 的确,即使是在如今尽显颓势的 NFT 市场&#xf…

(十三)、将一个 SpringCloud 微服务运行 以 jar 方式运行

文章目录 1、总体思路2、操作2.1、把 SpringCloud 打包为 jar生成 jar运行 jar 1、总体思路 把 SpringCloud 项目打包获得 jar &#xff0c;然后使用指定版本的jdk 运行 jar 2、操作 2.1、把 SpringCloud 打包为 jar 生成 jar 具体被打包的子 pom 文件声明为 jar 类型 <…

开源PHP免费家谱应用Webtrees简介

1. 介绍 Webtrees是一个开源的在线家谱管理系统&#xff0c;支持 GEDCOM 格式&#xff0c;允许用户协作管理家谱数据。它是免费的&#xff0c;并且功能强大。Webtrees有大量活跃用户参与的交流社区&#xff0c;在全世界约有6800个服务器。这是一个服务器应用&#xff0c;可以多…

抖音豆包大模型SFT-监督微调最佳实践

目录 一、SFT&#xff08;Supervised Finetune&#xff09;简介 二、SFT 的意义和时机 三、数据准备 3.1、数据格式 3.1.1、参考问答 3.1.2、角色扮演 3.1.3、文本分类 3.1.4、文案生成 3.2、数据量级 3.3、是否混入预置数据 3.4、如何扩充SFT数据 三、训练配置 3.…

Leetcode面试经典150题-349.两个数组的交集

题目比较简单&#xff0c;散散心吧 解法都在代码里&#xff0c;不懂就留言或者私信 class Solution {public int[] intersection(int[] nums1, int[] nums2) {/**先排个序 */Arrays.sort(nums1);Arrays.sort(nums2);int curIndex1 0;int curIndex2 0;/**先把数组的大小设置…

无线麦克风哪款好用,手机领夹麦克风哪个牌子好,麦克风推荐

随着短视频与直播行业的蓬勃发展&#xff0c;无线领夹麦克风市场迎来了前所未有的繁荣。品牌如罗德、大疆、西圣等麦克风品牌凭借卓越的技术实力与品牌影响力占据了市场的主导地位&#xff0c;其中西圣更是凭借其高性价比和用户口碑&#xff0c;稳居行业口碑品牌前列。但在这光…

百度移动刷下拉词工具:快速出下拉词的技术分析

都2024年了&#xff0c;你还在做SEO百度下拉&#xff1f;答案当然是肯定的&#xff0c;虽然百度的搜索流量不如从前&#xff0c;但移动端的流量依然是巨大的&#xff01;除了百度SEO快排以外&#xff0c;下拉也是一大流量入口&#xff0c;尤其是在移动端搜索的流量越来越大时&a…

《程序猿之设计模式实战 · 策略模式》

&#x1f4e2; 大家好&#xff0c;我是 【战神刘玉栋】&#xff0c;有10多年的研发经验&#xff0c;致力于前后端技术栈的知识沉淀和传播。 &#x1f497; &#x1f33b; CSDN入驻不久&#xff0c;希望大家多多支持&#xff0c;后续会继续提升文章质量&#xff0c;绝不滥竽充数…

GeoPandas在地理空间数据分析中的应用

GeoPandas是一个开源的Python库&#xff0c;专门用于处理和分析地理空间数据。它建立在Pandas库的基础上&#xff0c;扩展了Pandas的数据类型&#xff0c;使得用户能够在Python中方便地进行GIS操作。GeoPandas的核心数据结构是GeoDataFrame&#xff0c;它是Pandas的DataFrame的…

【PCB工艺】表面贴装技术中常见错误

系列文章目录 1.元件基础 2.电路设计 3.PCB设计 4.元件焊接 5.板子调试 6.程序设计 7.算法学习 8.编写exe 9.检测标准 10.项目举例 11.职业规划 文章目录 1、什么是SMT和SMD2、表面贴装技术的优势是什么&#xff1f;3、通孔和表面贴装技术之间的区别是什么&#xff1f;4、焊…

【Qt网络】—— Qt网络编程

目录 &#xff08;一&#xff09;UDP Socket 1.1 核心API概览 1.2 代码示例 1.2.1 回显服务器 1.2.2 回显客户端 &#xff08;二&#xff09;TCP Socket 2.1 核心API概览 2.2 代码示例 2.2.1 回显服务器 2.2.2 回显客户端 &#xff08;三&#xff09;HTTP Client 3…

如何在麒麟操作系统中限制SSH远程登录而不影响FTP

如何在麒麟操作系统中限制SSH远程登录而不影响FTP 1、禁止SSH远程登录1.1 禁止Root用户1.2 禁止特定用户1.3 禁止特定用户组 2、重启SSHD服务3、注意事项 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 在服务器管理中&#xff0c;出于安全…

灵办AI工具(科研学术,代码编程,学习辅导,图书报告)功能介绍

灵办AI最新添加的大模型 小灵助手&#xff1a; 功能&#xff1a;综合各种基础对话场景&#xff0c;提供高效精准的解答。 作用&#xff1a;能够快速响应用户的问题&#xff0c;帮助用户解决日常生活中的疑问&#xff0c;提升用户体验。 科研学术深度解读&#xff1a; 功能&a…

超低能耗 万物互联——光耦助力超低功率WiFi智能连接

随着物联网技术的快速发展&#xff0c;超低功率WiFi设备正逐渐成为智能化生活和工作的重要组成部分。超低功率WiFi是一种针对电池供电设备设计的无线网络技术&#xff0c;旨在降低设备功耗、延长电池寿命&#xff0c;并在需要长时间运行而不需要频繁充电或更换电池的应用中发挥…

el-popover自定义类名添加样式和手动关闭

el-popover自定义类名添加样式和手动关闭 <el-popover popper-class"popver_account" style"padding-right: 0px !important;" ref"popover" placement"bottom" width"260" trigger"click"><div class&…

Java集成开发环境(IDE)之 => “IntelliJ IDEA“ 安装

一、软件介绍 IntelliJ IDEA 是一款由 JetBrains 公司开发的集成开发环境&#xff08;IDE&#xff09;&#xff0c;它主要用于 Java 语言的开发&#xff0c;但同时也支持多种其他编程语言&#xff0c;如 Kotlin、Groovy、Scala、Python、Ruby、PHP、JavaScript、TypeScript 等…

【PCB测试】最常见的PCB测试方法

系列文章目录 1.元件基础 2.电路设计 3.PCB设计 4.元件焊接 5.板子调试 6.程序设计 7.算法学习 8.编写exe 9.检测标准 10.项目举例 11.职业规划 文章目录 一、PCB测试的好处1.发现错误2.降低成本3.节省时间4.减少退货率5.提高安全性 二、PCB测试内容1.孔壁质量2.电镀铜3.清…

uniapp使用高德地图设置marker标记点,后续根据接口数据改变某个marker标记点,动态更新

最近写的一个功能属实把我难倒了,刚开始我请求一次数据获取所有标记点,然后设置到地图上,然后后面根据socket传来的数据对这些标记点实时更新,改变标记点的图片或者文字, 1:第一个想法是直接全量替换,事实证明这样不行,会很卡顿,有明显闪烁感,如果标记点比较少,就十几个可以用…

孩子们的游戏(约瑟夫环问题)

孩子们的游戏 题目描述 每年六一儿童节&#xff0c;牛客都会准备一些小礼物和小游戏去看望孤儿院的孩子们。其中&#xff0c;有个游戏是这样的&#xff1a;首先&#xff0c;让 n 个小朋友们围成一个大圈&#xff0c;小朋友们的编号是0~n-1。然后&#xff0c;随机指定一个数 m…