NASA托管和/或维护了超过32,000个数据集; 这些数据集涵盖了从地球科学到航空航天工程到NASA本身管理的主题。我们可以使用这些数据集的元数据来理解它们之间的联系。
1 NASA如何组织数据
首先,让我们下载JSON文件,并查看元数据中存储的名称。
library(jsonlite)
metadata <- fromJSON("https://data.nasa.gov/data.json")
names(metadata$dataset)
我们在这里看到,我们可以从发布每个数据集的人那里获取信息,以获取他们发布的许可证。
似乎每个数据集的标题,描述和关键字对于绘制数据集之间的连接可能是最有成效的。我们来看看吧。
class(metadata$dataset$title)
1.1纠缠和整理数据
让我们为标题,描述和关键字设置单独的整洁数据框,保留每个数据集的数据集ID,以便我们可以在以后的分析中将它们连接起来(如有必要)。
1.2一些初步的简单探索
NASA数据集中最常见的单词是什么?我们可以使用count()
dplyr来检查这个。
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()
widyr包来计算每对单词在标题或描述字段中出现的次数。
library(widyr)
这些是最常出现在descripton字段中的单词对。“数据”是描述领域中非常常见的词; NASA的数据集中不缺少数据!
![](/qrcode.jpg)
我们在这个标题词网络中看到了一些清晰的聚类; 美国国家航空航天局数据集标题中的单词大部分被组织成几个词汇系列,这些词汇往往在一起。
说明字段中的单词怎么样?
关键词网络
接下来,让我们建立一个 关键字的网络,以查看哪些关键字通常在同一数据集中一起出现。
keyword_pairs
## # 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
![](https://img2018.cnblogs.com/blog/831855/201906/831855-20190620160527728-289356172.png)
请注意,此排序数据帧顶部的这些关键字的相关系数等于1; 他们总是一起出现。这意味着这些是多余的关键字。继续在这些对中使用两个关键字可能没有意义; 相反,只能使用一个关键字。
让我们可视化关键字相关性网络,就像我们为关键字共同出现一样。
3计算描述字段的tf-idf
网络图向我们展示了描述字段由一些常用词来控制,如“数据”,“全局”和“分辨率”; 这将是一个很好的机会,可以使用tf-idf作为统计数据来查找各个描述字段的特征词。 我们可以使用术语频率乘以逆文档频率的tf-idf来识别对文档集合中的文档特别重要的单词。让我们将这种方法应用于这些NASA数据集的描述字段。
我们现在知道描述中的哪些单词具有高tf-idf,并且我们在关键字中也有这些描述的标签。让我们用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
![](https://img2018.cnblogs.com/blog/831855/201906/831855-20190620160720187-1493499207.png)
数据框顶部可见的一些概率较低,而某些概率较高。我们的模型已经为每个描述分配了一个概率,这些描述属于我们根据单词集构建的每个主题。概率是如何分配的?
![](https://img2018.cnblogs.com/blog/831855/201906/831855-20190620160731708-1208868625.png)
![](https://img2018.cnblogs.com/blog/831855/201906/831855-20190620160748167-1924153413.png)
还有问题吗?联系我们!
大数据部落 -中国专业的第三方数据服务提供商,提供定制化的一站式数据挖掘和统计分析咨询服务
统计分析和数据挖掘咨询服务:y0.cn/teradat(咨询服务请联系官网客服)
【服务场景】
科研项目; 公司项目外包;线上线下一对一培训;数据采集;学术研究;报告撰写;市场调查。
【大数据部落】提供定制化的一站式数据挖掘和统计分析咨询服务