探索常识性概念图谱:构建智能生活的知识桥梁
目录
一、知识图谱背景介绍
(一)基本背景
(二)与NLP的关系
(三)常识性概念图谱的引入对比
二、常识性概念图谱介绍
(一)常识性概念图谱关系图示例
(二)图谱三类节点
(三)图谱四类关系
Is-a 关系|Part-of 关系|Instance-of 关系|Property-value 关系
同义/上下位关系
三、常识性概念图谱构建
(一)图谱构建整体框架
(二)概念挖掘
原子概念挖掘
复合概念挖掘
(三)概念上下位关系挖掘
概念-Taxonomy间上下位关系
概念-概念间上下位关系
(四)概念属性关系挖掘
基于复合概念挖掘公共属性关系
基于开放属性词挖掘特定属性关系
(五)概念承接关系挖掘
基于共现特征挖掘种子数据
基于种子数据训练深度模型
基于已有的图谱结构进行关系补全
(六)POI/SPU-概念关系建设
四、应用分析
(一)在美团内部的具体应用举例
到综品类词图谱建设
点评搜索引导
到综医美内容打标
(二)业内领域的应用举例
金融领域
医疗领域
零售领域
智能交通领域
阿里巴巴、腾讯
字节跳动
五、简单模拟示例
(一)Neo4j知识图谱数据库查询展示
(二)学习建议建议和思路
六、总结
参考文献、书籍及链接
干货分享,感谢您的阅读!
在当今信息爆炸的时代,知识的获取与应用变得愈加复杂。如何让机器更好地理解人类的常识,以实现更智能的问答系统和服务,已成为人工智能领域的重要挑战。常识性概念图谱的构建为这一问题提供了有效的解决方案。通过系统化地整理和连接人类的常识知识,我们不仅能够提升机器的理解能力,更能为智能生活的各个方面打下坚实的基础。本文将深入探讨常识性概念图谱的构建过程、应用场景及其在智能问答系统中的革命性影响,带领读者一同探索这一引领未来的知识架构。
一、知识图谱背景介绍
(一)基本背景
知识图谱是一种用于表示和管理知识的技术,它将知识组织成图形结构,每个节点代表一个实体,每条边代表实体之间的关系。知识图谱的概念最早由Google在2012年提出,随后得到了学术界和工业界的广泛关注和研究。
知识图谱的背景可以追溯到人工智能的发展历程。早期的人工智能主要基于规则推理系统,人们通过编写大量的规则来让计算机模拟人类的智能。但是,这种方法存在规则复杂、难以维护、泛化能力不足等问题,无法应对复杂的现实场景。
随着互联网技术和数据挖掘技术的不断发展,人们开始关注从大规模的数据中自动发现知识的方法。知识图谱作为一种自动化知识发现和管理的技术,受到了广泛关注。
在知识图谱的发展过程中,谷歌公司的“知识图谱”项目起到了重要的推动作用。该项目的目标是构建一个包含各种实体和关系的大规模知识库,可以帮助人们更好地理解世界和实现更智能的搜索。
除了谷歌,许多知名企业和组织也在积极推进知识图谱的应用和研究,如微软、IBM、阿里巴巴、腾讯、百度等。知识图谱已经被广泛应用于各个领域,包括搜索引擎、智能问答、语义分析、智能推荐、自然语言处理等。
(二)与NLP的关系
知识图谱和自然语言处理(NLP)之间存在密切的关系。自然语言处理是指利用计算机技术处理和理解人类自然语言的能力,包括自然语言的分析、生成、理解和应用等方面。而知识图谱则是为了更好地实现自然语言处理任务而构建的知识库。
具体来说,自然语言处理的任务之一就是语义理解,即让计算机能够理解人类的语言,并从中提取出有意义的信息。知识图谱可以提供给自然语言处理算法必要的背景知识和上下文信息,以便更好地理解和解释自然语言文本中的实体、关系和事件等内容。
例如,自然语言问答系统通常需要从输入的自然语言问句中提取出问题所涉及的实体和关系,才能正确地回答问题。知识图谱可以提供必要的实体和关系信息,帮助问答系统进行更准确和全面的理解。又比如,在智能推荐系统中,知识图谱可以提供用户和商品之间的关系和属性信息,帮助推荐系统更准确地预测用户的偏好和行为。
(三)常识性概念图谱的引入对比
知识图谱、常识性概念图谱和概念图谱都是用于表示和存储知识的技术,它们之间存在某些相似和重叠之处,但又各有侧重和差异。
知识图谱是一个大规模、多模态的知识库,以图形结构的形式存储实体、属性和关系等知识,并通过语义关联对这些知识进行组织和链接。知识图谱主要用于知识的存储、推理、查询和应用等方面,在人工智能、自然语言处理、推荐系统等领域具有广泛的应用。
概念图谱则是一种更为通用的知识表示方法,它可以表示任意领域的概念、实体和关系等,与知识图谱和常识性概念图谱相比更为灵活和自由。概念图谱主要用于知识表示和推理的研究,也可以作为知识图谱和常识性概念图谱的底层技术之一。
常识性概念图谱则是一种特定领域的知识图谱,它主要用于表示人类的日常生活中所涉及的一些基础概念、实体和关系等,如人物、地点、时间、物品、事件等。常识性概念图谱旨在帮助计算机更好地理解和模拟人类的日常生活,为自然语言处理、智能对话、情感分析等应用提供基础支持。
因此,知识图谱、常识性概念图谱和概念图谱之间的关系可以被理解为层次关系。概念图谱是最底层的知识表示方法,知识图谱是在概念图谱的基础上构建的更大规模、更具实际应用价值的知识库,而常识性概念图谱则是知识图谱的一个特定领域的应用,用于表示人类日常生活中的常识知识。
二、常识性概念图谱介绍
常识性概念图谱是一种基于人类常识的知识图谱,它通过构建和维护实体、概念、属性、关系、事件等多维度的知识元素,并将它们以图谱的形式组织起来,以便于计算机理解和推理。
与传统的知识图谱相比,常识性概念图谱更加注重人类常识的表达和应用,包含了更加丰富和细致的知识元素。例如,在一个旅游领域的常识性概念图谱中,除了景点、酒店等实体,还包括了人们出游的目的、方式、注意事项等常识性概念,以及它们之间的属性和关系。
常识性概念图谱的构建需要借助大量的语料库和常识库,同时还需要进行自动化的知识抽取、实体链接、关系抽取等技术,以便快速构建和更新图谱。常识性概念图谱的应用也非常广泛,例如在智能客服、智能搜索、智能推荐、智能问答等领域中,可以大大提高计算机理解和处理自然语言的能力,从而更好地为人类服务。看了很多文章,最后我们还是以MATLAB算法实战应用-【应用案例篇】常识性概念图谱建设以及在美团场景中的应用_matlab实战案例_林聪木的博客-CSDN博客为主要分析来看
(一)常识性概念图谱关系图示例
前面提到“通过构建和维护实体、概念、属性、关系、事件等多维度的知识元素,并将它们以图谱的形式组织起来,以便于计算机理解和推理”总结起来可以用下图美团的知识图谱进行展开分析,
涵盖“是什么”的概念Taxonomy体系结构,“什么样”的概念属性关系,“给什么”的概念承接关系。同时POI(Point of Interesting)、SPU(Standard Product Unit)、团单作为美团场景中的实例,需要和图谱中的概念建立连接。
(二)图谱三类节点
知识图谱中三类节点指的是实体节点、属性节点和关系节点,基于概念分类的节点分类方法通常用于本体论(Ontology)或知识图谱的语义表示,以帮助机器理解和推理。其中,常见的有以下三类节点:
- Taxonomy节点(分类树节点):代表分类树上的节点,每个节点代表一个类别。它是一种层次结构,上层节点代表较为抽象的类别,下层节点代表具体的实体。
- 原子概念节点:代表最基本的概念单元,不能被拆分为更小的概念。原子概念通常表示一种事物的本质属性,是其他概念的基础。例如,在一个动物分类的知识图谱中,狗、猫、鸟等就是原子概念节点。
- 复合概念节点:由多个原子概念节点组合而成的复合概念。它可以表示更复杂的概念和实体,是知识图谱中更高层次的节点。例如,在一个人类分类的知识图谱中,复合概念节点可以是“青年人”、“老年人”、“男性”、“女性”等。
理解一个概念需要合理的知识体系,预定义好的Taxonomy知识体系作为理解的基础,在预定义的体系中分为两类节点:第一类在美团场景中可以作为核心品类出现的,例如,食材、项目、场所;另一类是作为对核心品类限定方式出现的,例如,颜色、方式、风格。这两类的节点的定义都能帮助搜索、推荐等的理解。目前预定义的Taxonomy节点如下图所示:
(三)图谱四类关系
Is-a 关系|Part-of 关系|Instance-of 关系|Property-value 关系
基于概念分类的图谱通常包含以下四类关系:
- Is-a 关系:表示概念之间的上下位关系,如“猫”是“动物”的一种,可以表示为Cat is a type of Animal。
- Part-of 关系:表示一个物体或概念是另一个物体或概念的一部分,如“车轮”是“汽车”的一部分,可以表示为Wheel is part of Car。
- Instance-of 关系:表示一个具体的事物是某个概念的一个实例,如“加菲猫”是“猫”的一个实例,可以表示为Garfield is an instance of Cat。
- Property-value 关系:表示概念与其属性之间的关系,如“加菲猫”的颜色是“橙色”,可以表示为Garfield has the property of Color with value Orange。
这些关系可以用来描述概念之间的语义关联,从而在自然语言处理、知识推理等领域得到广泛应用。以美团的案例为例,可以细化展开为以下四个详细介绍。
同义/上下位关系
语义上的同义/上下位关系,例如脸部补水-syn-面部补水等。定义的Taxonomy体系也是一种上下位的关系,所以归并到同义/上下位关系里。
概念属性关系
典型的CPV(Concept-Property-Value)关系,从各个属性维度来描述和定义概念,例如火锅-口味-不辣,火锅-规格-单人等,示例如下:
概念属性关系包含两类:
预定义概念属性:目前我们预定义典型的概念属性如下图
开放型概念属性:除了我们自己定义的公共的概念属性外,我们还从文本中挖掘一些特定的属性词,补充一些特定的属性词。例如,姿势、主题、舒适度、口碑等。
概念承接关系
这类关系主要建立用户搜索概念和美团承接概念之间的链接,例如踏春-场所-植物园,减压-项目-拳击等。
概念承接关系以「事件」为核心,定义了「场所」、「物品」、「人群」、「时间」、「功效」等能够满足用户需求的一类供给概念。以事件“美白”为例,“美白”作为用户的需求,可以有不三 同的供给概念能够满足,例如美容院、水光针等。目前,定义的几类承接关系如下图所示:
POI/SPU-概念关系
POI作为美团场景中的实例,实例-概念的关系作为知识图谱中最后的一站,常常是比较能发挥知识图谱在业务上价值的地方。在搜索、推荐等业务场景,最终的目的是能够展示出符合用户需求的POI,所以建立POI/SPU-概念的关系是整个美团场景常识性概念图谱重要的一环,也是比较有价值的数据。
三、常识性概念图谱构建
还是以美团的文章为例继续查看对应的流程
(一)图谱构建整体框架
(二)概念挖掘
常识性概念图谱的各种关系都是围绕概念构建,这些概念的挖掘是常识性概念图谱建设的第一环。按照原子概念和复合概念两种类型,分别采取相应的方法进行挖掘。
原子概念挖掘
原子概念候选来自于Query、UGC(User Generated Content)、团单等文本分词后的最小片段,原子概念的判断标准是需要满足流行性、有意义、完整性三个特性的要求。
- 流行性,一个概念应是某个或某些语料内流行度较高的词,该特性主要通过频率类特征度量,如“桌本杀”这个词搜索量很低且UGC语料中频率也很低,不满足流行性要求。
- 有意义,一个概念应是一个有意义的词,该特性主要通过语义特征度量,如“阿猫”、“阿狗”通常只表一个单纯的名称而无其他实际含义。
- 完整性,一个概念应是一个完整的词,该特性主要通过独立检索占比(该词作为Query的搜索量/包含该词的Query的总搜索量)衡量,如“儿童设”是一个错误的分词候选,在UGC中频率较高,但独立检索占比低。
基于原子概念以上的特性,结合人工标注以及规则自动构造的训练数据训练XGBoost分类模型对原子概念是否合理进行判断。
复合概念挖掘
复合概念候选来自于原子概念的组合,由于涉及组合,复合概念的判断比原子概念判断更为复杂。复合概念要求在保证完整语义的同时,在美团站内也要有一定的认知。根据问题的类型,采用Wide&Deep的模型结构,Deep侧负责语义的判断,Wide侧引入站内的信息。
该模型结构有以下两个特点,对复合概念的合理性进行更准确的判断:
- Wide&Deep模型结构:将离散特征与深度模型结合起来判断复合概念是否合理。
- Graph Embedding特征:引入词组搭配间的关联信息,如“食品”可以与“人群”、“烹饪方式”、“品质”等进行搭配。
(三)概念上下位关系挖掘
在获取概念之后,还需要理解一个概念“是什么”,一方面通过人工定义的Taxonomy知识体系中的上下位关系进行理解,另一方面通过概念间的上下位关系进行理解。
概念-Taxonomy间上下位关系
概念-Taxonomy间上下位关系是通过人工定义的知识体系理解一个概念是什么,由于Taxonomy类型是人工定义好的类型,可以把这个问题转化成一个分类问题。同时,一个概念在Taxonomy体系中可能会有多个类型,如“青柠鱼”既是一种“动物”,也属于“食材”的范畴,所以这里最终把这个问题作为一个Entity Typing的任务来处理,将概念及其对应上下文作为模型输入,并将不同Taxonomy类别放在同一空间中进行判断,具体的模型结构如下图所示:
概念-概念间上下位关系
知识体系通过人工定义的类型来理解一个概念是什么,但人工定义的类型始终是有限的,如果上位词不在人工定义的类型中,这样的上下位关系则没办法理解。如可以通过概念-Taxonomy关系理解“西洋乐器”、“乐器”、“二胡”都是一种“物品”,但没办法获取到“西洋乐器”和“乐器”、“二胡”和“乐器”之间的上下位关系。基于以上的问题,对于概念-概念间存在的上下位关系,目前采取如下两种方法进行挖掘。
基于词法规则的方法
主要解决原子概念和复合概念间的上下位关系,利用候选关系对在词法上的包含关系(如西洋乐器-乐器)挖掘上下位关系。
基于上下文判断的方法
词法规则可以解决在词法上存在包含关系的上下位关系对的判断。对于不存在词法上的包含关系的上下位关系对,如“二胡-乐器”,首先需要进行上下位关系发现,抽取出“二胡-乐器”这样的关系候选,再进行上下位关系判断,判断“二胡-乐器”是一个合理的上下位关系对。考虑到人在解释一个对象时会对这个对象的类型进行相关介绍,如在对“二胡”这个概念进行解释时会提到“二胡是一种传统乐器”,从这样的解释性文本中,既可以将“二胡-乐器”这样的关系候选对抽取出来,也能同时实现这个关系候选对是否合理的判断。这里在上下位关系挖掘上分为候选关系描述抽取以及上下位关系分类两部分:
- 候选关系描述抽取:两个概念从属于相同的Taxonomy类型是一个候选概念对是上下位关系对的必要条件,如“二胡”和“乐器”都属于Taxonomy体系中定义的“物品”,根据概念-Taxonomy上下位关系的结果,对于待挖掘上下位关系的概念,找到跟它Taxonomy类型一致的候选概念组成候选关系对,然后在文本中根据候选关系对的共现筛选出用作上下位关系分类的候选关系描述句。
- 上下位关系分类:在获取到候选关系描述句后,需要结合上下文对上下位关系是否合理进行判断,这里将两个概念在文中的起始位置和终止位置用特殊标记标记出来,并以两个概念在文中起始位置标记处的向量拼接起来作为两者关系的表示,根据这个表示对上下位关系进行分类,向量表示使用BERT输出的结果,详细的模型结构如下图所示:
在训练数据构造上,由于上下位关系表述的句子非常稀疏,大量共现的句子并没有明确的表示出候选关系对是否具有上下位关系,利用已有上下位关系采取远程监督方式进行训练数据构建不可行,所以直接使用人工标注的训练集对模型进行训练。由于人工标注的数量比较有限,量级在千级别,这里结合Google的半监督学习算法UDA(Unsupervised Data Augmentation)对模型效果进行提升,最终Precision可以达到90%+,详细指标如下:
(四)概念属性关系挖掘
概念含有的属性可以按照属性是否通用划分为公共属性和开放属性。公共属性是由人工定义的、大多数概念都含有的属性,例如价位、风格、品质等。开放属性指某些特定的概念才含有的属性,例如,“植发”、“美睫”和“剧本杀”分别含有开放属性“密度”、“翘度”和“逻辑”。开放属性的数量远远多于公共属性。针对这两种属性关系,我们分别采用以下两种方式进行挖掘。
基于复合概念挖掘公共属性关系
由于公共属性的通用性,公共属性关系(CPV)中的Value通常和Concept以复合概念的形式组合出现,例如,平价商场、日式料理、红色电影高清。我们将关系挖掘任务转化为依存分析和细粒度NER任务(可参考《美团搜索中NER技术的探索与实践》一文),依存分析识别出复合概念中的核心实体和修饰成分,细粒度NER判断出具体属性值。例如,给定复合概念「红色电影高清」,依存分析识别出「电影」这个核心概念,「红色」、「高清」是「电影」的属性,细粒度NER预测出属性值分别为「风格(Style)」、「品质评价(高清)」。
依存分析和细粒度NER有可以互相利用的信息,例如“毕业公仔”,「时间(Time)」和「产品(Product))」的实体类型,与「公仔」是核心词的依存信息,可以相互促进训练,因此将两个任务联合学习。但是由于两个任务之间的关联程度并不明确,存在较大噪声,使用Meta-LSTM,将Feature-Level的联合学习优化为Function-Level的联合学习,将硬共享变为动态共享,降低两个任务之间噪声影响。
模型的整体架构如下所示,目前,概念修饰关系整体准确率在85%左右:
基于开放属性词挖掘特定属性关系
开放属性词和属性值的挖掘
开放属性关系需要挖掘不同概念特有的属性和属性值,它的难点在于开放属性和开放属性值的识别。通过观察数据发现,一些通用的属性值(例如:好、坏、高、低、多、少),通常和属性搭配出现(例如:环境好、温度高、人流量大)。所以我们采取一种基于模板的Bootstrapping方法自动从用户评论中挖掘属性和属性值,挖掘流程如下:
在挖掘了开放属性词和属性值之后,开放属性关系的挖掘拆分为「概念-属性」二元组的挖掘和「概念-属性-属性值」三元组的挖掘。
概念-属性的挖掘
「概念-属性」二元组的挖掘,即判断概念Concept是否含有属性Property。挖掘步骤如下:
- 根据概念和属性在UGC中的共现特征,利用TFIDF变种算法挖掘概念对应的典型属性作为候选。
- 将候选概念属性构造为简单的自然表述句,利用通顺度语言模型判断句子的通顺度,保留通顺度高的概念属性。
概念-属性-属性值的挖掘
在得到「概念-属性」二元组后,挖掘对应属性值的步骤如下:
- 种子挖掘。基于共现特征和语言模型从UGC中挖掘种子三元组。
- 模板挖掘。利用种子三元组从UGC中构建合适的模板(例如,“水温是否合适,是选择游泳馆的重要标准。”)。
- 关系生成。利用种子三元组填充模板,训练掩码语言模型用于关系生成。
目前,开放领域的概念属性关系准确率在80%左右。
(五)概念承接关系挖掘
概念承接关系是建立用户搜索概念和美团承接概念之间的关联。例如,当用户搜索“踏青”时,真正的意图是希望寻找“适合踏青的地方”,因此平台通过“郊野公园”、“植物园”等概念进行承接。关系的挖掘需要从0到1进行,所以整个概念承接关系挖掘根据不同阶段的挖掘重点设计了不同的挖掘算法,可以分为三个阶段:①初期的种子挖掘;②中期的深度判别模型挖掘;③后期的关系补全。详细介绍如下:
基于共现特征挖掘种子数据
为了解决关系抽取任务中的冷启动问题,业界通常采用Bootstrapping的方法,通过人工设定的少量种子和模板,自动从语料中扩充数据。然而,Bootstrapping方法不仅受限于模板的质量,而且应用于美团的场景中有着天然缺陷。美团语料的主要来源是用户评论,而用户评论的表述十分口语化及多样化,很难设计通用而且有效的模板。因此,我们抛弃基于模板的方法,而是根据实体间的共现特征以及类目特征,构建了一个三元对比学习网络,自动从非结构化的文本中挖掘实体关系之间潜在的相关性信息。
具体来说,我们观察到不同商户类目下用户评论中实体的分布差异较大。例如,美食类目下的UGC经常涉及到“聚餐”、“点菜”、“餐厅”;健身类目下的UGC经常涉及到“减肥”、“私教”、“健身房”;而“装修”、“大厅”等通用实体在各个类目下都会出现。因此,我们构建了三元对比学习网络,使得同类目下的用户评论表示靠近,不同类目的用户评论表示远离。与Word2Vec等预训练词向量系统类似,通过该对比学习策略得到的词向量层天然蕴含丰富的关系信息。在预测时,对于任意的用户搜索概念,可以通过计算其与所有承接概念之间的语义相似度,辅以搜索业务上的统计特征,得到一批高质量的种子数据。
基于种子数据训练深度模型
预训练语言模型近两年来在NLP领域取得了很大的进展,基于大型的预训练模型微调下游任务,是NLP领域非常流行的做法。因此,在关系挖掘中期,我们采用基于BERT的关系判别模型(参考《美团BERT的探索和实践》一文),利用BERT预训练时学到的大量语言本身的知识来帮助关系抽取任务。
模型结构如下图所示。首先,根据实体间的共现特征得到候选实体对,召回包含候选实体对的用户评论;然后,沿用MTB论文中的实体标记方法,在两个实体的开始位置和结束位置分别插入特殊的标志符号,经过BERT建模之后,将两个实体开始位置的特殊符号拼接起来作为关系表示;最后,将关系表示输入Softmax层判断实体间是否含有关系。
基于已有的图谱结构进行关系补全
通过上述两个阶段,已经从非结构化的文本信息中构建出了一个初具规模的概念承接关系的图谱。但是由于语义模型的局限性,当前图谱中存在大量的三元组缺失。为了进一步丰富概念图谱,补全缺失的关系信息,我们应用知识图谱链接预测中的TransE算法以及图神经网络等技术,对已有的概念图谱进行补全。
为了充分利用已知图谱的结构信息,我们采用基于关系的图注意力神经网络(RGAT,Relational Graph Attention Network)来建模图结构信息。RGAT利用关系注意力机制,克服了传统GCN、GAT无法建模边类型的缺陷,更适用于建模概念图谱此类异构网络。在利用RGAT得到实体稠密嵌入之后,我们使用TransE作为损失函数。TransE将三元组(h,r,t)中的r视为从h到t的翻译向量,并约定h+r≈t。该方法被广泛适用于知识图谱补全任务当中,显示出极强的鲁棒性和可拓展性。
具体细节如下图所示,RGAT中每层结点的特征由邻居结点特征的均值以及邻边特征的均值加权拼接而成,通过关系注意力机制,不同的结点和边具有不同的权重系数。在得到最后一层的结点和边特征后,我们利用TransE作为训练目标,对训练集中的每对三元组(h,r,t),最小化||h+r=t||。在预测时,对于每个头实体和每种关系,图谱所有结点作为候选尾实体与其计算距离,得到最终的尾实体。目前概念承接关系整体准确率90%左右。
(六)POI/SPU-概念关系建设
建立图谱概念和美团实例之间的关联,会利用到POI/SPU名称、类目、用户评论等多个维度的信息。建立关联的难点在于如何从多样化的信息中获取与图谱概念相关的信息。因此,我们通过同义词召回实例下所有与概念语义相关的子句,然后利用判别模型判断概念与子句的关联程度。具体流程如下:
- 同义词聚类。对于待打标的概念,根据图谱同义词数据,获取概念的多种表述。
- 候选子句生成。根据同义词聚类的结果,从商户名称、团单名称、用户评论等多个来源中召回候选子句。
- 判别模型。利用概念-文本关联判别模型(如下图所示)判断概念和子句是否匹配。
- 打标结果。调整阈值,得到最终的判别结果。
四、应用分析
(一)在美团内部的具体应用举例
到综品类词图谱建设
美团到综业务涵盖知识领域较广,包含亲子、教育、医美、休闲娱乐等,同时每个领域都包含更多小的子领域,所以针对不同的领域建设领域内的知识图谱,能够辅助做好搜索召回、筛选、推荐等业务。
在常识性概念图谱中除了常识性概念数据,同时也包含美团场景数据,以及基础算法能力的沉淀,因此可以借助常识性图谱能力,帮助建设到综品类词的图谱数据。
借助常识性图谱,补充欠缺的品类词数据,构建合理的品类词图谱,帮助通过搜索改写,POI打标等方式提升搜索召回。目前在教育领域,图谱规模从起初的1000+节点扩展到2000+,同时同义词从千级别扩展到2万+,取得了不错的效果。
品类词图谱建设流程如下图所示:
点评搜索引导
点评搜索SUG推荐,在引导用户认知的同时帮助减少用户完成搜索的时间,提升搜索效率。所以在SUG推荐上需要聚焦两个方面的目标:①帮助丰富用户的认知,从对点评的POI、类目搜索增加自然文本搜索的认知;②精细化用户搜索需求,当用户在搜索一些比较泛的品类词时,帮助细化用户的搜索需求。
在常识性概念图谱中,建立了很丰富的概念以及对应属性及其属性值的关系,通过一个相对比较泛的Query,可以生成对应细化的Query。例如蛋糕,可以通过口味这个属性,产出草莓蛋糕、芝士蛋糕,通过规格这个属性,产出6寸蛋糕、袖珍蛋糕等等。
搜索引导词Query产出示例如下图所示:
到综医美内容打标
在医美内容展示上,用户通常会对某一特定的医美服务内容感兴趣,所以在产品形态上会提供一些不同的服务标签,帮助用户筛选精确的医美内容,精准触达用户需求。但是在标签和医美内容进行关联时,关联错误较多,用户筛选后经常看到不符合自己需求的内容。提升打标的准确率能够帮助用户更聚焦自己的需求。
借助图谱的概念-POI打标能力和概念-UGC的打标关系,提升标签-内容的准确率。通过图谱能力打标,在准确率和召回率上均有明显提升。
- 准确率:通过概念-内容打标算法,相比于关键词匹配,准确率从51%提升到91%。
- 召回率:通过概念同义挖掘,召回率从77%提升到91%。
(二)业内领域的应用举例
金融领域
在金融领域,常识性概念图谱可以应用于风险控制、客户服务、智能投顾等场景。例如,可以构建一个金融常识性概念图谱,包含与金融领域相关的实体、属性和关系,如银行、金融产品、市场、投资等。然后,可以利用这个概念图谱,提供风险控制模型的支持,进行风险评估和风险管理;通过智能投顾模型,根据客户的风险偏好和投资目标,智能推荐最适合的投资方案。
医疗领域
在医疗领域,常识性概念图谱可以应用于疾病诊断、药物研发、医疗智能问答等场景。例如,可以构建一个医疗常识性概念图谱,包含与疾病、药物、症状、治疗方法等相关的实体、属性和关系。然后,可以利用这个概念图谱,进行疾病诊断和药物研发,帮助医生更快、更准确地诊断疾病,同时也可以辅助药物研发团队进行药物研发;通过医疗智能问答模型,回答患者关于症状、治疗方法等方面的问题。
零售领域
在零售领域,常识性概念图谱可以应用于商品推荐、用户画像、营销策略等场景。例如,可以构建一个零售常识性概念图谱,包含与商品、用户、商店、品牌等相关的实体、属性和关系。然后,可以利用这个概念图谱,提供个性化商品推荐服务,帮助用户更快、更准确地找到自己喜欢的商品;通过用户画像模型,了解用户的购买行为和偏好,优化营销策略和促销活动。
智能交通领域
在智能交通领域,常识性概念图谱可以应用于交通流量预测、路径规划、智能导航等方面。例如,可以构建一个常识性概念图谱,包含各种交通实体、道路、交通标识、行驶规则等。然后,可以利用这个概念图谱来进行交通流量预测,提供更准确的路径规划和智能导航服务,以及辅助交通管理部门制定更科学的交通管理策略。
阿里巴巴、腾讯
利用常识性概念图谱来构建智能客服,提高客户服务的效率和质量。常识性概念图谱可以帮助机器理解自然语言中的指代、歧义等问题,更准确地回答用户的问题,同时也可以帮助机器学习如何与人类进行自然交互。
字节跳动
字节跳动利用常识性概念图谱来构建智能搜索和智能推荐系统。常识性概念图谱可以帮助机器理解用户搜索和浏览行为中的含义和目的,从而更好地推荐符合用户兴趣和需求的内容和产品。同时,常识性概念图谱还可以辅助机器更好地处理多义词和同义词等问题,提高搜索和推荐的准确性和覆盖率。
五、简单模拟示例
(一)Neo4j知识图谱数据库查询展示
使用Java语言连接Neo4j知识图谱数据库,并执行Cypher查询语句的示例代码
package org.zyf.javabasic.test;/*** @author yanfengzhang* @description* @date 2022/1/3 23:18*/
public class Neo4jExample {public static void main(String[] args) {// 连接到Neo4j数据库String uri = "bolt://localhost:7687";String user = "neo4j";String password = "123456";Driver driver = GraphDatabase.driver(uri, AuthTokens.basic(user, password));Session session = driver.session();// 定义查询语句,查找“苹果”的描述String query = "MATCH (c:Concept{name:'苹果'})-[:HasDescription]->(d:Description) RETURN d.content";// 执行查询语句,返回结果StatementResult result = session.run(query);// 输出查询结果while (result.hasNext()) {Record record = result.next();String content = record.get("d.content").asString();System.out.println(content);}// 关闭数据库连接session.close();driver.close();}
}
这段代码使用了Neo4j官方提供的Java驱动程序,连接到一个Neo4j数据库,然后执行了一个Cypher查询语句,查找了知识图谱中“苹果”概念的描述,最后输出查询结果。
(二)学习建议建议和思路
- 学习常识性知识图谱的构建方法和知识表示模型:了解常识性知识图谱的构建方法和知识表示模型,可以帮助您理解常识性概念图谱的内部结构和知识组织方式。相关的论文和研究报告可以帮助您深入了解这些知识。
- 探索常识性知识图谱的应用场景:常识性知识图谱可以应用于自然语言处理、智能问答、知识图谱推理和智能对话等领域。您可以根据自己的兴趣和专业背景,选择相应的应用场景进行深入学习和研究。
- 学习常识性知识图谱的应用技术和工具:常识性知识图谱的应用技术和工具包括知识图谱数据库、知识图谱查询语言、知识图谱可视化工具和自然语言处理工具等。掌握这些技术和工具,可以帮助您更加高效地进行常识性概念图谱的应用开发和实践。
- 参与相关的开源社区和项目:许多开源社区和项目已经开始使用常识性知识图谱进行应用开发和实践,您可以通过参与这些社区和项目,获取更多的经验和知识,并与同行进行交流和合作。
- 实践和应用常识性知识图谱:最后,通过实践和应用常识性知识图谱,您可以进一步深入了解常识性概念图谱的应用价值和技术挑战,并掌握更多的实际应用经验。可以选择一些开源的常识性知识图谱项目进行实践,或者参加一些相关的实战培训和竞赛,提升自己的实践能力和应用水平。
六、总结
常识性概念图谱的构建不仅是人工智能研究中的一项技术创新,更是推动智能问答系统发展的关键因素。通过对人类常识的系统化整理和结构化表示,我们能够使机器更好地理解并应用这些知识,从而实现更准确、更智能的问答和决策支持。本文探讨了概念图谱的构建过程、应用场景及其在智能问答系统中的实际效果,展示了常识性知识对提升机器智能的重要性。展望未来,随着技术的不断进步和数据资源的日益丰富,常识性概念图谱将在更多领域发挥更大作用,推动智能化服务向更高水平发展。我们期待这一领域的进一步探索,期待智能问答系统在日常生活中的更广泛应用,为人类社会带来更多便利与可能。
参考文献、书籍及链接
- 阿里巴巴:《阿里大数据科学家王斌:常识性概念图谱与自然语言理解》链接:https://www.infoq.cn/article/2xcwnnybpjmml7zqxrlt
- MATLAB算法实战应用-【应用案例篇】常识性概念图谱建设以及在美团场景中的应用_matlab实战案例_林聪木的博客-CSDN博客
- 知识图谱构建全流程_知识图谱构建过程_曾小健量化博士Dr的博客-CSDN博客
- 字节跳动:《字节跳动技术专家分享:基于图谱的智能搜索和推荐系统》https://www.infoq.cn/article/Cfn6Y3bgqEPU6-krGMQh
- 《知识图谱(Knowledge Graph)之美团应用实践》:介绍了美团在知识图谱方面的应用实践,包括知识图谱的构建、应用场景、技术架构等方面。
- 《知识图谱(Knowledge Graph)在阿里的实践》:介绍了阿里在知识图谱方面的应用实践,包括知识图谱的构建、应用场景、技术架构等方面。
- 《腾讯知识图谱的应用实践》:介绍了腾讯在知识图谱方面的应用实践,包括知识图谱的构建、应用场景、技术架构等方面。
- 知识图谱在企业智能化中的应用:本文介绍了知识图谱在企业智能化中的应用,并以企业知识管理、智能问答系统为例,详细阐述了知识图谱的应用流程、技术架构和实现方法。
- 如何用知识图谱助力企业数字化转型:本文介绍了知识图谱在企业数字化转型中的应用,包括企业数据整合、知识管理、智能问答系统等方面,并提出了如何选择知识图谱技术供应商和技术方案的建议。
- 智能客服如何用上知识图谱,降低服务成本,提升用户体验:本文介绍了知识图谱在智能客服领域的应用,包括知识库构建、语义理解、智能问答等方面,并提出了如何应对实际场景中的挑战和优化知识图谱的方法。
相关文章:
探索常识性概念图谱:构建智能生活的知识桥梁
目录 一、知识图谱背景介绍 (一)基本背景 (二)与NLP的关系 (三)常识性概念图谱的引入对比 二、常识性概念图谱介绍 (一)常识性概念图谱关系图示例 (二)…...
人人都是音乐家?腾讯开源音乐生成大模型SongGeneration
目录 前言 一、SongGeneration 带来了什么? 1.1 文本控制与风格跟随:你的想法,AI 精准实现 1.2 多轨生成:从“成品”到“半成品”的巨大飞跃 1.3 开源:推倒“高墙”,共建生态 二、3B 参数如何媲美商业…...
一,python语法教程.内置API
一,字符串相关API string.strip([chars])方法:移除字符串开头和结尾的空白字符(如空格、制表符、换行符等),它不会修改原始字符串,而是返回一个新的处理后的字符串 chars(可选)&…...
python中学物理实验模拟:凸透镜成像和凹透镜成像
python中学物理实验模拟:凸透镜成像和凹透镜成像 凸透镜成像 凸透镜是指中间厚、边缘薄的透镜。它对光线有会聚作用,即光线通过凸透镜后会向主光轴方向偏折。 成像原理 基于光的折射,平行于主光轴的光线经凸透镜折射后会聚于焦点ÿ…...
【AGI】突破感知-决策边界:VLA-具身智能2.0
突破感知-决策边界:VLA-具身智能2.0 (一)技术架构核心(二)OpenVLA:开源先锋与性能标杆(三)应用场景:从实验室走向真实世界(四)挑战与未来方向&…...
2D曲线点云平滑去噪
2D曲线点云,含许多噪声,采用类似移动最小二乘的方法(MLS)分段拟合抛物线并投影至抛物线,进行点云平滑去噪。 更通俗的说法是让有一定宽度的曲线点云,变成一条细曲线上的点。 分两种情况进行讨论: 1&#…...
靶场(二十一)---小白心得靶场体会---DVR4
先看端口,看到了一个dvr的服务,老规矩只要有服务就先去看看 PORT STATE SERVICE VERSION 22/tcp open ssh Bitvise WinSSHD 8.48 (FlowSsh 8.48; protocol 2.0; non-commercial use) | ssh-hostkey: | 3072 21:25:f0:53:b4…...
Qt + C++ 入门2(界面的知识点)
补充前面没有说到的一点就是,qt的页面你可以用qt自带的也就是前面所说的自动生成.UI文件生成前端所谓的界面,然后往里面拖控件就可以了,这个UI界面非常的适合用于新手,以及某些软件少量的界面应用 。但是有一个难点就是后期这个UI…...
计算机网络第九章——数据链路层《流量控制和可靠传输》
一、回顾概念 前面上一章讲了数据链路层的《差错控制》,那么回顾一下差错控制和可靠传输的区别: 差错控制:发现一个帧里的【位错(比特错)】 检错(奇偶校验码、CRC循环冗余校验码):接…...
Zephyr 调试实用指南:日志系统、Shell CLI 与 GDB 全面解析
本文深入讲解 Zephyr 的调试利器,包括统一日志系统(logging subsystem)、内置命令行(Shell CLI)、与 GDB 调试集成方法,帮助开发者快速定位问题、分析运行时行为,实现高效开发与排障。 一、日志…...
【知识图谱提取】【阶段总结】【LLM4KGC】LLM4KGC项目提取知识图谱推理部分
文章目录 前言LLM4KGC的三个部分显卡使用效果前言 之前在学习基于大模型的知识图谱提取,就找到了LLM4KGC这个项目: 项目地址: https://github.com/ChristopheCruz/LLM4KGC/ 总体来说,这个项目没有什么比较高深的idea,年份也比较古老,但确实挺适合入手的。主要是绝对简…...
基于YOLO的智能车辆检测与记录系统
基于YOLO的智能车辆检测与记录系统 摘要 本报告总结了智能车辆检测系统的开发工作,主要包括车辆数据标注、YOLO模型训练及QT交互系统搭建三部分。通过使用专业标注工具完成车辆目标数据集的标注与预处理,基于YOLO模型构建车辆检测算法并优化训练流程&a…...
5.2 Qt Creator 使用FFmpeg库
一、目录结构 ├─3rdparty # 第三方依赖库 │ └─ffmpeg-4.4.3 # ffmpeg库 │ ├─mingw # 用MinGW64编译的库 │ │ ├─bin │ │ ├─include │ │ └─lib │ └─msvc # 用MSVC编译的库 │ ├─bin │ …...
C++基础练习 sort函数,用于排序函数
题目: https://acm.hdu.edu.cn/showproblem.php?pid2039 解答: #include <iostream> #include <cmath> #include <algorithm> using namespace std;double a[3]; int main(){int n;cin>>n;while(n--){cin>>a[0]>>…...
【Docker 08】Compose - 容器编排
🌈 一、Docker Compose 介绍 ⭐ 1. Docker Compose 是什么 Docker Compose 是由 Docker 官方提供的一个用于定义和运行多容器应用的工具,它让用户可以通过一个 YAML 文件(通常是 docker-compose.yml)来配置应用所需要的服务&…...
docker执行yum报错Could not resolve host: mirrorlist.centos.org
解决办法: -- 依次执行以下命令cd /etc/yum.repos.d/sed -i s|#baseurlhttp://mirror.centos.org|baseurlhttp://vault.centos.org|g /etc/yum.repos.d/CentOS-*sed -i s/mirrorlist/#mirrorlist/g /etc/yum.repos.d/CentOS-*yum update -yecho "export LC_ALL…...
信贷域——信贷授信业务
摘要 本文详细介绍了信贷授信业务,包括其核心目标、典型流程、不同机构授信流程的对比、授信业务的其他类型以及授信模块的技术实现。信贷授信是金融机构在放贷前对客户信用额度的评估与审批流程,旨在控制风险、合理设定额度和期限、确保合规࿰…...
python的校园兼职系统
目录 技术栈介绍具体实现截图系统设计研究方法:设计步骤设计流程核心代码部分展示研究方法详细视频演示试验方案论文大纲源码获取/详细视频演示 技术栈介绍 Django-SpringBoot-php-Node.js-flask 本课题的研究方法和研究步骤基本合理,难度适中…...
深度剖析 PACK_SESSIONID 实现原理与安全突破机制
🌐 深度剖析 PACK_SESSIONID 实现原理与安全突破机制 🖼️ 1. 完整数据处理流程 #mermaid-svg-TW7jVIcz81hCZVS9 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-TW7jVIcz81hCZVS9 .error-ico…...
从0开始学习计算机视觉--Day02--数据驱动
上次我们在课程里了解到,亚马逊网站在当时构建了一个在那时候最大的供AI训练的数据集,为了推广这个测试,他们举办了比赛邀请了许多的参赛者,识别图片的标准是输出的类别中只要在前面五个里包含了正确答案就算识别成功。在这个过程…...
【LeetCode#第198题】打家劫舍(一维dp)
198. 打家劫舍 - 力扣(LeetCode) 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入&#…...
stm32串口(uart)2转发到串口(uart)3实现
今天博主在用kelil5写stm32的程序时遇到了一个全局变量因为在中断和任务切换时没有加 volatile 修饰,导致任务检测不到标志位变化,无法实现效果的问题。 全部代码: /* USER CODE BEGIN Header */ /***************************************…...
数据结构——函数填空题
链队出队入队 入队:新指针p赋给队尾的下一个,再赋给队尾 出队:队首指针赋给p,后移 p的下一个赋给队首指向的下一个 若队尾p,则证明首尾相连为1个 字符串匹配算法 二叉树 统计二叉树度为1的节点 树T为空࿰…...
什么是跨域问题?后端如何解决跨域问题?
跨域问题是指浏览器为了安全,对不同域(包含不同协议、不同端口或不同主机名)的请求进行限制,从而导致请求无法正常访问后端接口。 跨域问题的产生源于浏览器的同源策略(Same-Origin Policy),这…...
使用ccs生成bin
CCS12.6 编译生成BIN文件正确方法_ccs生成bin文件-CSDN博客...
Python 邻接表详细实现指南
邻接表是图数据结构的一种高效表示方法,特别适合表示稀疏图。下面我将用 Python 详细讲解邻接表的多种实现方式、操作方法和实际应用。 一、邻接表基础概念 邻接表的核心思想是为图中的每个顶点维护一个列表,存储与该顶点直接相连的所有邻接顶点。 邻…...
FVISION 未来视界工作室:AI驱动的创新与智能外包平台
大家好,今天给大家介绍一个非常有意思的AI创新平台——FVISION 未来视界工作室。如果你正在寻找高效、智能、前沿的数字化工具和服务,这里一定有你想要的答案! 🌟 平台简介 FVISION 未来视界工作室专注于AI驱动的创新应用开发&am…...
领域驱动设计(DDD)【3】之事件风暴
文章目录 说明一 事件风暴理论知识1.1 事件风暴的核心目标1.2事件风暴的关键步骤1.2.1 准备工作1.2.2 核心流程1.2.3 事件风暴的输出 1.3 事件风暴的优势1.4 常见问题Q1:事件风暴适合所有项目吗?Q2:事件风暴后如何落地?Q3…...
3.10 坐标导航
1.编写代码 新建文件nav_clienr.cpp编写代码 #include<ros/ros.h> #include<move_base_msgs/MoveBaseAction.h> #include<actionlib/client/simple_action_client.h>typedef actionlib::SimpleActionClient<move_base_msgs::MoveBaseAction> MoveBas…...
TensorFlow 安装与 GPU 驱动兼容(h800)
环境说明TensorFlow 安装与 GPU 驱动兼容CUDA/H800 特殊注意事项PyCharm 和终端环境变量设置方法测试 GPU 是否可用的 Python 脚本 # 使用 TensorFlow 2.13 在 NVIDIA H800 上启用 GPU 加速完整指南在使用 TensorFlow 进行深度学习训练时,充分利用 GPU 能力至关重要…...
WPF调试三种工具介绍:Live Visual Tree、Live Property Explorer与Snoop
WPF调试工具详解:Live Visual Tree、Live Property Explorer与Snoop 1. Live Visual Tree (实时可视化树) 简介 Live Visual Tree是Visual Studio内置的WPF调试工具,允许开发者在应用程序运行时检查可视化树结构,查看控件的层次关系及其状态。…...
用OBS Studio录制WAV音频,玩转语音克隆和文本转语音!
言简意赅的讲解OBS Studio解决的痛点 随着AI技术的快速发展,语音克隆与文本生成语音技术越来越受欢迎。无论你想要制作个人虚拟主播,还是给自媒体视频配音,拥有高质量的原始音频都是关键。本文详细教你使用免费且功能强大的软件——OBS Stud…...
5.3 VSCode使用FFmpeg库
一、VSCMake 1.1 使用ffmpeg动态库 项目目录结构: ./ ├── 3rdparty # 第三方依赖库 │ └── ffmpeg_4.4.1 │ ├── include # 头文件 │ ├── lib # 静态库库 │ └── share ├── build # 编译目…...
【Datawhale组队学习202506】零基础学爬虫 02 数据解析与提取
系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 文章目录 系列文章目录前言2.1 概述2.2 re 解析2.3 bs4 解析2.4 xpath 解析总结 前言 Datawhale是一个专注于…...
[muduo] ThreadPool | TcpClient | 异步任务 | 通信测试
第九章:线程池(ThreadPool) 在第八章《TcpServer》中,我们了解到muduo::net::TcpServer通过EventLoop线程池处理入站连接。 这些EventLoop线程主要负责网络I/O:套接字读写和定时器处理,由Poller和Channel…...
探索 Vue 替代方案
Vue vs React vs Angular 在快速迭代的前端世界,Vue、React和Angular三大框架的竞争从未停止。2025年的今天,它们各自进化出了怎样的面貌?让我们深入剖析它们的核心差异,助你做出明智的技术选型。 Vue.js 完整的基于组件的UI框…...
大模型的开发应用(十二):RAG 与 LlamaIndex基础
这里写目录标题 1 LlamaIndex 简要介绍1.1 核心价值1.2 核心组件1.3 核心流程1.4 为什么要用 LlamaIndex?1.5 典型应用场景1.6 与类似工具对比1.7 安装1.8 学习资源 2 文档解析与 Document 对象2.1 示例文件与代码2.2 Document 对象的核心特性2.3 在 RAG 工作流程中…...
Java面试题025:一文深入了解数据库Redis(1)
欢迎大家关注我的JAVA面试题专栏,该专栏会持续更新,从原理角度覆盖Java知识体系的方方面面。 一文吃透JAVA知识体系(面试题)https://blog.csdn.net/wuxinyan123/category_7521898.html?fromshareblogcolumn&sharetypeblogco…...
Web攻防-XSS跨站Cookie盗取数据包提交网络钓鱼BEEF项目XSS平台危害利用
知识点: 1、Web攻防-XSS跨站-手工代码&框架工具&在线平台 2、Web攻防-XSS跨站-Cookie盗取&数据提交&网络钓鱼 演示案例-WEB攻防-XSS跨站-Cookie盗取&数据提交&网络钓鱼&Beef工具 1、XSS跨站-攻击利用-凭据盗取 条件:无防…...
(LeetCode 面试经典 150 题) 169. 多数元素(哈希表 || 二分查找)
题目:169. 多数元素 方法一:二分法,最坏的时间复杂度0(nlogn),但平均0(n)即可。空间复杂度为0(1)。 C版本: int nnums.size();int l0,rn-1;while(l<r){int mid(lr)/2;int ans0;for(auto x:nums){if(xnums[mid]) a…...
71、单元测试-Junit5简介
71、单元测试-Junit5简介 # JUnit 5 简介 JUnit 5 是 Java 平台上最流行的单元测试框架之一,是 JUnit 的重大升级版本,引入了许多新特性和改进,旨在提供更现代化、灵活和强大的测试体验。 ## 主要组成部分 JUnit 5 由三个模块组成:…...
IEC61850 一致性测试中的 UCA 测试
一、IEC61850 与 UCA 的关系背景 标准演进:IEC61850 是电力系统自动化领域的国际通信标准,其发展与美国 UCA(User Communications Architecture)标准密切相关。2001 年,UCA 国际用户组织与 IEC 合作,将 UC…...
ProtoBuf:proto3 语法详解
🌈 个人主页:Zfox_ 🔥 系列专栏:ProtoBuf 在语法详解部分,依旧使⽤项⽬推进的⽅式完成讲解。这个部分会对通讯录进⾏多次升级,使⽤2.x表⽰升级的版本,最终将会升级如下内容: 不再打…...
博图SCL语言GOTO语句深度解析:精准跳转
在SCL编程中,**GOTO语句**是控制流程的底层工具,它允许程序无条件跳转到指定的**标签位置**。虽然现代编程中较少使用,但在特定工业场景下仍能发挥独特价值。 GOTO语句核心机制 基本语法结构 // 定义标签 <标签名>: // 跳转指令 GOTO…...
面试题-在ts中有两个类型,一个是a,一个是b,这两个联合起来就是c,如何实现联合
在 TypeScript 中,若要将两个类型 a 和 b 联合成一个新类型 c,可以使用 联合类型(Union Type) 或 交叉类型(Intersection Type),具体取决于你的需求: 一、联合类型(Unio…...
Mac电脑-触摸板增强工具-BetterTouchTool
BetterTouchTool mac 触摸板增强工具,允许用户使用各种手势来控制其计算机。 Bettertouchtool mac是一个小而高效的macOS应用程序,旨在帮助您为手势定义快捷方式。 此外,Bettertouchtool可用于使用常规鼠标和键盘快捷键,并提供伴…...
MySQL误删数据急救指南:基于Binlog日志的实战恢复详解
背景 数据误删是一个比较严重的场景 1.典型误操作场景 场景1:DELETE FROM orders WHERE status0 → 漏写AND create_time>‘2025-06-20’ 场景2:DROP TABLE customer → 误执行于生产环境 认识 binlog 1.binlog 的核心作用 记录所有 DDL/DML 操…...
API网关Apisix管理接口速查
🧭 管理接口总体分类(基于 REST API) 资源类别接口路径前缀功能说明路由(Routes)/apisix/admin/routes/{id}定义 HTTP 请求的匹配规则及转发目标服务(Services)/apisix/admin/services/{id}封装…...
React 组件通信
父传子 函数式组件 function Footer(props){const [count,setCount] useState(0)const {name,age} propsconst onClick ()>{setCount(count1)}return (<div><button onClick{()>{onClick()}}>点此1</button><div>{count}</div><di…...
Zephyr 电源管理机制深度解析:从 Tickless Idle 到平台 Suspend 实践
本文系统解析 Zephyr 的电源管理机制,包括 Tickless Idle 模式、系统 suspend/resume 生命周期管理、平台级功耗优化 Hook、自定义设备电源域,以及如何结合低功耗 SoC 实现最小化功耗设计。全文超过 5000 字,适合构建对功耗敏感的 IoT、BLE、…...