Graph2NLP浅谈

图技术

利用neo4j、networkx、dgl、python做图分析挖掘

【1】最短路径算法dijkstra
【2】基于networkx的隐性集团关系识别模型
【3】基于Neo4j的担保社群型态分析挖掘
【4】基于python求有向无环图中target到其他节点全路径
【5】有向图中任意两点的路径
【6】图基础入门
【7】知识图谱快速入门
【8】基于graphsage的欺诈用户风险识别


Graph2NLP浅谈

前言

主要是把图数据 转化为文本 的实践和尝试,后续应用于实际的业务场景中。图数据来源于基于graphsage的欺诈用户风险识别 中的graph.bin ,自然语言处理手段主要来源于基于word2vec的word相似度 中的word2vec


一、构图

使用一个小图,举例说明如何进行转换,下图包含6个节点与6条关系。
企业0 企业1 企业2 企业3 企业4 企业5

利用dgl进行构图,代码如下。

python 复制代码
import dgl
import torch
import numpy as np
import numpy
import os
from dgl.data import DGLDataset, save_graphs, load_graphs
graph = dgl.graph(([0, 1, 2, 3, 5, 2], [1, 2, 3, 4, 3, 0]))

二、Graph2NLP

利用dgl.sampling.random_walk构造图结构数据,搜索节点0, 1, 2, 3, 4, 54度以内的路径。

python 复制代码
paths = dgl.sampling.random_walk(graph, [0, 1, 2, 3, 4, 5], length=4)
paths[0].numpy().tolist()
def text_save(filename, data):#filename为写入CSV文件的路径,data为要写入数据列表.
    if os.path.exists(filename):
        os.remove(filename)
    file = open(filename,'a')
    for i in range(len(data)):
        s = str(data[i]).replace('[','').replace(']','').replace('-1','')#去除[],这两行按数据不同,可以选择
        s = s.replace("'",'').replace(',','') +'\n'   #去除单引号,逗号,每行末尾追加换行符
        file.write(s)
    file.close()
    print("保存成功")
text_save('data.txt', paths[0].numpy().tolist())

data.txt文本数据里的内容如下

python 复制代码
0 1 2 0 1
1 2 3 4 
2 0 1 2 0
3 4   
4    
5 3 4  

三、分析节点相似度

利用word2vec 分析data.txt文本数据,得到节点相似度。

代码如下:

python 复制代码
#coding:utf-8
import jieba
from gensim.models import Word2Vec
import gensim.models.word2vec as w2v
with open('data.txt',encoding='gb18030') as f:
    document = f.read()
    document_cut = jieba.cut(document)
    result = ' '.join(document_cut)
    print("type",type(result))
    with open('data_seg.txt', 'w',encoding="utf-8") as f2:
        f2.write(result)
model_file_name = 'data.model'
#模型训练,生成词向量
sentences = w2v.LineSentence('data_seg.txt')
model = Word2Vec(sentences, vector_size=100, window=5, min_count=1, workers=4)
model.save(model_file_name)
model = Word2Vec.load(model_file_name)
for vec in ['0','1','2','3','4', '5']:
    print('--%s--的似度' %(vec))
    print(model.wv.similar_by_word(vec, topn=15))
    print('\n')

结果分析

python 复制代码
--0--的似度
[('5', 0.13149002194404602), ('2', 0.0679759532213211), ('1', -0.013514956459403038), ('3', -0.04461709409952164), ('4', -0.11167057603597641)]

节点0与节点5、2的相似度较高。后续该idea考虑应用于实际业务场景中,分享应用案例。

相关推荐
计算机源码社3 小时前
【大数据项目实战】基于大数据的影视内容生态综合质量分析与可视化-基于数据挖掘的影视内容类型共现与口碑聚类分析系统
大数据·人工智能·python·数据挖掘·数据分析·毕业设计·课程设计
C^h3 小时前
pytorch 适合初学者 0基础学习
人工智能·pytorch·python
Rocky Ding*4 小时前
【三年面试五年模拟】2026-09-06 拼多多 AI Agent研发岗秋招笔试4道算法题完整题解
论文阅读·人工智能·深度学习·机器学习·aigc·ai-native·拼多多
小柯南敲键盘4 小时前
跨马翻译:AI批量图片翻译工具,跨境电商视频字幕翻译与智能抠图一体搞定
人工智能·python·音视频
2601_967760784 小时前
2026年PDF压缩与页码添加工具技术实测:性能、算法与本地化适配深度对比
算法·pdf
luckystar513~4 小时前
Geo + AI:【时空智能体】技术剖析
人工智能·ai·gis·geoai·空间智能体·时空智能体
吨吨ai4 小时前
2026年9月8日|GPT‑6 Astra + Codex:Pro 开发者的 AI Agent 工具链
人工智能·gpt
leoZ2314 小时前
2026-09-09-springboot-cloud-deploy-pitfalls
java·前端·javascript·vue.js·人工智能·spring boot·后端
不会就选b5 小时前
算法日常・每日刷题--<贪心>7
数据结构·算法·leetcode
dozenyaoyida5 小时前
AI与大模型新闻日报 | 2026-09-09
人工智能·ai·chatgpt·大模型·新闻