RDGCN阅读笔记

Relation-Aware Entity Alignment for Heterogeneous Knowledge Graphs

面向异质知识图谱的关系感知实体对齐

Abstract

实体对齐是从不同的知识图(KGs)中链接具有相同真实世界实体的任务,最近被基于嵌入的方法所主导。这种方法通过学习KG表示来工作,以便可以通过测量实体嵌入之间的相似性来执行实体对齐。虽然有希望,但该领域的现有工作往往不能很好地捕获多关系KGs中常见的复杂关系信息,留下了很大的改进空间。本文提出了一种新的关系感知双图卷积网络(RDGCN),通过知识图与其对偶关系副本之间的密切交互来融合关系信息,并进一步捕获邻域结构以学习更好的实体表示。在三个真实的跨语言数据集上的实验表明,我们的方法通过学习更好的KG表示,比最先进的对齐方法提供了更好和更健壮的结果。

1 Introduction

KGs中的知识通常被组织成 ⟨ h e a d e n t i t y , r e l a t i o n , t a i l e n t i t y ⟩ \langle head entity, relation, tail entity \rangle headentity,relation,tailentity的三元组。现有的大多数方法都使用跨家族模型作为嵌入KG的主干,这些KG受假设 h e a d + r e l a t i o n ≈ t a i l head + relation \approx tail head+relationtail的约束。这种强假设使得该模型不能有效地捕捉多关系图中更复杂的关系信息。跨家族方法不能捕捉图中描述的三角形结构,如果使用跨家族学习KG表示,则对齐性能将不可避免地受到影响,因为更复杂的结构,如三角形结构,经常出现在多关系图中。

image-20240329212931319

基于GCN的模型代表了基于嵌入的实体对齐的飞跃。然而,这种方法也无法正确地对关系信息进行建模。由于普通GCN是在无向和无标号图上操作的,因此基于GCN的模型会忽略KG的有用关系信息。DPGCNN在图及其对偶图上交替进行卷积操作,其顶点对应于原始图的边缘,并迭代地应用图注意力机制来使用其对偶图增强原始边缘表示。

受DPGCNN的启发,在本文中,提出了一种新的具有感知能力的双图卷积网络(RDGCN),RDGCN方法通过与原始实体图和对偶关系图之间的多轮交互,有效地将更复杂的关系信息融入实体表示。为了进一步融合邻域结构信息,我们还扩展了带有高速公路门控的GCN。

这项工作的主要贡献是一种新的DPGCNN为基础的模型学习强大的KG表示。

2 Related Work

2.1 Graph Convolutional Networks

对扩展神经网络来处理图形的工作:光谱方法、空间方法

GCN:已经成为许多NLP任务的强大的基于深度学习的方法
R-GCN:对关系数据进行建模,并已成功地用于链接预测和实体分类
DPGCNN(GAT模型的推广):顶点分类,链接预测和图引导矩阵

3 Problem Formulation

KG表示 G = ( E , R , T ) G =(E, R, T) G=(E,R,T),其中 E , R , T E,R,T E,R,T分别是实体,关系和三元组的集合。

两个异质KG: G 1 = ( E 1 , R 1 , T 1 ) G_1 =(E_1,R_1,T_1) G1=(E1,R1,T1) G 2 = ( E 2 , R 2 , T 2 ) G_2 =(E_2,R_2,T_2) G2=(E2,R2,T2)

种子: L = { ( e i 1 , e i 2 ) ∣ e i 1 ∈ E 1 , e i 2 ∈ E 2 } \mathbb L = \{(e_{i1},e_{i2})|e_{i1}\in E_1,e_{i2}\in E_2\} L={(ei1,ei2)ei1E1,ei2E2}

4 Our Approach: RDGCN

给定输入KG(即原始图),首先构造其对偶关系图,其顶点表示原始图中的关系,然后利用图注意机制来鼓励对偶关系图与原始图之间的交互.然后将原始图中的结果顶点表示馈送到具有高速公路门控的GCN层,以捕获相邻的结构信息。最终的实体表示将用于确定两个实体是否应对齐。(可以分三个部分:对偶图的构建,对偶图与原始图的交互,和结构信息集成)

image-20240329220801931

其中, G 1 r , G 2 r G_1^r,G_2^r G1r,G2r 分别是 G 1 e , G 2 e G_1^e,G_2^e G1e,G2e的对偶关系图,在 RDGCN 模型中, G e \mathcal G^e Ge G 1 e , G 2 e G_1^e, G_2^e G1e,G2e组成, G r \mathcal G^r Gr G 1 r , G 2 r G_1^r, G_2^r G1r,G2r组成。

4.1 Constructing the Dual Relation Graph

G 1 G_1 G1 G 2 G_2 G2放在一起作为原始图 G e = ( V e , E e ) \mathcal G^e =(\mathcal V^e, \mathcal E^e) Ge=(Ve,Ee),其中顶点集 V e = E 1 ∪ E 2 \mathcal V^e = E_1 \cup E_2 Ve=E1E2 G 1 G_1 G1 G 2 G_2 G2中所有顶点的并集,边集 E e = T 1 ∪ T 2 \mathcal E^e = T_1 \cup T_2 Ee=T1T2 G 1 G_1 G1 G 2 G_2 G2中所有边/三元组的并集。

给定原始图 G e \mathcal G^e Ge,其对偶关系图 G r = ( V r , E r ) \mathcal G^r =(\mathcal V^r,\mathcal E^r) Gr=(Vr,Er构造如下:

  1. 对于 G e \mathcal G^e Ge中的每种类型的关系 r r r V r \mathcal V^r Vr中将存在顶点 v r v^r vr,因此 V r = R 1 ∪ R 2 \mathcal V^r = R_1 \cup R_2 Vr=R1R2
  2. 如果两个关系 r i r_i ri r j r_j rj G e \mathcal G^e Ge中共享相同的头或尾实体,则在 G r \mathcal G^r Gr中创建连接 v i r v_i^r vir v j r v^r_j vjr的边 u i j r u^r_{ij} uijr​。

根据两个关系 v i r v^r_i vir v j r v^r_j vjr G e \mathcal G^e Ge中共享类似头部或尾部的可能性,用权重 w i j r w^r_{ij} wijr G r \mathcal G^r Gr中的每条边 u i j r u^r_{ij} uijr进行加权,计算如下:
w i j r = H ( r i , r j ) + T ( r i , r j ) w_{ij}^r=H(r_i,r_j)+T(r_i,r_j) wijr=H(ri,rj)+T(ri,rj)

H ( r i , r j ) = H i ∩ H j H i ∪ H j , T ( r i , r j ) = T i ∩ T j T i ∪ T j H(r_i,r_j)=\frac{H_i\cap H_j}{H_i\cup H_j},T(r_i,r_j)=\frac{T_i\cap T_j}{T_i\cup T_j} H(ri,rj)=HiHjHiHj,T(ri,rj)=TiTjTiTj

其中 H i H_i Hi T i T_i Ti分别是 G e \mathcal G^e Ge中关系 r i r_i ri的头和尾实体的集合。构造对偶图的开销与原始图中的关系类型的数量成比例。

4.2 Interactions between Dual and Primal Graphs

引入对偶关系图的目的是更好地将关系信息融入到原始图表示中。为此,我们建议应用图注意机制(GAT)迭代地获得对偶关系图和原始图的顶点表示,其中注意机制有助于提示两个图之间的交互。每一个双原始交互包含两个层,双注意层和原始注意层。

Dual Attention Layer(双重注意层)

X r ∈ R m × 2 d \mathbf{X}^r \in \mathbb R^{m\times 2d} XrRm×2d表示输入对偶顶点表示矩阵,其中每行对应于对偶关系图 G r \mathcal G^r Gr中的一个顶点。不同于普通的GAT使用原始顶点特征来计算双重注意力分数 X ^ e \hat{\mathbf{X}}^e X^e 由来自先前交互模块的原始注意力层产生:
x ~ i r = σ r ( ∑ j ∈ N i r α i j r x j r ) , \tilde{\mathbf{x}}_{i}^{r}=\sigma^{r}(\sum_{j\in N_{i}^{r}}\alpha_{ij}^{r}\mathbf{x}_{j}^{r}), x~ir=σr(jNirαijrxjr),

α i j r = e x p ( η ( w i j r a r [ c i ∥ c j ] ) ) ∑ k ∈ N i r e x p ( η ( w i k r a r [ c i ∥ c k ] ) ) , \alpha_{ij}^{r}=\frac{exp(\eta(w_{ij}^{r}a^{r}[\mathbf{c}_{i}\|\mathbf{c}_{j}]))}{\sum_{k\in N_{i}^{r}}exp(\eta(w_{ik}^{r}a^{r}[\mathbf{c}_{i}\|\mathbf{c}_{k}]))}, αijr=kNirexp(η(wikrar[cick]))exp(η(wijrar[cicj])),

其中, x ~ i r \tilde{\mathbf{x}}_i^r x~ir表示在对偶顶点 v i r v^r_i vir处的 d ′ d' d维输出表示(对应于关系 r i ∈ G e r_i \in \mathcal G^e riGe); x ~ j r \tilde{\mathbf{x}}_j^r x~jr表示顶点 v j r v^r_j vjr的对偶表示; N i r N^r_i Nir v i r v^r_i vir的邻居索引的集合; α i j r \alpha^r_{ij} αijr是对偶注意力分数; a r a^r ar是将 2 d ′ 2d' 2d维输入映射到标量中的全连接层; σ r \sigma_r σr是激活函数ReLU; η \eta η是修正线性单元(Leaky ReLU); c i \mathbf c_i ci是从先前的原始注意力层获得的 G e \mathcal G^e Ge中的关系 r i r_i ri的关系表示。

基于图嵌入的框架中,由于训练数据有限,无法直接提供关系表示。因此,通过连接 G e \mathcal G^e Ge中的平均头部和尾部实体表示来近似 r i r_i ri的关系表示:
c i = [ ∑ k ∈ H i x ^ k e ∣ H i ∣ ∥ ∑ l ∈ T i x ^ l e ∣ T i ∣ ] , \mathbf{c}_{i}=[\frac{\sum_{k\in H_{i}}\hat{\mathbf{x}}_{k}^{e}}{|H_{i}|}\|\frac{\sum_{l\in T_{i}}\hat{\mathbf{x}}_{l}^{e}}{|T_{i}|}], ci=[HikHix^keTilTix^le],
其中, x ^ k e 和 x ^ l e \hat{\mathbf{x}}_{k}^{e}和\hat{\mathbf{x}}_{l}^{e} x^kex^le是来自先前的主要关注层的关系 r i r_i ri的第 k k k个头实体和第 l l l个尾实体的输出表示。

Primal Attention Layer(原始注意力层)

使用 X e ∈ R n × d \mathbf{X}^e \in \mathbb R^{n\times d} XeRn×d来表示输入原始顶点表示矩阵。对于原始图 G e \mathcal G^e Ge中的实体 e q e_q eq,其表示 x ^ q e \hat{\mathbf{x}}_{q}^{e} x^qe可以通过下式计算:

x ~ q e = σ e ( ∑ t ∈ N q e α q t e x t e ) , \tilde{\mathbf{x}}_{q}^{e}=\sigma^{e}(\sum_{t\in N_{q}^{e}}\alpha_{qt}^{e}\mathbf{x}_{t}^{e}), x~qe=σe(tNqeαqtexte),

α q t e = e x p ( η ( a e ( x ~ q t r ) ) ) ∑ k ∈ N q e e x p ( η ( a e ( x ~ q k r ) ) ) , \alpha_{qt}^{e}=\frac{exp(\eta(a^{e}(\tilde{\mathbf{x}}_{qt}^{r})))}{\sum_{k\in N_{q}^{e}}exp(\eta(a^{e}(\tilde{\mathbf{x}}_{qk}^{r})))}, αqte=kNqeexp(η(ae(x~qkr)))exp(η(ae(x~qtr))),

其中, x ~ q t r \tilde{\mathbf{x}}_{qt}^{r} x~qtr表示从 G r \mathcal G^r Gr获得的 r q t r_{qt} rqt(实体 e q e_q eq e t e_t et之间的关系)的对偶表示; α q t e \alpha^e_{qt} αqte是原始注意力分数; N q e N^e_q Nqe G e \mathcal G^e Ge中实体 e q e_q eq的邻居索引的集合; a e a^e ae是将 d ′ d' d维输入映射到标量的全连接层, σ e \sigma^e σe是原始层激活函数。

原始顶点的初始表示矩阵 X e _ i n i t \mathbf{X}^{e\_init} Xe_init,可以使用实体名称初始化,这为实体对齐提供了重要的证据。因此,我们通过将初始表示与原始注意力层的输出混合来显式地保留证据:

x ^ q e = β s ∗ x ~ q e + x q e _ i n i t , \hat{\mathbf{x}}_{q}^{e}=\beta_{s}*\tilde{\mathbf{x}}_{q}^{e}+\mathbf{x}_{q}^{e\_init}, x^qe=βsx~qe+xqe_init,

其中, x ~ q e \tilde{\mathbf{x}}_{q}^{e} x~qe表示 G e \mathcal G^e Ge中实体 e q e_q eq的交互模块的最终输出表示; β s \beta_s βs是第 s s s个主要注意力层的加权参数。

4.3 Incorporating Structural Information

在对偶关系图和原始图之间的多轮交互之后,从原始图中收集关系感知实体表示。接下来,将带有高速公路门的双层GCN应用于生成的原始图,以进一步纳入来自其相邻结构的证据。

在具有实体表示 X ( l ) X^{(l)} X(l)作为输入的每个GCN层 l l l中,输出表示 X ( l + 1 ) X^{(l+1)} X(l+1)可以被计算为:
X ( l + 1 ) = ξ ( D ~ − 1 2 A ~ D ~ − 1 2 X ( l ) W ( l ) ) , X^{(l+1)}=\xi(\tilde D^{-\frac{1}{2}}\tilde A\tilde D^{-\frac{1}{2}}X^{(l)}W^{(l)}), X(l+1)=ξ(D~21A~D~21X(l)W(l)),

其中, A ~ = A + I \tilde A = A+I A~=A+I是添加了自连接的原始图 G e \mathcal G^e Ge的邻接矩阵, I I I是单位矩阵; D ~ j j = ∑ k A ~ j k \tilde D_{jj} = \sum_k\tilde A_{jk} D~jj=kA~jk W ( l ) ∈ R d ( l ) × d ( l + 1 ) W^{(l)}\in \mathbb R^{d(l)}\times d^{(l+1)} W(l)Rd(l)×d(l+1)是层特定的可训练权重矩阵; ξ \xi ξ是激活函数ReLU。在构造 A A A时,将 G e \mathcal G^e Ge视为无向图,以允许信息在两个方向上流动。

此外,为了控制跨层累积的噪声并保留从交互中学习到的有用的关系信息,在GCN层之间引入逐层门,类似于高速公路网络:

T ( X ( l ) ) = σ ( X ( l ) W T ( l ) + b T ( l ) ) , T(X^{(l)})=\sigma(X^{(l)}W_{T}^{(l)}+b_{T}^{(l)}), T(X(l))=σ(X(l)WT(l)+bT(l)),

X ( l + 1 ) = T ( X ( l ) ) ⋅ X ( l + 1 ) + ( 1 − T ( X ( l ) ) ) ⋅ X ( l ) , X^{(l+1)}=T(X^{(l)})\cdot X^{(l+1)}+(1-T(X^{(l)}))\cdot X^{(l)}, X(l+1)=T(X(l))X(l+1)+(1T(X(l)))X(l),

其中 X ( l ) X^{(l)} X(l)是层 l + 1 l+1 l+1的输入; σ \sigma σ是sigmoid函数; ⋅ \cdot 是逐元素乘法; X T ( l ) X^{(l)}_T XT(l) b T ( l ) b^{(l)}_T bT(l)是变换门 T ( X ( l ) ) T(X^{(l)}) T(X(l))的权重矩阵和偏置向量。

**对齐。**从 GCN 层的输出中收集最终的实体表示 X ‾ \overline X X ,考虑两个实体之间的距离作为对齐分数:
d ( e 1 , e 2 ) = ∥ x ˉ e 1 − x ˉ e 2 ∥ L 1 . d(e_1,e_2)=\|\bar{x}_{e_1}-\bar{x}_{e_2}\|_{L_1}. d(e1,e2)=xˉe1xˉe2L1.

4.4 Training

对于训练,期望对齐实体对之间的距离尽可能近,而否定实体对之间的距离尽可能远。使用基于边缘的评分函数作为训练目标:

L = ∑ ( p , q ) ∈ L ∑ ( p ′ , q ′ ) ∈ L ′ max ⁡ { 0 , d ( p , q ) − d ( p ′ , q ′ ) + γ } , L=\sum_{(p,q)\in\mathbb{L}}\sum_{(p',q')\in\mathbb{L}'}\max\{0,d(p,q)-d(p',q')+\gamma\}, L=(p,q)L(p,q)Lmax{0,d(p,q)d(p,q)+γ},

其中 γ > 0 \gamma > 0 γ>0是一个边缘超参数; L \mathbb L L是我们的比对种子, L ′ \mathbb L' L是负实例的集合。

寻找具有挑战性的负样本,给定一个正对齐对 ( p , q ) (p, q) (p,q),选择 p ( o r q ) p(or\ q) p(or q) K \mathcal K K-最近实体,嵌入空间中替换 q ( o r p ) q(or\ p) q(or p)作为负实例。

5 Experimental Setup

数据集:DBP15K,30%用于训练,70%用于测试。

image-20240330111258507

比较模型:JE、MTransE、JAPE、IPTransE、BootEA 、GCN

模型变体:

  1. GCN-s:具有实体名称初始化但没有高速公路门的双层GCN;
  2. R-GCN-s:双层R-GCN
  3. HGCN-s:具有实体名称初始化和高速公路门的两层GCN;
  4. RD:两个双原始交互模块的实现,但没有后续的GCN层。

6 Results and Discussion

6.1 Main Results

image-20240330111802692

RDGCN在所有指标和数据集上都提供了最佳性能,除了在 D B P 15 K Z H − E N DBP15K_{ZH-EN} DBP15KZHEN上的 H i t s @ 10 Hits@10 Hits@10,RDGCN的性能仅次于BootEA,得分略低(84.55 vs 84.75)。

6.2 Ablation Studies

GCN-s与GCN: GCN-s在所有数据集中显著改善了GCN,

GCN-s与R-GCN-s: R-GCN是GCN的扩展,通过显式地建模KG关系,GCN-s在所有数据集上都比RGCN-s实现了更好的性能。

HGCN-s与GCN-s: HGCN-s在采用分层公路门之后,大大提高了GCN-s的性能,这主要是由于它们能够防止噪声顶点驱动KG表示。

HGCN-s与RDGCN: 双原始交互模块对性能至关重要,交互模块通过引入近似关系信息来挖掘知识库的关系特征,并通过对偶关系图与原始图的多次交互,将关系和实体信息充分融合。结果表明,有效的建模和关系信息的使用是有益的实体对齐。

RD与RDGCN: 从模型中删除GCN层时,性能会显著下降。因为双原始图交互被设计为集成KG关系信息,而GCN层可以有效地捕获KG的相邻结构信息。这两个关键组件在某种程度上是互补的,应该结合在一起学习更好的关系感知表示。

6.3 Analysis

image-20240330113140955

image-20240330113154752

通过对原始图和对偶关系图之间的密切交互进行建模,RDGCN能够通过门控GCN层将关系信息与相邻结构信息结合起来,并学习更好的实体表示以进行对齐。与最先进的方法相比,RDGCN使用更少的训练数据,但在三个真实世界的数据集上实现了最佳的对齐性能。

论文原文:

https://www.ijcai.org/proceedings/2019/0733.pdf

GitHub仓库:

https://github.com/StephanieWyt/RDGCN

论文原文:

https://www.ijcai.org/proceedings/2019/0733.pdf

GitHub仓库:

https://github.com/StephanieWyt/RDGCN

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

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

相关文章

基于Spring Boot 3 + Spring Security6 + JWT + Redis实现接口资源鉴权

紧接上一篇文章,基于Spring Boot 3 Spring Security6 JWT Redis实现接口资源鉴权 系列文章指路👉 系列文章-基于SpringBoot3创建项目并配置常用的工具和一些常用的类 项目源码👉 /shijizhe/boot-test 文章目录 1. 修改 UserDetailsServic…

使用hexo框架快速在github上搭建静态博客

今天来说一下使用hexo框架搭建静态博客,玩玩还不错。 我的操作系统 文章目录 一、部署到本地二、新建博客三、更换主题四、部署到github五、其他 一、部署到本地 首先下载好nodejs和git工具,建议直接去清华镜像源下载 node.js git 这中间环境变量的配置…

【精品方案】智慧金融大数据分析平台总体架构方案

以下是部分PPT内容,请您参阅。如需下载完整PPTX文件,请前往星球获取: 1.实现数据共享 通过数据平台实现数据集中,确保金融集团各级部门均可在保证数据隐私和安全的前提下使用数据,充分发挥数据作为企业重要资产的业务价…

milvus knowhere源码编译测试

简介 Knowhere 是 Milvus 的核心向量执行引擎,集成了Faiss、Hnswlib和Annoy等多个向量相似度搜索库。 编译环境 操作系统: Ubuntu 22.04.4 gcc/g:11.4.0 cmake: 3.27.7 安装依赖 apt install build-essential libopenblas-dev libaio-dev python3-dev python…

c语言例题,计算字符串长度,递归思想

c语言中,计算字符串长度算是一个比较经典的题了,而今天我们运用两种不同的求解方法来写出不同的程序来实现计算字符串的功能。 主函数 先看到主函数,主函数中设置了一串7个字符的字符串,而后面接下来定义了两个变量len1和len2&am…

Chatopera 云服务的智能问答引擎实现原理,如何融合 #聊天机器人 技术 #Chatbot #AI #NLP

观看视频 Bilibili: https://www.bilibili.com/video/BV1pZ421q7EH/YouTube: https://www.youtube.com/watch?vx0d1_0HQa8o 内容大纲 提前在浏览器打开网址: Chatopera 云服务:https://bot.chatopera.comChatopera 入门教程:https://dwz…

银狐再起风波:2024税务抽查引战勒索风暴

近日,在日常网络狩猎过程中,亚信安全威胁情报中心的研究专家偶然发现了一个团伙,该团伙不仅在QQ群内散播钓鱼链接,还通过伪造的下载网站推广含有恶意软件的EXE文件。面对这一明显的威胁传播行为,该专家迅速组织了威胁情…

个人偏好测验,职业倾向分析和HR人才测评量表

个人偏好测验,以人的15种需求为理论基础,用来鉴别我们在这15个维度的倾向,从而为分析人格特征、职业倾向提供依据。15种需求理论最早由美国心理学家murray在1938年提出。 个人偏好测验,也叫个人爱好测试,人的需求因子…

网络体系结构概述

目录 1. OSI/RM参考模型1.1. 物理层1.2. 数据链路层1.3. 网络层1.4. 传输层1.5. 会话层1.6. 表示层1.7. 应用层 2. TCP/IP参考模型3. 理解OSI七层模型 网络体系结构是线代网络技术的整体蓝图。 1. OSI/RM参考模型 开放互联参考模型(Open System Interconnection/…

备考ICA----Istio实验12---配置双向TLS Istio Ingress Gateway实验

备考ICA----Istio实验12—配置双向TLS Istio Ingress Gateway实验 本实验部分配置延续上个Istio实验11 1. 重新配置secret 重新配置secret使其带有ca证书可以验证客户端证书是否合法 先删除原有secret,再配置新的secret # 删除原tls类型的secret kubectl -n istio-system d…

【Django开发】0到1美多商城项目md教程第4篇:图形验证码,1. 图形验证码接口设计【附代码文档】

美多商城完整教程(附代码资料)主要内容讲述:欢迎来到美多商城!,项目准备。展示用户注册页面,创建用户模块子应用。用户注册业务实现,用户注册前端逻辑。图形验证码,图形验证码接口设…

网安基础2-Sniffer的使用与防范

1. 嗅探器sniffer的工作原理 能捕获经过该网络设备的报文,通过分析网络流量,找出关键信息,解决网络问题。 不同于键盘捕获程序,如keylogger利用中断或钩子技术,Sniffer将网络接口置成适当的模式,如杂收。…

【小黑送书—第十八期】>>让工作自动化起来!无所不能的Python(文末送书)

随着我国企业数字化和信息化的深入,企业对办公自动化的效率和灵活性要求越来越高。Python作为一种开源的软件应用开发方式,通过提供强大丰富的库文件包,极大地简化了应用开发过程,降低了技术门槛。Python开发有哪些优势、挑战以及…

产品经理的进阶之路

点击下载《产品经理的进阶之路》 1. 前言 本文深入剖析了产品经理这一职业从产品专员起步,逐步晋升为产品经理、高级产品经理,直至产品总监的整个职业发展路径。在每个阶段,产品经理都需承担不同的工作职责,展现出独特的职业特点。 2. 产品专员 关键词【产品需求/原型/文…

《QDebug 2024年3月》

一、Qt Widgets 问题交流 1. 二、Qt Quick 问题交流 1.Qt5 ApplicationWindow 不能使用父组件 Window 的 transientParent 属性 ApplicationWindow 使用 transientParent 报错: "ApplicationWindow.transientParent" is not available due to compone…

Python程序设计 多重循环

教学案例六 多重循环 1.n之内的素数 输入n,显示n之内的所有素数 每行显示10个素数 例如,若输入500,结果如图所示 neval(input()) #代码开始 c 0for i in range(2, n1):for j in range(2, i):if i % j 0:breakelse:c 1print("{:5d}…

四年旅程,一路成长——小雨的创作纪念日

四年旅程,一路成长——小雨的创作纪念日 收到来信,回顾与再开始回首起点,初探技术世界持续前行,从坚持到自信今日之感,持续分享与感恩【3.19故事对话】我一定可以!“新”认知状态变化感受复盘 朝着未来&…

Kubernetes(K8s)技术解析

1. K8s简介 Kubernetes(简称K8s)是一个开源的容器编排平台,旨在简化容器化应用程序的部署、扩展和管理。为开发者和运维人员提供了丰富的功能和灵活的解决方案,帮助他们更轻松地构建、部署和管理云原生应用程序。以下是关于Kubern…

C# OpenCvSharp-HoughCircles(霍夫圆检测) 简单计数

目录 效果 项目 代码 下载 效果 项目 代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using OpenCvSharp; using O…

http模块 服务器端如何响应(获取)静态资源?

一、静态资源与动态资源介绍: (1)静态资源 内容长时间不改变的资源。eg:图片、视频、css js html文件、字体文件... (2)动态资源 内容经常更新的资源。eg:百度首页、淘宝搜索列表... 二、服…