一、背景

在进行知识图谱嵌入的时候,需要使用到很多模型如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,官方文档给定的例子也较少(如只给了如何引入数据,但是对数据格式和要求没做说明),很多细节的东西需要自己查看源码进行获取,但是主流和核心的部分已经给出。这里做一个简单的介绍。

五、参考

github地址

官方文档

posted on 2021-03-25 19:54  蔚蓝色の天空  阅读(1272)  评论(0编辑  收藏  举报