zoukankan      html  css  js  c++  java
  • 图谱嵌入模型神器

    一、背景

    在进行知识图谱嵌入的时候,需要使用到很多模型如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 数据集

    在使用自己的数据集的时候,需要注意,开发的作者是使用 进行数据的划分,因此使用自己的数据需要用到 作为分隔符

    3.2 版本

    python的版本需要>=3.7

    四、总结

    由于是刚开发的包,因此存在一些bug,官方文档给定的例子也较少(如只给了如何引入数据,但是对数据格式和要求没做说明),很多细节的东西需要自己查看源码进行获取,但是主流和核心的部分已经给出。这里做一个简单的介绍。

    五、参考

    github地址

    官方文档

  • 相关阅读:
    清除 Windows 系统垃圾的 bat
    java通过System.getProperty获取系统属性
    【转】Angular之constructor和ngOnInit差异及适用场景
    p中不能包含div
    How to make PostgreSQL functions atomic?
    How to chain a command after sudo su?
    javascript柯里化
    如何在Angular优雅编写HTTP请求
    angular default project (angular.json的解读)
    error:crosses initialization of ...的解决办法
  • 原文地址:https://www.cnblogs.com/future-dream/p/14579006.html
Copyright © 2011-2022 走看看