【读书笔记】知识图谱概述
1、KG定义
1.1 背景知识
人工智能分为三个层次,分别是运算智能,感知智能和认知智能。运算智能是让机器能存会算;感知智能是让机器能听会说、能看会认;认知智能是解决机器能理解会思考的问题。由于知识图谱的数据组织方式是计算机能理解的,认知智能需要知识图谱。
1.2 知识图谱概念
KG(Knowledge Graph/Vault),又称科学知识图谱,用各种不同的图形等可视化技术描述知识资源及其载体,挖掘、分析、构建、绘制和显示知识及它们之间的相互联系。
下面提供两条相对准确的定义以供参考。
定义1(Ehrlinger et al.):A knowledge graph acquires and integrates information into an ontology and applies a reasoner to derive new knowledge. 知识图谱获取信息并将其集成到本体中,并应用推理器来获取新知识。
定义2(Wang et al.):A knowledge graph is a multi-relational graph composed of entities and relations which are regarded as nodes and different types of edges, respectively. 知识图谱是由实体和关系组成的多关系图,实体和关系分别被视为节点和不同类型的边。
KG可以看作图,图由节点和边组成。节点表示 抽象的概念(如人工智能、知识图谱等)或是实体(如一个人、一本书等)。边可以是实体的属性(如姓名、书名)或是实体之间的关系(如朋友、配偶)。
KG的发展经理了从逻辑知识--> 词典--> 知识图的历程,其本质是海量信息无序-->有序-->有用。
典型应用: 维基百科、DBpedia、Yago、清华大学XLORE。
1.3 相关术语
概念:具有同等性质的实体构成的集合,用来表示集合、类别、对象类型、事务的种类等。
与WordNet等早起本体知识构建不同,现有方法多在传统分类法中结合大众分类和机器学习来构建语义网络分类体系。
实体:具有可区分且独立存在的某种事物,实体是KG中的最基本元素。
属性:是对概念和实体外延或者内涵的描述。
属性值:对象、属性的值。
关系:把图中节点映射到布尔值的函数。
内容:作为实体和语义类的解释,用文本或音视频来表达。
从DBpedia可以看出,概念的增长缓慢,但是属性增长很快。
2、KG的表示
KG中的每两个节点和节点之间的连线构成了三元组,三元组是KG的一种通用表示方法。
主要包括两种形式:
1. “实体-关系-实体”,比如 中国-首都-北京
2.“实体-属性-属性值”,比如 北京-人口-2069万人
还包括“is-a ” 和 “subclass-of”两类。
KG由一条条知识组成,每条知识表示为一个SPO(Subject-Predicate-Object,主谓宾三元组)即: 资源-属性-属性值
知识图谱分为模式层和数据层。模式层是数据的模式,是对数据层的提炼。数据层是具体的数据。
举个例子
3、KG的存储与查询
3.1基于RDF结构
RDF(Resource Description FrameWork,资源描述框架),RDF是使用XML语法来表示的数据模型。RDF的功能是用以三元组的形式于描述资源的特性以及资源之间的关系,一种以文本的形式逐行存储三元组数据。
可以利用关系型数据库对知识图谱进行存储。我们可以将图数据用三元组表示,将每一个三元组作为表中的一行记录。
下面是查询生于1850年,死于1934年,创建过公司的人。
采用关系型数据库存储,多跳查询会产生自连接(self-join)操作。
比如A->B为一跳,A->B->C为两跳。 也可以采用水平表的方式进行存储,每一行存储一个主语对应的所有的谓语和宾语。这种存储方式适合于谓词较少的知识图谱。
主语一般只在极少的列上有值,导致存储空间浪费。
并且这种存储方式很难存储多值属性或者一对多关系。
比如函数的三要素是定义域、值域和对应法则,用水平表存储这种多值属性,需要对值拼接后才能存储。
也可以按照实体的类型对知识图谱进行划分,这种方式适合于实体类别较少的情况。
同样地,存储多值属性或一对多关系需要对值进行拼接。
也可以根据谓词对知识图谱进行划分。对每一个谓词创建一张表。这种方式解决了数据存储稀疏性问题,也可以存储多值属性。但是涉及多个谓词的查询会导致多表连接操作。
3.2 基于图数据库
免费开源的图数据库例如Neo4j、JanusGraph、Nebula Graph等。
3.2.1 数据存储
图数据库是以图的方式来保存的,图数据库的优点在于查询和搜索的速度比较快 ,并且在图数据库中实体节点可以保留属性,这就意味着实体可以保留更多的信息,此外图数据库像其他的关系数据库一样有完整的查询语句,支持大多数的图挖掘算法。
目前使用范围最广的图数据库为Neo4j。
属性图(property graph)是图数据库中最常用的数据模型,由节点和边构成。
比如下面这幅图,有三个节点,每个节点表示一个对象。
第一个节点的标签是Employee,这个节点的属性用键值对存储,比如姓名为Amy peters, 出生日期为1984年3月1日,ID为1。
Company 和 Employee之间有边HAS_CEO,边上也可以有属性,比如Company has CEO 开始日期为2008年。
3.2.2 数据查询
下面是一个图数据库查询1号节点认识的节点中,年龄大于30的节点参加过的项目。
其中Gremlin和Cypher是图数据库两种查询语言。Gremlin是过程式(procedural)语言;用户需指明具体的导航步骤,也就是在图上怎么走;它是业界标准查询语言,除了Neo4j外,几乎所有图数据库均支持。Cypher是Neo4j专用语言,它是声明式(declarative)语言;用户只需声明“查什么”, 无需关心“怎么查”。
两种方式的特性对比如下:
4、KG的构建
4.1 构建概述
从数据来源来说,包括从结构化,半结构化和非结构化的海量数据中抽取知识,构建图谱。
按构建者分,可以分为众包构建和自动化构建。众包构建,就是利用许多人进行编辑,构建知识图谱,维基百科,百度百科都是众包构建的。自动化构建,就是利用机器进行自动构建。
按构建方式分,可以分为自上而下的构建和自下而上的构建。
斯坦福大学医学院开发的七步法,用于领域本体构建。七步骤为:
1.确定领域本体的范畴;
2.复用现有的本体;
3.列出领域内的术语;
4.定义类和类的等级关系;
5.定义类的属性;
6.定义属性的限制;属性的限制包括:属性的基数,属性值的类型,以及属性的定义域和值域。
7.填充实例。
知识图谱的构建分为众包构建和自动化构建。由于众包构建涉及技术较少。我们这里主要介绍自动化构建。
这是知识图谱自动化构建的流程。
首先从数据库,百科网站,垂直网站等数据来源获取结构化,半结构化,和非结构化数据。
对非结构化数据和半结构化数据进行实体抽取,关系抽取,属性抽取,并与结构化数据进行整合,形成初步的三元组知识。
然后通过实体消歧得到标准知识表示。
对标准知识构建本体,形成数据模型。
对知识进行推理,发现新的知识。
对知识进行质量评估,从而进行质量控制。
对知识图谱添加新的实体,或者修改旧的实体,对知识图谱进行更新。
对构建好的知识图谱进行存储,方便下游应用。
对知识图谱进行表示学习,将知识图谱离散的符号转化为连续的数值。
对知识图谱进行应用,主要包括内容理解,搜索,推荐,问答等应用。
框图来源: 如何从零构建知识图谱?三分钟带你快速了解知识图谱的架构与逻辑!_哔哩哔哩_bilibili
4.2 KG的数据源
包括结构化数据、半结构化数据及非结构化数据三大种类。
4.3 知识抽取
知识抽取方法包括:实体识别(命名实体识别 NER)、关系抽取(RE)、属性抽取
非结构化的数据包括文本、视频、音频、图片等,需要对其进行知识抽取,才能进一步建立KG。
半结构化数据是介于结构化和非结构化数据之间的一种数据,也需要进行知识抽取。如 互动百科。
结构化数据,KG通常可以直接利用和转换,形成基础数据集,再利用KG补全技术,进一步扩展KG。如 Freebase。
其中属性抽取可以使用python爬虫爬取百度百科、维基百科等网站,操作较为简单,因此命名实体识别(NER)和实体关系抽取(RE)是知识抽取中非常重要的部分,命名实体识别与关系抽取是两个独立的任务,命名实体识别任务是在一个句子中找出具有可描述意义的实体,而关系抽取则是对两个实体的关系进行抽取。命名实体识别是关系抽取的前提,关系抽取是建立在实体识别之后。
4.3.1 实体识别方法
对于非结构化数据,先经过预处理,比如全角转半角等,然后进行分词,词性标注,语法解析,依存分析等NLP工具对文本进行解析,进一步进行实体识别,然后关系抽取,实体消歧,事件抽取等构成三元组知识。
4.3.1.1 使用CRF完成命名实体识别
CRF(Conditional random field,条件随机场)是一种判别式模型 (HMM是生成式模型)。是给定一组输入随机变量条件下另一组输出随机变量的条件概率分布模型,其特点是假设输出随机变量构成马尔可夫随机场。
实体识别一般建模成序列标注任务。输入一个序列,经过词嵌入,和双向LSTM编码,然后用CRF进行解码。其中函数预测的标签是B-Noun, E-Noun, B和E分别表示mention的开始和结束,Noun表示类型。f(x)预测为表达式,其中I-Expr, I表示Inside, Expr表示表达式。
BIOES标签: B-begin,I-inside,O-outside,E-end,S-single
BIO体系:标签采用“BIO”体系,即实体的第一个字为 B_,其余字为 I_,非实体字统一标记为 O。大部分情况下,标签体系越复杂,准确度也越高。
当BERT出现后,由于BERT效果好,常采用BERT来对句子进行编码。
当识别出了文本中的实体,还需要对文本中的实体,两两进行关系分类。一般我们会收集并标注一个关系分类的训练集,来训练一个模型,然后用模型对测试数据进行预测。
比如我们训练好模型后,对测试数据,集合中的元素有多种特性,包括确定性,互异性,无序性进行预测。我们需要预测元素与确定性之间的关系,预测结果为特性。也就是集合有一个特性是确定性。
由于BERT的兴起,常用BERT来做关系分类。
技术实现方法:使用pycrfsuite和hanlp完成基于CRF的命名实体识别
1) 获取语料库:nltk、人民日报、其他公开标注语料
2)特征函数:定义特征函数,这里其实更像是定义特征函数的模板,因为真正的特征函数会根据这个定义的模板去生成,而且一般生成的特征函数数量是相当大的,然后通过训练确定每个特征函数对应的权重。
3)训练模型:接着可以开始创建 Trainer 进行训练,将语料的每个句子转成特征及标签列表,然后设置好 Trainer 的相关参数,并将样本添加到 Trainer 中开始训练。最终会将模型保存到model_path中。
4)预测:创建 Tagger 并加载模型,即可在测试集中选择一个的句子打标签。
5)评估:最后是评估我们的模型总体效果,将测试集中所有句子输入到训练出来的模型,将得到的预测结果与测试集句子对应的标签对比,输出各项指标。
4.3.1.2 基于Bilstm+CRF的命名实体识别
BiLSTM指的是双向LSTM;CRF指的是条件随机场。
1)数据预处理:字向量处理:依据字典与标签字典,将文字与标签分别转成数字。第一行是文本,第二行是标签。
2)模型构建:采用双向LSTM对序列进行处理,将输出结果进行拼接。
3)模型训练与测试。
4)模型验证
4.3.1.3 基于关键词技术的实体抽取
基于TextRank的关键词提取技术:
算法原理:如果一个单词出现在很多单词后面的话,那么说明这个单词比较重要。一个TextRank值很高的单词后面跟着的一个单词,那么这个单词的TextRank值会相应地因此而提高。
4.3.2 实体关系抽取
实体和实体之间存在着语义关系, 当两个实体出现在同一个句子里时, 上下文环境就决定了两个实体间的语义关系。
完整的实体关系包括两方面:关系类型和关系的参数,关系类型说明了该关系是什么关系, 如雇佣关系、 类属关系等; 关系的参数也就是发生关系的实体,如雇佣关系中的雇员和公司。
实体关系抽取问题可以看做一个分类问题。使用有监督(标记学习)、半监督(统计分析)或无监督(聚类方法)等方法进行。实体关系抽取往往关注一个句子内的上下文。
实现技术:基于依存句法分析的开放式中文实体关系抽取方法实现:
Hanlp分词HanLP是一系列模型与算法组成的NLP工具包,由大快搜索主导并完全开源,目标是普及自然语言处理在生产环境中的应用。HanLP具备功能完善、性能高效、架构清晰、语料时新、可自定义的特点。
Hanlp提供的功能包括:
a.中文分词
b.词性标注(pos)
c.命名实体识别(ner)
d.关键词提取
e.自动摘要
f.短语提取
g.拼音转换
h.简繁转换
i.依存句法分析
j.word2vec
hanlp提供了两种依存句法分析的器,默认采用的是基于神经网络的依存句法分析器,另一种为基于最大熵的依存句法分析器。
4.4 知识融合
主要任务是实体消歧和指代消解。
4.4.1 实体消歧的本质在于一个词有很多可能的意思,也就是在不同的上下文中所表达的含义不太一样。实体消歧专门用于解决同名实体产生歧义的问题。
4.4.1.1 基于词典的词义消歧
基于词典的词义消歧方法研究的早期代表工作是Lesk 于1986 的工作。给定某个待消解词及其上下文,该工作的思想是计算语义词典中各个词义的定义与上下文之间的覆盖度,选择覆盖度最大的作为待消解词在其上下文下的正确词义。但由于词典中词义的定义通常比较简洁,这使得与待消解词的上下文得到的覆盖度为0,造成消歧性能不高。
4.4.1.2 有监督词义消歧
有监督的消歧方法使用词义标注语料来建立消歧模型,研究的重点在于特征的表示。常见的上下文特征可以归纳为三个类型:
(1)词汇特征通常指待消解词上下窗口内出现的词及其词性;
(2)句法特征利用待消解词在上下文中的句法关系特征,如动-宾关系、是否带主/宾语、主/宾语组块类型、主/宾语中心词等;
(3)语义特征在句法关系的基础上添加了语义类信息,如主/宾语中心词的语义类,甚至还可以是语义角色标注类信息。
4.4.1.3 无监督和半监督词义消歧
虽然有监督的消歧方法能够取得较好的消歧性能,但需要大量的人工标注语料,费时费力。为了克服对大规模语料的需要,半监督或无监督方法仅需要少量或不需要人工标注语料。一般说来,虽然半监督或无监督方法不需要大量的人工标注数据,但依赖于一个大规模的未标注语料,以及在该语料上的句法分析结果。
目前消歧通常涉及聚类法、空间向量模型、语义模型等
4.4.2 指代消解是为了避免代词指代不清的情况。
4.5 知识推理
基于KG的知识推理旨在识别错误并从现有的数据中推断新结论。通过知识推理,可以导出实体间的新关系并反馈以丰富KG,从而支持高级应用。知识推理的方法包括:
(1)基于符号逻辑的推理——本体推理
(2)基于表运算(Tableaux)及改进的⽅法: FaCT++、 Racer、 Pellet Hermit等
(3)基于Datalog转换的⽅法如KAON、 RDFox等
(4)基于产⽣式规则的算法(如rete): Jena 、 Sesame、 OWLIM等
(5)基于图结构和统计规则挖掘的推理
(6)基于路径排序学习⽅法(PRA, Path ranking Algorithm)
(7)基于关联规则挖掘⽅法(AMIE)
(8)基于知识图谱表示学习的关系推理:
将实体和关系都表示为向量,通过向量之间的计算代替图的遍历和搜索来预测三元组的存在,由于向量的表示已经包含了实体原有的语义信息,计算含有⼀定的推理能⼒。可应⽤于链接预测,基于路径的多度查询等。
(9)基于概率逻辑的方法
概率逻辑学习有时也叫Relational Machine Learning (RML),关注关系的不确定性和复杂性。
通常使用贝叶斯网络或者马尔科夫网络。
4.5 KG的评估
构建好了知识图谱后,我们需要对构建好的知识图谱进行规模和质量的评估。规模一般用知识图谱中有多少个实体,有多少个关系来描述。
质量一般可以用准确率来衡量。由于知识图谱三元组数量多,我们一般抽取若干个三元组,比如500个,对每一个三元组进行真假判断,然后统计准确率。
右表展示了抽取8个三元组,计算准确率的过程。
一般来讲,众包构建的准确率较高,自动化构建的准确率相对较低;领域知识图谱准确率较高,通用知识图谱准确率相对较低。
5. 相关赛事
- 消息理解会议(MUC)
- MUC是由美国DARPA发起,目的在于鼓励和开发信息抽取系统,主要以召回率和精确率来评价信息抽取系统性能的重要指标,一般是基于召回率和精确率来计算法F1值
- 自动内容抽取(ACE)
- 由美国国家标准技术研究所(NIST)组织的评测会议,主要包括实体检测与跟踪、关系检测与表征、事件检测与跟踪,与MUC解决的问题类似,只是对MUC的任务进行融合。
- 知识库填充(KBP)
- 由文本分析会议主办,其目的是开发和评估从非结构化文本中获取知识填充知识库的技术,主要任务包括实体发现与链接、槽填充、事件跟踪和信念与情感分析。始办于 2009 年,是国际上影响力最大、水平最高的知识图谱领域赛事。
- 语义评测(SemEval)
- 由ACL-SIGLEX组织发起,是比较早进行实体消歧的评测任务的机构,目的是增进人们对词义与语义现象的理解,主要包括语义角色标注、情感分析、跨语言语义分析等
6. 开源库
学术研究推动了开源运动,下表列出了常见的几个开源库。
其中,AmpliGraph:用于知识表征学习。
Grakn:用于集成知识图谱与机器学习技术。
Akutan:用于知识图谱存储和查询。
研究界还发布了代码以促进进一步的研究。值得注意的是,有三个有用的工具包,即用于知识图嵌入的scikit-kge和OpenKE,以及用于关系提取的OpenNRE。
--------------------------
参考链接1:https://blog.csdn.net/xs1997/article/details/125061428
参考链接2:知识图谱概述、构建、存储与应用 - 知乎 (zhihu.com)
参考链接3:知乎 - 安全中心https://link.zhihu.com/?target=https%3A//shaoxiongji.github.io/knowledge-graphs/
相关文章:

【读书笔记】知识图谱概述
1、KG定义 1.1 背景知识 人工智能分为三个层次,分别是运算智能,感知智能和认知智能。运算智能是让机器能存会算;感知智能是让机器能听会说、能看会认;认知智能是解决机器能理解会思考的问题。由于知识图谱的数据组织方式是计算机…...

用尾插的思路实现 “合并两个有序链表”
一、题目 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1: 输入:l1 [1,2,4], l2 [1,3,4] 输出:[1,1,2,3,4,4]示例 2: 输入:l1 [], l2 [] 输出&#…...

大数据 - Spark系列《十四》- spark集群部署模式
Spark系列文章: 大数据 - Spark系列《一》- 从Hadoop到Spark:大数据计算引擎的演进-CSDN博客 大数据 - Spark系列《二》- 关于Spark在Idea中的一些常用配置-CSDN博客 大数据 - Spark系列《三》- 加载各种数据源创建RDD-CSDN博客 大数据 - Spark系列《…...

考研C语言复习进阶(2)
目录 1. 字符指针 2. 指针数组 3. 数组指针 3.1 数组指针的定义 3.2 &数组名VS数组名 4. 函数指针 5. 函数指针数组 6. 指向函数指针数组的指针 7. 回调函数 8.三步辗转法 9. 指针和数组笔试题解析 10. 指针笔试题 指针的主题,我们在初级阶段的《指…...

设计模式学习笔记 - 设计原则与思想总结:1.总结回顾面向对象、设计原则、编程规范、重构技巧等知识点
概述 对前面的内容的回顾,温故而知新,包括:面向对象、设计原则、规范与重构三个模块的内容。 1.代码质量评判标准 如何评价代码质量的高低? 代码质量的评价具有很强的主观性,描述代码质量的词汇也有很多,…...

WPF图表库LiveCharts的使用
这个LiveCharts非常考究版本,它有非常多个版本,.net6对应的是LiveChart2 我这里的wpf项目是.net6,所以安装的是这三个,搜索的时候要将按钮“包括愈发行版”打勾 git:https://github.com/beto-rodriguez/LiveCharts2?…...

第十三届蓝桥杯省赛C++ C组《全题目+题解》
填空题一般都是找规律题目,耐下心来慢慢分析即可。 第一题《排列字母》 【问题描述】 小蓝要把一个字符串中的字母按其在字母表中的顺序排列。 例如,LANQIAO 排列后为AAILNOQ。 又如,GOODGOODSTUDYDAYDAYUP 排列后为AADDDDDGGOOOOPSTUUYYY。…...

Linux——线程池
目录 线程池的概念 线程池的优点 线程池的实现 【注意】 线程池的线程安全 日志文件的实现 线程池的概念 线程池也是一种池化技术,可以预先申请一批线程,当我们后续有任务的时候就可以直接用,这本质上是一种空间换时间的策略。 如果有任…...

Linux:搭建ntp服务器
我准备两个centos7服务器 一个为主服务器连接着外网,并且搭建了ntp服务给其他主机同步 另外一个没有连接外网,通过第一台设备去同步时间 首先两个服务器都要安装ntp软件 yum -y install ntp 再把他俩的时间都改成别的 左侧的是主服务器,主…...

unity学习(57)——选择角色界面--删除角色2
1.客户端添加点击按钮所触发的事件,在selectMenu界面中增加myDelete函数,当点击“删除角色”按钮时触发该函数的内容。 public void myDelete() {string message nowPlayer.id;//string m Coding<StringDTO>.encode(message);NetWorkScript.get…...

Flutter:构建美观应用的跨平台方案
🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…...

【深度学习模型移植】用torch普通算子组合替代torch.einsum方法
首先不得不佩服大模型的强大之处,在算法移植过程中遇到einsum算子在ONNX中不支持,因此需要使用普通算子替代。参考TensorRT - 使用torch普通算子组合替代torch.einsum爱因斯坦求和约定算子的一般性方法。可以写出简单的替换方法,但是该方法会…...

鸿蒙 Harmony 初体验
前言 看现在网上传得沸沸扬扬的鸿蒙,打算弄个 hello world 玩一下, 不然就跟不上时代的发展了 环境安装 我的环境 Windows 11 家庭中文版HarmonyOS SDK (API 9)DevEco Studio (3.1.1 Release)Node.js (16.19.1) 开发IDE下载 官方下载链接 配置 nodejs 这里帮…...

Jmeter+ant,ant安装与配置
1.ant含义 ant:Ant翻译过来是蚂蚁的意思,在我们做接口测试的时候,是可以用来做JMeter接口测试生成测试报告的工具 2.ant下载 下载地址:Apache Ant - Ant Manual Distributions download中选择ant 下载安装最新版zip文件 3.…...

【MySQL基础】MySQL基础操作三
文章目录 🍉1.联合查询🥝笛卡尔积 🍉2.内连接🥝查询单个数据🥝查询多个数据 🍉3.外连接🍉4.自连接🍉5.合并查询 🍉1.联合查询 🥝笛卡尔积 实际开发中往往数…...

【K8s】肿么办??Kubernetes Secrets并不是Secret哟!!
【K8s】肿么办??Kubernetes Secrets并不是Secret哟!! 目录 【K8s】肿么办??Kubernetes Secrets并不是Secret哟!!Kubernetes Secrets为什么不认为 Base64 编码是密文?问题出现了以下是几种加密 K8s Secrets 的选项。Bitnami Sealed Secrets 介绍Bitnami Sealed Secrets…...

数星星 刷题笔记 (树状数组)
依题意 要求每个点 x, y 的左下方有多少个星星 又因为 是按照y从小到大 给出的 所以 我们在计算个数的时候是按照y一层层变大来遍历的 因此我们在处理每一个点的时候 只需要看一下 当前的点有多少个点的x值比当前点小即可 树状数组的 操作模板 P3374 【模板】树…...

Windows→Linux,本地同步到服务器
适用背景: 用自己电脑修改代码,使用实验室/公司的服务器炼丹的朋友 优势: 本地 <--> 服务器,实时同步,省去文件传输的步骤 本地改 -> 自动同步到服务器 -> 服务器跑代码 -> 一键同步回本地ÿ…...

Pycharm连接远程服务器Anoconda中的虚拟环境
在配置远程解释器时,踩过一些坑,现在记录一下配置过程: 步骤1: 打开pycharm的File里面的Settings 里面的Project:你的项目名称目录下的Python Interpreter。 步骤二: 点击右上角的“add interpreter”,选择…...

无人机自动返航算法实现与优化
一、引言 随着无人机技术的快速发展,其在航拍、农业、救援等领域的应用越来越广泛。在这些应用中,无人机的自动返航功能显得尤为重要。一旦无人机失去控制或与遥控器失去连接,自动返航算法能够确保无人机安全返回起飞点,避免损失和…...
切面条-蓝桥杯?-Lua 中文代码解题第1题
切面条-蓝桥杯?-Lua 中文代码解题第1题 一根高筋拉面,中间切一刀,可以得到2根面条。 如果先对折1次,中间切一刀,可以得到3根面条。 如果连续对折2次,中间切一刀,可以得到5根面条。 那么…...

WebRTC:真正了解 RTP 和 RTCP
介绍 近年来,通过互联网进行实时通信变得越来越流行,而 WebRTC 已成为通过网络实现实时通信的领先技术之一。WebRTC 使用多种协议,包括实时传输协议 (RTP) 和实时控制协议 (RTCP)。 RTP负责通过网络传输音频和视频数据,而RTCP负责…...

vue实现双向绑定原理深度解析
1. vue双向绑定应用场景 Vue的双向绑定机制主要体现在以下几个方面: 表单输入:在表单输入中,Vue的双向绑定机制非常有用。通过v-model指令,可以将表单元素的值与Vue实例中的数据进行双向绑定,当用户在表单输入框中输入内容时,数据会自动更新,反之,当数据发生变化时,输…...

C语言 —— memeove函数的模拟实现
函数作用:从sourse的位置开始向后复制num个字节到desttintion指向的内存位置,(运用于字符时,遇到\0不会停止),这个函数支持重叠部分的复制,是memcpy函数的改进版本 具体步骤: 1&am…...

<el-tab>样式自定义——一个可以触类旁通的小例子
首先在网页的检查确定想要自定义的部分叫什么 例如: 我想修改的组件是el-tabs__header.is-top 的margin-bottom 则在相应vue文件的<style>里面增加这一属性 其中,::v-deep可以帮助覆盖子组件内部元素的样式。 ::v-deep .el-tabs__header.is-to…...

XDP学习笔记
XDP的使用与eBPF程序分不开,因此要了解学历XDP,须知道什么是eBPF、什么是XDP。 概念 eBPF BPF(Berkeley Packet Filter)是一种灵活且高效的数据包过滤技术,最初由 BSD Unix 中的网络子系统引入;BPF 允许用…...

JavaScript进阶:js的一些学习笔记-4
文章目录 1. 拷贝1. 浅拷贝2. 深拷贝 2. 异常处理 1. 拷贝 这里指的拷贝是指拷贝引用类型的数据(对象) 1. 浅拷贝 拷贝对象:Object.assign() 或者 {…obj} 展开运算符 const obj {name:liuze,age:23 } const o {...obj}; o.age 22; console.log(o); console.…...

【可能是全网最丝滑的LangChain教程】三、快速入门LLMChain
系列文章地址 【可能是全网最丝滑的LangChain教程】一、LangChain介绍 【可能是全网最丝滑的LangChain教程】二、LangChain安装 使用LangChain构建应用 LangChain支持构建应用程序,将外部数据源和计算源连接到LLM。我们将从一个简单的 LLM 链开始,它…...
Oracle Primavera Analytics 是什么,与P6的关系?
前言 Oracle Primavera P6 Analytics 是与P6有关的一个相对较新的模块,Primavera 用户社区在很大程度上尚未对其进行探索。 那么它到底有什么作用呢? 通过了解得知它旨在通过深入了解组织的项目组合绩效,帮助高级管理层对其项目组合做出更好…...

在 Amazon Bedrock 上使用 Anthropic Claude 系统 Prompt
系统 prompt 是定义生成式 AI 模型对用户输入的响应策略的一种好方法。这篇博文将介绍什么是系统 prompt,以及如何在基于 Anthropic Claude 2.x 和 3 的应用中使用系统 prompt。 亚马逊云科技开发者社区为开发者们提供全球的开发技术资源。这里有技术文档、开发案例…...