nju-websoft / OpenEA

A Benchmarking Study of Embedding-based Entity Alignment for Knowledge Graphs, VLDB 2020
GNU General Public License v3.0
522 stars 81 forks source link

关于输入输出的些许问题 #23

Closed dakeleblack closed 2 years ago

dakeleblack commented 3 years ago

作者您好,最近刚开始研究实体对齐这块内容,请问OpenEA框架是针对于两个不同知识图谱之间的实体对齐场景吗?相当于实体链接?因为看到输入数据中有KG1和KG2的两个知识图谱的关系三元组和属性三元组,此外train_links这些训练数据是两个知识图谱中对应相同的实体对吗?输出结果中有一个alignment_results_12文件,里面是预测出来的两个知识图谱中相同的实体对id吗?还有kg1_ent_embeds_txt和kg2_ent_embeds_txt分别是两个知识图谱中每个实体的embedding表示吗? 最后一个问题就是我们的应用场景是将实体抽取得到的实体进行对齐,也就是没有知识图谱,仅仅是对抽取得到的实体进行对齐,这种场景下可以使用OpenEA吗?如果可以的话,输入应该怎么设置呢?感谢作者的解答

dakeleblack commented 3 years ago

请问最终得到的sim_mat矩阵的含义是什么,对应位置的元素代表测试数据中KG1和KG2两两实体的相似度吗?

sunzequn commented 3 years ago

同学你好,

感谢你对我们工作的关注。

OpenEA是面向知识图谱(KG)实体对齐任务的工具包,类似于你提到的实体链接。train_links的已知的对齐实体对,用于训练模型。输出文件中的alignment_results_12是预测的实体对的id,kg1_ent_embeds_txt等文件是输出的embeddings (text format)。sim_mat是相似度矩阵。

目前OpenEA不支持非KG场景的对齐任务。不过,你可以用其他表示学习技术给实体学习embeddings,对齐方法可以借鉴OpenEA里面的。

dakeleblack commented 3 years ago

感谢作者解答,还有一个问题想请教下作者,我看到测试数据test_links也是一些实体对,这些实体对不一定是对齐的吧?还有想问的就是如果KG中有些实体没有关系的话是否这些实体就没有对应的embedding表示了,因为看到代码中实体编号只是从关系三元组中的实体得到的,没有加上属性三元组中的实体:ent_ids1, ent_ids2 = generate_mapping_id(kg1.relation_triples_set, kg1.entities_set,kg2.relation_triples_set, kg2.entities_set),而entities_set则是包含了关系和属性中所有涉及到的实体,这个地方貌似有点问题,希望能得到解答,感谢。

sunzequn commented 3 years ago

同学你好,很抱歉回复晚了。

当前数据集下面test_links都是对齐的。 目前数据集里面实体都是有关系的,然后因为目前的方法都考虑了关系,所以我先抽取的关系图和其中的实体,然后抽取这些实体的属性,所以有属性的实体都是有关系的。这里,未来工作,大家可以考虑更加复杂的情况。欢迎探索!