首页 > 其他分享 >【论文笔记】跨语言知识图谱补全

【论文笔记】跨语言知识图谱补全

时间:2024-05-20 22:30:23浏览次数:20  
标签:知识 补全 图谱 模型 实体 笔记 对齐

2012~2018

1. Co-training embeddings of knowledge graphs and entity descriptions for cross-lingual entity alignment

文章核心观点:参考上一篇关于实体对齐的分析

方法:

  1. 单语预测(KDCoE-mono)旨在以TransE的相同方式查询三元组(h,r,t)中缺失的h或t
  2. 跨语预测(KDCoE-cross)提供了一种新的三元组完成方法,通过将单语预测过程转换为另一种语言的嵌入空间(线性变换对齐),然后将结果转换回源语言。

转移范例:参数
转移资源:Multilingual representations
评估语言:英语,法语,德语
评估数据集:WK3l60k

2019~2020

Multilingual knowledge graph completion via ensemble knowledge transfer

文章核心观点:
这篇文章介绍了一个名为KEnS的多语言知识图谱嵌入模型,通过集成多个语言特定知识图谱的嵌入表示来预测未知事实。文章的主要贡献包括提出了一个共享嵌入空间的模型,用于学习每个知识图谱的结构知识,以及一个对齐模型,用于捕获不同知识图谱之间的实体对应关系。此外,文章提出了多种集成推理方法,将来自多个知识图谱的预测结果组合起来,从而提高事实预测的性能。实验结果表明,该方法在多个真实世界的语言特定知识图谱数据集上优于单一知识图谱嵌入模型,特别是在稀疏图谱上效果更加明显。文章还提供了详细的案例分析,以展示如何从其他图谱转移互补知识,以提高图谱补全的性能。

方法:

  1. 嵌入学习
  • 知识模型:使用TransE和RotatE等模型,将每个知识图谱中的实体和关系编码到共享的嵌入空间中
  • 对齐模型:基于少量种子对齐信息,学习不同知识图谱之间的实体对齐,将所有知识图谱嵌入到同一个向量空间。
  • 自学习:迭代增加未对齐实体间的对齐,提高对齐学习效果。
  • 学习目标:同时最小化知识模型的损失和对齐模型的损失。
  1. 集成推理
  • 跨语言查询和知识传递:利用对齐模型预测实体对齐,将查询从源知识图谱传递到目标知识图谱,并将结果传递回来。
  • 加权集成推理:结合多个知识图谱的嵌入模型进行推理,使用投票等技术。
  • 基于提升的权重学习:学习每个实体对应的模型权重,评估每个模型的置信度。
  • 其他集成技术:除了提升方法,还可以使用多数投票、MRR加权等方法。

转移范例:参数
转移资源:Multilingual representations
评估语言:英语(EN)、法语(FR)、西班牙语(ES)、日语(JA)和希腊语(EL)
评估数据集:DBP-5L

2021~2022

Joint Completion and Alignment of Multilingual Knowledge Graphs

文章核心观点:
这篇文章提出了一种名为ALIGNKGC的多任务学习方法,旨在同时完成多语言知识图谱的补全、实体对齐和关系对齐。该方法的主要创新点包括: 1. 使用了基于实体嵌入的软关系表示,通过比较两个关系的主体-客体嵌入向量集合,计算它们之间的重叠度,从而进行关系对齐。 2. 引入了新的关系对齐损失项,基于最大二分图匹配来衡量两个关系嵌入集合的重叠度,并通过梯度下降优化实体嵌入以减少该损失。 3. 联合训练知识图谱补全损失、实体对齐损失和关系对齐损失,使三个任务相互促进,提高性能。 4. 在7种语言的三个数据集上进行了实验,结果表明该方法在知识图谱补全和实体对齐任务上明显优于多个基线方法,并在关系对齐上取得了竞争性能。 综上所述,该文章提出了一种有效的方法,通过多任务学习的方式同时完成知识图谱补全、实体对齐和关系对齐,取得了良好的实验结果。

摘要:知识图谱补全(KGC)旨在预测不完整知识图谱(KG)中的缺失事实。多语言知识图谱将实体和关系与不同语言书写的表面形式相关联。实体或关系在不同的KG中可能关联不同的ID,因此需要进行实体对齐(EA)和关系对齐(RA)。已有许多有效的算法被提出,将补全和其对齐作为单独的任务。然而,我们发现这些任务是协同的,最好一起解决。我们的多任务方法以最先进的KG嵌入方案为基础,但增加了一种新的基于(主语,宾语)实体对嵌入向量的关系表示。这种表示导致了一个新的基于最大二分图匹配的关系对齐损失项。该损失项与传统的KGC损失以及可选的基于实体(和关系)名称文本嵌入的损失相结合。

补充:为了保持竞争方法的一致性,我们避免任何BERT到mBERT的偏差(例如在词块词汇表上),即使在翻译成英语后也使用mBERT

转移范例:参数,label
转移资源:Multilingual representations,机器翻译,pre-trained(translate+mBERT初始化)
评估语言:英语(EN)、法语(FR)、西班牙语(ES)、日语(JA)和希腊语(EL),中文,德语
评估数据集:DBP-5L,DBP15K,OpenEA

Joint Multilingual Knowledge Graph Completion and Alignment

文章核心观点:
这篇文章介绍了一种名为JMAC的模型,旨在实现多语言知识图谱的联合补全和映射。JMAC模型由两个组件构成:补全组件和映射组件,均采用关系感知的图神经网络进行编码。其中,补全组件用于预测缺失的三元组,而映射组件则负责识别不同语言图谱之间的实体对应关系。此外,文章还提出了减少结构不一致性的机制,通过将补全组件的嵌入与映射组件的嵌入进行融合,以提高映射质量。在DBP-5L数据集上的实验结果表明,JMAC模型在多语言知识图谱补全和映射任务上均取得了state-of-the-art的效果。

方法:

  1. 模型架构:JMAC模型由两个主要组件组成,分别是Completion组件和Alignment组件。这两个组件都使用了关系感知图神经网络(RA-GNN)来编码实体的多跳邻居信息。
  2. Completion组件:利用TransE翻译基础损失函数来重构缺失的三元组,并加入已知的对齐信息作为额外的损失项,以实现多语言知识图谱的补全。
  3. Alignment组件:该组件利用Completion组件的嵌入表示来减少结构不一致性,并提出了种子扩大和三元组传递机制来增强对齐效果。
  4. 联合训练:模型通过迭代训练Completion和Alignment组件,分别固定一个组件的参数,优化另一个组件的损失函数。

转移范例:参数
转移资源:Multilingual representations,pre-trained
评估语言:英语(EN)、法语(FR)、西班牙语(ES)、日语(JA)和希腊语(EL)
评估数据集:DBP-5L

不足:模型基于假设实体在不同知识图谱中的表面信息(如名称)相同或相似,但实际上某些实体在不同知识图谱中的表面信息可能存在较大差异,这可能导致模型性能的下降。

Multilingual Knowledge Graph Completion with Self-Supervised Adaptive Graph Alignment

文章核心观点:
这篇文章介绍了一个名为SS-AGA的框架,用于多语言知识图谱补全。其主要创新点包括: 1. 将不同语言的图谱融合为一个整体图,并通过可学习的注意力机制控制不同对齐关系对同一实体的不同影响,以解决知识不一致的问题。 2. 提出了一种新的对齐对生成机制,通过在训练过程中动态捕捉潜在的对齐对,以缓解种子对齐稀缺的问题。 3. 在DBPedia多语言数据集和新构建的工业级电商产品多语言知识图谱数据集上进行了验证,实验结果表明SS-AGA的有效性。 4. 进行了广泛的实验,证明了SS-AGA在公共和工业数据集上的有效性。 总体来说,该文章通过融合不同语言的图谱、设计注意力机制、生成新对齐对等方法,有效地解决了多语言知识图谱补全任务中的关键问题,取得了不错的效果。

方法:

  1. 关系感知的多语言知识图谱嵌入:
  • 将所有知识图谱融合为一个整体图,并将实体对齐视为一种新的关系类型。
  • 使用关系感知的图神经网络编码器学习每个实体的上下文嵌入,并通过可学习的注意力 权重来区分来自多个对齐源的实体影响。
  • 最后,应用知识图谱补全解码器计算每个关系事实的三元组分数。
  1. 自监督新对齐生成:
  • 使用两个图神经网络编码器,一个用于生成结构嵌入,另一个用于生成文本嵌入。
  • 模型计算实体之间的相似度,并根据相似度来生成新的对齐对。
  • 引入自监督学习任务,要求模型恢复被掩蔽的对齐关系,以指导并降噪新对齐生成过程。
  1. 训练流程:
  • 通过交替优化知识图谱补全损失和自监督对齐损失来训练模型。
  • 在每个迭代中,首先优化自监督对齐损失,然后基于所有对齐信息提出新的对齐对,最后优化知识图谱补全损失。

转移范例:参数
转移资源:Multilingual representations,pre-trained
评估语言:英语(EN)、法语(FR)、西班牙语(ES)、日语(JA)和希腊语(EL),德语,意大利语
评估数据集:DBP-5L,E-PKG

Multilingual Knowledge Graph Completion from Pretrained Language Models with Knowledge Constraints

文章核心观点:
这篇文章主要探讨了利用预训练语言模型进行多语言知识图谱补全(mKGC)的方法。文章首先指出当前mKGC存在的主要问题,包括预训练语言模型与mKGC任务不匹配以及存在明显的英语中心偏差。为解决这些问题,文章提出了全局和局部知识约束方法。全局知识约束通过建立头实体、关系和尾实体之间的逻辑关系,确保生成的答案与查询意图一致。局部知识约束通过最大化查询词和尾实体表示之间的互信息,增强查询表示。实验结果显示,该方法相比当前最先进的模型Prix-LM在Hits@1、Hits@3和Hits@10指标上分别平均提高12.32%、11.39%和16.03%。此外,在跨语言实体对齐任务上,该方法也优于Prix-LM。总之,本文提出的全局和局部知识约束方法有效提升了预训练语言模型在mKGC任务上的适应性,取得了显著的性能提升。

方法:

  1. 查询编码器:利用预训练语言模型对三元组进行编码,使用注意力掩码机制来控制不同子词之间的交互。
  2. 全局知识约束:引入特殊标记[H]、[R]、[T]表示三元组的头实体、关系和尾实体,并构建它们之间的语义关系,如头实体+关系≈尾实体。通过计算三元组得分来优化模型。
  3. 局部知识约束:将查询词表示和尾实体表示视为两个分布,并最大化它们之间的互信息。这有助于增强查询表示,特别适用于低资源数据。
  4. 答案生成模块:利用因果语言模型根据查询序列生成尾实体。这可以实现端到端的生成。
  5. 训练:模型联合优化全局知识约束、局部知识约束和答案生成三个损失函数。
  6. 推理:在推理阶段,使用自动回归生成的方式来逐个生成尾实体的词,并通过约束性束搜索来确保输出在预定义的候选集内。

转移范例:参数
转移资源:Multilingual representations,pre-trained(XLM-R)
评估语言:德语、芬兰语、法语、匈牙利语、意大利语、日语和土耳其语
评估数据集:Prix-LM

不足:
知识图谱包含大量资源,如属性、描述和图片,这些资源不易被嵌入方法捕获,但可被PLM有效建模。因此,为了更好地适应实际需求,需要考虑知识图谱中更广泛的数据类型,并开发互补方法。
尽管引入了全局和本地知识约束,但预训练语言模型和知识图谱中的语言偏差问题尚未完全解决,未来的工作可以继续改进。

Multilingual Knowledge Graph Completion with Language-Sensitive Multi-Graph Attention

文章核心观点:
这篇文章提出了一个用于多语言知识图谱补全的框架。该框架通过共享对齐的实体嵌入,将多个知识图谱连接成统一图,并利用语言敏感的多图注意力来捕捉不同知识图谱中的知识模式,实现了跨语言的知识传递。在实验中,该框架在DBP-5L和E-PKG数据集上优于现有方法,证明了其在利用多语言知识图谱提高单一语言知识图谱补全性能方面的有效性。此外,该框架无需额外对齐模型,实现了端到端的多语言知识图谱补全。

方法:

  1. 构建统一图:
  • 将N个源知识图谱G1,G2,…,GN连接成一个统一图Gu。
  • 通过共享对齐实体对ei和ej的嵌入向量,实现N个独立知识图谱的连接。
  • 在统一图Gu中,移除重复的对齐实体,并维护统一的实体向量集Eu和关系向量集R。
  • 共享对齐实体避免了引入对齐模型的需要,并且可以一次性训练一个模型来对所有的给定知识图谱进行推理。
  1. 带多图注意力的图神经网络编码器:
  • 将目标节点的邻居节点按来源分成N个子图。
  • 使用带多图注意力的GNN编码器对目标节点进行编码,得到N个隐含表示。
  • 多图注意力包括单图注意力和跨图注意力。
  1. 语言敏感聚合:
  • 对多个来源的隐含表示进行语言敏感聚合,得到目标节点的最终表示。
  • 通过在每个来源的隐含表示中添加语言标签,使模型能够明确知道每个嵌入向量属于哪个语言特定的知识图谱。
  1. 知识图谱补全解码器:
  • 给定实体和关系的嵌入,使用知识图谱补全解码器计算三元组的分数。
  • 通过最小化排序损失函数来优化模型。

转移范例:参数
转移资源:Multilingual representations
评估语言:英语(EN)、法语(FR)、西班牙语(ES)、日语(JA)和希腊语(EL),德语,意大利语
评估数据集:DBP-5L,E-PKG

相关工作:多语言知识图谱补全旨在通过多种不同语言的知识图谱(KGs)来增强知识图谱补全(KGC)。首次,MTransE(Chen et al., 2017)模型将知识图谱嵌入从单语种场景扩展到多语种场景,其中多个知识图谱的信息可以相互转移。此后,许多工作集中在不同知识图谱之间的实体对齐任务上(Zhang et al., 2019; Sun et al., 2020; Zhu et al., 2021a; Guo et al., 2022)。另一方面,(Chen et al., 2020)提出了一个新的框架KEnS,通过有效利用多种特定语言的知识图谱的补充知识,改进了单语种知识图谱补全。AlignKGC(Singh et al., 2021)在多语言知识图谱上同时进行知识图谱补全、实体对齐和关系对齐,并提高了知识图谱补全的准确性以及对齐得分。SS-AGA(Huang et al., 2022)通过使用关系感知图神经网络和动态生成更多潜在的对齐对,改进了多语言知识图谱补全任务。然而,实体对齐仍然是上述多语言知识图谱补全方法的主要焦点。此外,上述工作中的知识模型几乎是建立在单语种知识图谱补全方法之上的,而很少有工作直接解决多语言知识转移的问题。在本文中,我们将解决对齐依赖性和训练效率低下的问题。

不足:由于统一图非常大,第一次训练之前构建子图需要更多时间。但在保存这些子图后,后续训练过程中无需重新构建子图。

文章核心观点:
这篇文章提出了一个名为SARLM的地理知识图谱链接完成模型。该模型利用预训练的DistilBERT模型进行微调,以解决OSM和Wikidata中的POI实体链接问题。SARLM通过空间编码器学习地理实体的位置信息,并引入了属性编码器学习实体的其他属性信息。同时,该模型使用了数据增强和位置编码策略,并在意大利、德国和中国数据集上进行了验证。实验结果表明,与基于特征工程的传统方法相比,SARLM在意大利数据集上表现相当,而在德国和中国数据集上则表现更优。总的来说,该研究为地理知识图谱链接完成提供了一个有效的深度学习方法。

挑战:
地理实体信息匮乏:大型知识图谱如Wikidata中的地理实体属性相对不足,难以支持下游地理问答等应用。
数据源关联性低:尽管OSM数据拥有更丰富的属性信息,但其内部关联性相对较低,导致OSM与Wikidata之间的连接率不超过10%,增加了链接补全的难度。
传统方法局限性:传统方法主要依赖特定属性计算相似度,忽略了其他属性中的重要信息,且实施过程需要大量手动操作,对异构数据融合不友好。
缺失属性匹配:部分POI数据缺失名称等属性,传统方法难以处理这部分数据。
候选集生成:候选集生成阶段依赖位置信息,实际应用中数据可能没有位置属性,需要更简洁的筛选策略。
二阶和三阶邻接信息利用不足:现有方法仅考虑OSM与Wikidata的一阶属性关联,未充分利用二阶和三阶邻接信息。

方法:

  1. 实体匹配模型:使用预训练的多语言DistilBERT模型进行实体匹配,通过将OSM和Wikidata的数据输入到模型中,使用[SEP]分隔符将两个数据源的数据拼接成句子对,然后利用模型提取的[CLS]向量进行分类。
  2. 候选实体生成:基于模型计算的数据对文本相似度和位置相似度,生成候选实体集。其中,位置相似度是通过计算两个实体之间的球面距离来计算的。
    数据增强:对数据进行增强,随机删除指定长度的span,以提高模型在处理缺失属性数据时的稳定性。
  3. 位置编码:使用位置编码器将单点坐标编码为密集向量,并将其与属性向量组合,以更全面地学习相似性信息。
  4. 实体初始化表示:通过组合位置编码和属性编码,生成地理实体的初始化表示,输入到模型中学习高维表示。
  5. 分类输出:使用全连接层和softmax层进行二分类输出

转移范例:参数
转移资源:Multilingual representations,pre-trained
评估语言:中文,德语,意大利语
评估数据集:self-generated

Conflict-aware multilingual knowledge graph completion

文章核心观点:
这篇文章提出了一种名为CA-MKGC的基于冲突感知的多语言知识图谱补全方法,其主要内容和贡献包括: 1. 设计了基于图卷积网络的编码器,将不同知识图谱之间的种子对齐视为关系进行内部消息传递,以统一模型编码所有知识图谱。 2. 通过迭代机制,逐步将预测的对齐和推断的事实引入训练过程,并生成增量监督信息。 3. 引入了主动学习和贪婪近似的半约束优化问题,以限制知识图谱之间的错误传播。 4. 在多语言知识图谱数据集上进行了实验,结果显示该方法达到了最先进的性能。 5. 消融实验验证了内部图编码器以及唯一对齐约束的有效性。 6. 该方法为处理多知识图谱补全任务提供了一种有效的新思路。

转移范例:参数
转移资源:Multilingual representations,pre-trained(mBERT)
评估语言:英语(EN)、法语(FR)、西班牙语(ES)、日语(JA)和希腊语(EL),德语,意大利语
评估数据集:DBP-5L,E-PKG

方法:

  1. 内部知识图谱编码器:
  • 将种子对齐视为普通关系,通过内部知识图谱GCN编码器实现多个知识图谱的统一建模,并利用消息传递实现跨知识图谱的信息传递。
  1. 增量监督:
  • 在训练过程中迭代引入新预测的对齐和事实作为额外监督,并使用对齐蕴含的元路径来推断新的对齐和事实。
  1. 唯一对齐约束:
  • 提出主动学习机制和贪心近似方法,以限制错误传播,并对每个知识图谱施加唯一对齐约束,限制每个实体在所有知识图谱中最多只与一个实体对齐。
  1. 模型训练:
  • 首先仅使用知识图谱补全损失进行训练,随后在训练过程中逐步引入对齐预测和主动学习机制。

相关工作:

  1. 单一知识图谱补全
    知识图谱补全(KGC)在过去几年中一直是研究的热门话题,许多基于嵌入的方法被提出来解决KGC问题,这些方法将节点和边缘编码到低维向量空间中。像TransE [3]这样的翻译模型,像RESCAL [13]这样的语义匹配模型以及它们的变体[2,5,6,14]在KGC任务上都显示出了有希望的结果。近年来,许多方法[15–17]被提出使用图卷积网络(GCN)[18]及其变体作为编码器,以更好地利用图结构来编码知识图谱中的实体和关系,并在单一知识图谱上的KGC任务上取得了更好的结果。知识表示学习的进步不仅限于更深的网络和更先进的编码器结构。许多最近的工作[19,20]也提出了使用对比学习与图增强等技术来提高知识表示的质量。我们相信,在单一知识图谱上开发更先进的知识表示方法可以显著地有益于专注于多知识图谱补全(MKGC)任务的方法。这是因为大多数MKGC方法更侧重于最大化图之间的“知识转移”,同时使用上述知识表示技术作为它们的基础。

  2. 多知识图谱补全
    与单一知识图谱上的KGC任务相比,多知识图谱上的知识图谱补全任务多年来受到的关注较少。这项任务最初在[21]中被简要讨论,但仅作为实体对齐方法的副产品。Chen等人[9]首次提出了多语言KGC问题设置,并生成了一个专门的数据集DBP-5L。Chen等人[9]通过在不同语言的知识图谱之间共享的三元组上生成集成结果来解决MKGC任务。其他最近的方法,如AlignKGC [10]、SS-AGA [11],以及最近的JMAC [12],也被提出来解决相同的问题设置。AlignKGC和JMAC还提出只使用知识图谱之间种子对齐的50%来模拟这个问题的低资源设置。大多数现有的多知识图谱补全工作允许预测知识图谱之间的对齐实体,以为MKGC任务生成额外的监督。然而,在生成知识图谱之间对齐实体的预测时,现有方法每次只考虑一对知识图谱,这没有充分利用拥有多个知识图谱的好处,并可能导致错误修剪的预测结果和生成次优的额外监督。在所有知识图谱中节点和边缘的编码策略方面,大多数现有工作[1,10,12]提出为每个知识图谱分别建模嵌入,同时使用损失项来规范跨知识图谱对齐实体之间的关系。SS-AGA [11]是一个值得注意的例外,它采取了与我们工作非常相似的策略,提出通过消息传递在统一模型下建模所有嵌入。然而,提出的SS-AGA采用了强制对齐实体嵌入相似的正则化,这直观上会在统一模型下的知识图谱嵌入训练过程中造成混淆,该模型旨在区分不同的实体。

标签:知识,补全,图谱,模型,实体,笔记,对齐
From: https://www.cnblogs.com/Chen0495/p/18201104

相关文章

  • 学习笔记
    CPP:函数指针定义方法int(func)(inti);int(p)(int)=func......
  • mit6.828笔记 - lab4 Part C:抢占式多任务和进程间通信(IPC)
    PartC:抢占式多任务和进程间通信(IPClab4到目前为止,我们能够启动多个CPU,让多个CPU同时处理多个进程。实现了中断处理,并且实现了用户级页面故障机制以及写时复制fork。但是,我们的进程调度不是抢占式的,现在每个进程只有在发生中断的时候,才会被调度(调用shed_yeild),这样就有可能会有......
  • manacher学习笔记
    小学一下。首先是用一个在回文串题目中的的技巧,用来减少分讨,如果想到这个的话说不定thusc2024d1t1就切了。具体来说,就是在每个字符之间都插入一个#,然后在开头和结尾插入随便两个不同的字符。然后就只有回文中心在字符上的情况了。首先设\(p_{i}\)为当前位置为中心的最大回文半......
  • Java基础 韩顺平老师的 常用类 的部分笔记
    459,八大Wrapper类包装类的分类 1)针对八种基本数据类型相应的引用类型—包装类 2)有了类的特点,就可以调用类中的方法。  460,装箱和拆箱 packagecom.hspedu.Wrapper;publicclassWrapperType{publicstaticvoidmain(String[]args){//演示......
  • mit6.828笔记 - lab4 Part B:写时复制Fork
    PartBCopy-on-WriteForkUnix提供 fork() 系统调用作为主要的进程创建基元。fork()系统调用复制调用进程(父进程)的地址空间,创建一个新进程(子进程)。不过,在调用 fork() 之后,子进程往往会立即调用 exec(),用新程序替换子进程的内存。例如,shell通常就是这么做的。在这种情况......
  • [笔记]Git常用命令大全
    Tips:当你看到这个提示的时候,说明当前的文章是由原emlog博客系统搬迁至此的,文章发布时间已过于久远,编排和内容不一定完整,还请谅解`[笔记]Git常用命令大全日期:2018-6-16阿珏折腾代码浏览:1796次评论:4条继上一次后,抽空整理了个比较全的Git常用命令,找到了一张非常棒的导图,......
  • 应用层总结笔记2
    1.HTTP是什么超文本传输协议用于主机之间传输文字、图片、视频等超文本数据的规范协议HTTP不限于服务器向客户端发送超文本,服务器之间也可能进行超文本的传输2.******HTTP的状态码除了不常见的1类提示信息还有2类的报文成功收到状态信息3类的重定向信息,表示客户端申请访问......
  • 传输层总结笔记3
    1.TCP头格式有源、目的端口号,指示进行通信的两个应用进程;首部长度;序列号,表示数据部分的第一个字节的编号;确认号,表示希望接收到的下一个字节的编号,表明该编号之前的数据都已经被确认接收了;控制位,ACK表示确认号有效性RST表示强制断开连接SYN、FIN方别表示报文属于TCP连接建立......
  • 侯捷C++上期笔记
    1.头文件和类、构造函数c++和c最大的不同在于C++会把数据以及处理数据的函数放到一个对象objects(class)里,不同类之间不可见,类似C中结构体struct防止头文件重复声明ifndefcomplex//当之前没有声明过这个头文件时,才进行后续的声明definecomplex(2)补充定义(1)类定义(3)类功能解释......
  • 基于vis.js实现网络拓扑图等关系图谱
    vis.js是一个动态的、基于浏览器的可视化库。该库被设计为易于使用,可以处理大量动态数据,并支持对数据的操作和与数据的交互。该库由组件DataSet,Timeline,Network,Graph2d和Graph3d组成。现在使用vis.js实现一个简单的网络类似网络拓扑的关系图谱,效果如下图所示:实现的示例代......