R语言文本挖掘NASA数据网络分析,tf-idf和主题建模

简介: R语言文本挖掘NASA数据网络分析,tf-idf和主题建模

NASA托管和/或维护了超过32,000个数据集; 这些数据集涵盖了从地球科学到航空航天工程到NASA本身管理的主题。我们可以使用这些数据集的元数据来理解它们之间的联系。


1 NASA如何组织数据

首先,让我们下载JSON文件,并查看元数据中存储的名称。

metadata <- fromJSON("https://data.nasa.gov/data.json")
names(metadata$dataset)

我们在这里看到,我们可以从发布每个数据集的人那里获取信息,以获取他们发布的许可证。


class(metadata$dataset$title)

1.1 整理数据

让我们为标题,描述和关键字设置单独的整洁数据框,保留每个数据集的数据集ID,以便我们可以在以后的分析中将它们连接起来

1.2 初步的简单探索

NASA数据集中最常见的单词是什么?


nasa_title %>%
  count(word, sort = TRUE)

最常见的关键字是什么?


nasa_keyword %>% 
  group_by(keyword) %>% 
  count(sort = TRUE)
## # A tibble: 1,774 x 2
## # Groups:   keyword [1,774]
##    keyword                     n
##    <chr>                   <int>
##  1 EARTH SCIENCE           14362
##  2 Project                  7452
##  3 ATMOSPHERE               7321
##  4 Ocean Color              7268
##  5 Ocean Optics             7268
##  6 Oceans                   7268
##  7 completed                6452


2.1描述和标题词的网络

我们可以使用pairwise_count 来计算每对单词在标题或描述字段中出现的次数。

 

这些是最常出现在descripton字段中的单词对。


我们在这个标题词网络中看到了一些清晰的聚类; 美国国家航空航天局数据集标题中的单词大部分被组织成几个词汇系列,这些词汇往往在一起。


关键词网络

接下来,让我们建立一个 关键字的网络,以查看哪些关键字通常在同一数据集中一起出现。


## # A tibble: 13,390 x 3
##    item1         item2                       n
##    <chr>         <chr>                   <dbl>
##  1 OCEANS        OCEAN OPTICS             7324
##  2 EARTH SCIENCE ATMOSPHERE               7318
##  3 OCEANS        OCEAN COLOR              7270
##  4 OCEAN OPTICS  OCEAN COLOR              7270


请注意,此排序数据帧顶部的这些关键字的相关系数等于1; 他们总是一起出现。这意味着这些是多余的关键字。继续在这些对中使用两个关键字可能没有意义; 相反,只能使用一个关键字。

让我们可视化关键字相关性网络,就像我们为关键字共同出现一样。


3计算描述字段的tf-idf

网络图向我们展示了描述字段由一些常用词来控制,如“数据”,“全局”和“分辨率”; 可以使用tf-idf作为统计数据来查找各个描述字段的特征词。


4主题建模

使用tf-idf作为统计数据已经让我们深入了解NASA描述字段的内容,但让我们尝试另外一种方法来解决NASA描述字段的内容。

每个主题是关于什么的?让我们来看看每个主题的前10个术语。


## # A tibble: 240 x 3
##    topic term          beta
##    <int> <chr>        <dbl>
##  1     1 data        0.0449
##  2     1 soil        0.0368
##  3     1 moisture    0.0295
##  4     1 amsr        0.0244
##  5     1 sst         0.0168
##  6     1 validation  0.0132
##  7     1 temperature 0.0132
##  8     1 surface     0.0129
##  9     1 accuracy    0.0123
## 10     1 set         0.0116




首先注意y轴是以对数刻度绘制的; 否则很难弄清楚情节中的任何细节。该分布表明文档被很好地区分为属于某个主题。我们还可以看看每个主题中概率的分布情况。

相关文章
|
3月前
|
机器学习/深度学习 算法 调度
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
338 0
|
4月前
|
机器学习/深度学习 数据采集 传感器
【故障诊断】基于matlab BP神经网络电机数据特征提取与故障诊断研究(Matlab代码实现)
【故障诊断】基于matlab BP神经网络电机数据特征提取与故障诊断研究(Matlab代码实现)
138 0
|
5月前
|
数据采集 存储 算法
MyEMS 开源能源管理系统:基于 4G 无线传感网络的能源数据闭环管理方案
MyEMS 是开源能源管理领域的标杆解决方案,采用 Python、Django 与 React 技术栈,具备模块化架构与跨平台兼容性。系统涵盖能源数据治理、设备管理、工单流转与智能控制四大核心功能,结合高精度 4G 无线计量仪表,实现高效数据采集与边缘计算。方案部署灵活、安全性高,助力企业实现能源数字化与碳减排目标。
147 0
|
6月前
|
Python
LBA-ECO CD-32 通量塔网络数据汇编,巴西亚马逊:1999-2006,V2
该数据集汇集了1999年至2006年间巴西亚马逊地区九座观测塔的碳和能量通量、气象、辐射等多类数据,涵盖小时至月度时间步长。作为第二版汇编,数据经过协调与质量控制,扩展了第一版内容,并新增生态系统呼吸等相关计算数据,支持综合研究与模型合成。数据以36个制表符分隔文本文件形式提供,配套PDF说明文件,适用于生态与气候研究。引用来源为Restrepo-Coupe等人(2021)。
104 1
|
2月前
|
机器学习/深度学习 人工智能 算法
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
120 0
|
3月前
|
机器学习/深度学习 数据采集 运维
改进的遗传算法优化的BP神经网络用于电厂数据的异常检测和故障诊断
改进的遗传算法优化的BP神经网络用于电厂数据的异常检测和故障诊断
|
5月前
|
存储 监控 算法
基于 Python 跳表算法的局域网网络监控软件动态数据索引优化策略研究
局域网网络监控软件需高效处理终端行为数据,跳表作为一种基于概率平衡的动态数据结构,具备高效的插入、删除与查询性能(平均时间复杂度为O(log n)),适用于高频数据写入和随机查询场景。本文深入解析跳表原理,探讨其在局域网监控中的适配性,并提供基于Python的完整实现方案,优化终端会话管理,提升系统响应性能。
139 4
|
6月前
|
开发者
鸿蒙仓颉语言开发教程:网络请求和数据解析
本文介绍了在仓颉开发语言中实现网络请求的方法,以购物应用的分类列表为例,详细讲解了从权限配置、发起请求到数据解析的全过程。通过示例代码,帮助开发者快速掌握如何在网络请求中处理数据并展示到页面上,减少开发中的摸索成本。
鸿蒙仓颉语言开发教程:网络请求和数据解析
|
8月前
|
安全 网络安全 定位技术
网络通讯技术:HTTP POST协议用于发送本地压缩数据到服务器的方案。
总的来说,无论你是一名网络开发者,还是普通的IT工作人员,理解并掌握POST方法的运用是非常有价值的。它就像一艘快速,稳定,安全的大船,始终为我们在网络海洋中的冒险提供了可靠的支持。
251 22
|
8月前
|
存储 数据库 Python
利用Python获取网络数据的技巧
抓起你的Python魔杖,我们一起进入了网络之海,捕捉那些悠游在网络中的数据鱼,想一想不同的网络资源,是不是都像数不尽的海洋生物,我们要做的,就是像一个优秀的渔民一样,找到他们,把它们捕获,然后用他们制作出种种美味。 **1. 打开魔法之门:请求包** 要抓鱼,首先需要一个鱼网。在Python的世界里,我们就是通过所谓的“请求包”来发送“抓鱼”的请求。requests是Python中常用的发送HTTP请求的库,用它可以方便地与网络上的资源进行交互。所谓的GET,POST,DELETE,还有PUT,这些听起来像偶像歌曲一样的单词,其实就是我们鱼网的不同方式。 简单用法如下: ``` im
155 14