一、背景
在进行知识图谱嵌入的时候,需要使用到很多模型如Tran系列的模型、KG2B等,这里介绍一个嵌入的集成神奇——pykeen。
二、使用
2.1 使用
使用如下指令安装
# 安装指令
pip install pykeen
2.2 模型训练
pykeen提供了自己的数据集,可以使用给定的路径,也可以使用自己的路径。
# 引入模型的三元组和管道训练数据
from pykeen.triples import TriplesFactory
from pykeen.pipeline import pipeline
# 训练结果
training = TriplesFactory.from_path(
file_path_train, # 路径
create_inverse_triples=True,
)
testing = TriplesFactory.from_path(
file_path_test, # 路径
entity_to_id=training.entity_to_id, # 实体词映射的关系
relation_to_id=training.relation_to_id, # 关系的映射关系
create_inverse_triples=True,
)
result = pipeline(
training=training,
testing=testing,
model='HolE', # 指定训练的模型,可以查看源码,里面的模型介绍很详细
training_kwargs=dict(num_epochs=5), # short epochs for testing - you should go higher
)
print(result.model)
# 使用模型进行预测
model = result.model
# 可以预测尾节点、连接关系等 预测的节点和关系必须出现在实体标签中
result_t = model.get_tail_prediction_df("sorrowfully", 'verb')
三、注意
3.1 数据集
在使用自己的数据集的时候,需要注意,开发的作者是使用\t进行数据的划分,因此使用自己的数据需要用到\t作为分隔符
3.2 版本
python的版本需要>=3.7
四、总结
由于是刚开发的包,因此存在一些bug,官方文档给定的例子也较少(如只给了如何引入数据,但是对数据格式和要求没做说明),很多细节的东西需要自己查看源码进行获取,但是主流和核心的部分已经给出。这里做一个简单的介绍。
五、参考