【PYG】简单分析 Cora 数据集的文件 cora.cites 和 cora.content

手动下载 Cora 数据集的文件 cora.citescora.content 后,你可以通过以下步骤将它们加载到 Python 环境中,并使用 PyTorch Geometric 或其他工具进行进一步处理和分析。

数据集文件说明

  • cora.cites: 包含了论文之间的引用关系。每一行表示一条引用关系,格式为 paper_id_cited paper_id_citing。例如,论文id35 论文id1033

  • cora.content: 包含了论文的特征信息和标签。每一行表示一个论文,第一个字段是论文的 id,接着的特征字段(可以是文本特征、词袋表示、节点属性等),最后一个字段是论文所属的类别标签。例如,第一篇论文id 31336,类别 Neural_Networks,中间部分特征字段

对chatgpt生成代码进行修改运行结果

Number of citation relations: 5429
Number of papers: 2708
Citation relations:
35      1033
35      103482
35      103515
35      1050679
35      1103960
Paper content:
len line_content 1435
line_content[0] 31336
line_content[-1] Neural_Networks
len line_content 1435
line_content[0] 1061127
line_content[-1] Rule_Learning
len line_content 1435
line_content[0] 1106406
line_content[-1] Reinforcement_Learning
len line_content 1435
line_content[0] 13195
line_content[-1] Reinforcement_Learning
len line_content 1435
line_content[0] 37879
line_content[-1] Probabilistic_Methods
import numpy as np

# 文件路径
cites_file = './cora/cora/cora.cites'
content_file = './cora/cora/cora.content'

# 读取引用关系数据
with open(cites_file, 'r') as f:
    cites_lines = f.readlines()

# 读取论文特征和标签数据
with open(content_file, 'r') as f:
    content_lines = f.readlines()

# 打印数据示例
print(f'Number of citation relations: {len(cites_lines)}')
print(f'Number of papers: {len(content_lines)}')

# 示例:打印前几行数据
print('Citation relations:')
for line in cites_lines[:5]:
    print(line.strip())

print('Paper content:')
for line in content_lines[:5]:
    # print(line.strip())
    line_content = line.strip().split()
    print(f"len line_content {len(line_content)}")
    print(f"line_content[0] {line_content[0]}")
    print(f"line_content[-1] {line_content[-1]}")

  • 以下是chatgpt生成的原始代码

处理步骤

  1. 加载数据文件

    使用 Python 的文件读取方法加载数据文件并进行处理。这里我们使用简单的文件读取和处理方法示例:

    import numpy as np
    
    # 文件路径
    cites_file = 'path_to_cora.cites'
    content_file = 'path_to_cora.content'
    
    # 读取引用关系数据
    with open(cites_file, 'r') as f:
        cites_lines = f.readlines()
    
    # 读取论文特征和标签数据
    with open(content_file, 'r') as f:
        content_lines = f.readlines()
    
    # 打印数据示例
    print(f'Number of citation relations: {len(cites_lines)}')
    print(f'Number of papers: {len(content_lines)}')
    
    # 示例:打印前几行数据
    print('Citation relations:')
    for line in cites_lines[:5]:
        print(line.strip())
    
    print('Paper content:')
    for line in content_lines[:5]:
        print(line.strip())
    
  2. 解析数据

    根据数据文件的格式,解析每一行数据,构建对应的数据结构。这里的数据结构可以是 Python 的列表、字典或者 Pandas 的 DataFrame,具体取决于后续数据处理和使用的需求。

    # 解析引用关系数据
    citation_edges = []
    for line in cites_lines:
        parts = line.strip().split()
        cited = parts[0]
        citing = parts[1]
        citation_edges.append((cited, citing))
    
    # 解析论文特征和标签数据
    paper_features = []
    paper_labels = []
    for line in content_lines:
        parts = line.strip().split()
        paper_id = parts[0]
        features = list(map(float, parts[1:-1]))  # 读取特征,假设是数值型特征
        label = parts[-1]
        paper_features.append(features)
        paper_labels.append(label)
    
    # 转换为 NumPy 数组
    paper_features = np.array(paper_features, dtype=np.float32)
    paper_labels = np.array(paper_labels)
    
    # 打印解析结果的示例
    print(f'Parsed {len(citation_edges)} citation edges')
    print(f'Parsed {len(paper_features)} papers with features and labels')
    
    # 示例:打印前几条引用关系和论文特征
    print('Parsed citation edges:')
    for edge in citation_edges[:5]:
        print(edge)
    
    print('Parsed paper features and labels:')
    for i in range(5):
        print(f'Paper {i + 1}: Features = {paper_features[i]}, Label = {paper_labels[i]}')
    

最后一部分打印输出

Parsed 5429 citation edges
Parsed 2708 papers with features and labels
Parsed citation edges:
('35', '1033')
('35', '103482')
('35', '103515')
('35', '1050679')
('35', '1103960')
Parsed paper features and labels:
Paper 1: Features = [0. 0. 0. ... 0. 0. 0.], Label = Neural_Networks
Paper 2: Features = [0. 0. 0. ... 0. 0. 0.], Label = Rule_Learning
Paper 3: Features = [0. 0. 0. ... 0. 0. 0.], Label = Reinforcement_Learning
Paper 4: Features = [0. 0. 0. ... 0. 0. 0.], Label = Reinforcement_Learning
Paper 5: Features = [0. 0. 0. ... 0. 0. 0.], Label = Probabilistic_Methods
  1. 进一步处理和分析

    接下来,你可以使用加载和解析的数据进行进一步的处理和分析,例如构建图结构、训练机器学习模型或进行数据可视化等操作。如果你打算使用 PyTorch Geometric,可以根据需要将数据转换为 PyTorch 张量或直接使用 PyTorch Geometric 提供的工具类加载数据。

通过这些步骤,你可以有效地加载和处理手动下载的 Cora 数据集文件,并在需要时将其集成到机器学习或图神经网络任务中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/762006.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

函数创建单链表---无n型,需要 while 循环 + scanf

题目&#xff1a; #include <stdlib.h> struct link{int data;struct link *next; }; struct link* creatLink(); int main(){struct link *head,*p;headcreatLink();for(phead->next ;p;pp->next )printf("%d ",p->data );return 0; }/* 请在这里填…

图像基础知识入门【图像概念不同图像格式】

图像基础知识入门【图像概念&不同图像格式】 最近有在处理图像转换&#xff0c;因此稍微补足了一下图像相关知识&#xff0c;特在此记录。下面汇总是我根据自己理解和网上查阅资料而来。如有错误&#xff0c;欢迎大家指正。 1 基础概念 像素/分辨率 像素(Pixel)&#xff…

51单片机嵌入式开发:STC89C52环境配置到点亮LED

STC89C52环境配置到点亮LED 1 环境配置1.1 硬件环境1.2 编译环境1.3 烧录环境 2 工程配置2.1 工程框架2.2 工程创建2.3 参数配置 3 点亮一个LED3.1 原理图解读3.2 代码配置3.3 演示 4 总结 1 环境配置 1.1 硬件环境 硬件环境采用“华晴电子”的MINIEL-89C开发板&#xff0c;这…

昇思25天学习打卡营第6天|Vision Transformer

文章目录 昇思MindSpore应用实践基于MindSpore的Vision Transformer1、Vision Transformer&#xff08;ViT&#xff09;简介网络结构 2、Attention模块Encoder部分用到的功能函数&#xff1a;整体构建ViT模型 3、模型训练4、模型验证 Reference 昇思MindSpore应用实践 本系列文…

Java web应用性能分析之【prometheus监控K8s指标说明】

常规k8s的监控指标 单独 1、集群维度 集群状态集群节点数节点状态&#xff08;正常、不可达、未知&#xff09;节点的资源使用率&#xff08;CPU、内存、IO等&#xff09; 2、应用维度 应用响应时间 应用的错误率 应用的请求量 3、系统和集群组件维度 API服务器状态控…

C++视觉开发 三.缺陷检测

一.距离变换 1.概念和功能 距离变换是一种图像处理技术&#xff0c;用于计算图像中每个像素到最近的零像素&#xff08;背景像素&#xff09;的距离。它常用于图像分割、形态学操作和形状分析等领域。它计算图像中每个像素到最近的零像素&#xff08;背景像素&#xff09;的距…

制造型企业生产管理的技巧,你都用过哪些?

作为管理者&#xff0c;一谈到生产管理&#xff0c;你可能会想到很多生产过程中的问题&#xff1a;订单准交率不高、计划达成率不高、生产效率低、再制品太多、生产周期长等等一系列问题&#xff1b;如果你不仅仅是一名管理者&#xff0c;你还是一名企业主&#xff0c;你甚至经…

安装Rabbitmq遇到的坑

&#xff01;&#xff01;&#xff01;一定要对号版本号 不同的虚拟机unbontu、cetenos和不同的erlang和不同的rabbitmq之间要对应下载对应版本 下面给出我的版本centos7erlangrabbitmq 分割线 安装好后&#xff0c;如果在虚拟机的服务器上可以打开&#xff0c;在本地浏览器…

UI(四)布局

文章目录 10、Navigator——路由器组件11、Pannel——可滑动面板12、Refresh——刷新组件13、RelativeContainer——相对布局组件14、Scroll——可滚动容器15、SideBarContainer——侧边栏容器16、Stack——堆叠容器17、Swiper——滑动块视图容器18、Tabs和TabContent——页签和…

Nginx-2

一、高级配置 1.1网页状态页 基于nginx 模块 ngx_http_stub_status_module 实现&#xff0c;在编译安装nginx的时候需要添加编译参数 --with-http_stub_status_module&#xff0c;否则配置完成之后监测会是提示语法错误注意: 状态页显示的是整个服务器的状态,而非虚拟主机的状…

【SQL】已解决:SQL错误(208):对象名‘STRING_SPLIT‘无效

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决&#xff1a;SQL错误&#xff08;208&#xff09;&#xff1a;对象名‘STRING_SPLIT‘无效 在使用SQL Server进行数据库操作时&#xff0c;遇到错误&#xff08;208&#xff…

反向沙箱技术:安全隔离上网

在信息化建设不断深化的今天&#xff0c;业务系统的安全性和稳定性成为各公司和相关部门关注的焦点。面对日益复杂的网络威胁&#xff0c;传统的安全防护手段已难以满足需求。深信达反向沙箱技术&#xff0c;以其独特的设计和强大的功能&#xff0c;成为保障政务系统信息安全的…

SpringBoot项目中获取IP地址

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言 OkHttp 是一个由 Square 开发的高效、现代的 HTTP 客户端库&#xff0c;用于 Android 和 Java 应用程序。它支持 HTTP/2 和 SPDY 等现代网络协议&#xff0c;…

详解COB显示屏的技术特点

COB&#xff08;Chip on Board&#xff09;显示屏作为一种采用倒装COB封装技术的LED显示屏&#xff0c;在显示效果以及使用稳定性跟防护性方面&#xff0c;拥有更大优势&#xff0c;今天跟随COB显示屏厂家中品瑞科技一起来看看&#xff0c;COB显示屏的技术特点&#xff1a; 1、…

【前端vue3】TypeScrip-类型推论和类型别名

类型推论 TypeScript里&#xff0c;在有些没有明确指出类型的地方&#xff0c;类型推论会帮助提供类型。 例如&#xff1a; 变量xiaoc被推断类型为string 如重新给xiaoc赋值数字会报错 let xiaoc "xiaoc"xiaoc 1111111111111如没有给变量指定类型和赋值&#xf…

tcpdump命令详解及使用实例

1、抓所有网卡数据包&#xff0c;保存到指定路径 tcpdump -i any -w /oemdata/123.pcap&一、tcpdump简介 tcpdump可以将网络中传送的数据包完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤&#xff0c;并提供and、or、not等逻辑语句来去掉无用的信…

内网服务器时间校正

新购买的云服务器发现内网机器和可以访问外网的机器时间慢了三分钟&#xff0c;导致有些访问会报错&#xff0c;那么我们配置一下ntp校正一下时间。外网配置起来比较简单&#xff0c;直接下载ntp执行校正命令即可。 比当前时间慢了三分钟 注意当前服务器是可以访问外网的机器这…

道可云AI智能体平台全新升级,加快培育发展新质生产力

数字化时代浪潮下&#xff0c;以人工智能为代表的新一代信息技术正在加速推动社会变革&#xff0c;给各行各业带来巨大发展机遇。在AI技术的加持下&#xff0c;“人工智能”成为时代发展趋势&#xff0c;也是加快培育和发展新质生产力的新动能。 为培育数字经济发展新动能&…

自定义vue3 hooks

文章目录 hooks目录结构demo hooks 当页面内有很多的功能&#xff0c;js代码太多&#xff0c;不好维护&#xff0c;可以每个功能都有写一个js或者ts&#xff0c;这样的话&#xff0c;代码易读&#xff0c;并且容易维护&#xff0c;组合式setup写法与此结合&#x1f44d;&#…

Java基础(判断和循环)

一、流程控制语句-顺序结构 顺序结构语句是Java程序默认的执行流程&#xff0c;按照代码的先后顺序&#xff0c;从上到下依次执行。 二、流程控制语句-分支结构&#xff08;分支结构包括if、switch) if语句&#xff1a;在程序中用来进行判断 1、If语句的第一种格式&#xf…