基于共词分析的中国近代史实体关系图构建(毕业设计:图数据渲染)

结合数据处理部分获取的主题词,在实体-关系-实体三元组中,我们称第一个实体为触发者、第二个为受事者。只有触发者和受试者都为主题词时,才确定为图数据的三元组。

# triple
import pandas as pd
import numpy as np
try:
    tri=pd.read_csv("excel/三元组.csv")
    node=pd.read_excel("excel/node_centrality_pro.xlsx",sheet_name="topic").iloc[:,0].values
    l=len(node)
    f1= lambda a,b:[i in j for i,j in zip(a,b)]
    f2= lambda a,b:[i and j for i,j in zip(a,b)]
    lst=[]
    for i in tri.index.values:
        node1 = pd.Series([tri.loc[i].to_dict()['0']]*l).fillna('').values
        node2 = pd.Series([tri.loc[i].to_dict()['2']] * l).fillna('').values
        out=f2(f1(node,node1),f1(node,node2))
        if np.sum(out)!=0:
            lst.append(tri.loc[i].to_dict().values())
    df=pd.DataFrame(lst)
    df.to_excel("excel/图谱and三元组.xlsx")
except Exception as e:
    print(e)

尽管做了这样一个简单的筛选,最后留下的三元组质量不是很高。且三元组谓词几乎不能精确表达出三元组内容,用主题词虽然把实体分得更准确,但谓词的信息不足时,没有其他较长实体中包含的上下文信息很难人工补全三元组(注意问题的关键在谓词)。最后人工筛查以及补全过程非常依赖于对历史知识的熟悉程度。累得慌。
处理的工作见图谱三元组.xlsx
基于共词分析的中国近代史实体关系图构建(毕业设计:图数据渲染)_第1张图片

本文还借助了文章目录将内容组织得更有逻辑(一类关系),但这样仍旧增加了人工工作量。共词分析在虽然减少了很多无用的三元组,但要真正将选出的三元组构建知识图谱,它发挥的作用还不够显著。
基于共词分析的中国近代史实体关系图构建(毕业设计:图数据渲染)_第2张图片

Interactive Graph渲染

没想到我最初会觉得最难的部分,竟然是花时间最少最简单部分,这个就是直接套用现有的代码了
基于共词分析的中国近代史实体关系图构建(毕业设计:图数据渲染)_第3张图片白乔原创:图数据在线交互框架InteractiveGraph

附上本文的代码
链接:https://pan.baidu.com/s/1vgaiisZoHAUnaI_qMiLLag
提取码:huaf

你可能感兴趣的:(python,机器学习,人工智能)