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

2022-11-01 17:07:42 浏览数 (1)

全文链接:http://tecdat.cn/?p=6763

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


1 NASA如何组织数据

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

代码语言:javascript复制
metadata <- fromJSON("https://data.nasa.gov/data.json")names(metadata$dataset)

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

代码语言:javascript复制
class(metadata$dataset$title)

相关视频

拓端

,赞1

1.1 整理数据

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

1.2 初步的简单探索

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

代码语言:javascript复制
nasa_title %>%  count(word, sort = TRUE)

最常见的关键字是什么?

代码语言:javascript复制
nasa_keyword %>%   group_by(keyword) %>%   count(sort = TRUE)
代码语言:javascript复制
## # 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字段中的单词对。 

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


关键词网络

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

代码语言:javascript复制
## # 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个关键词。

代码语言:javascript复制
## # 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
代码语言:javascript复制
##  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轴是以对数刻度绘制的; 否则很难弄清楚图中的细节。

该分布表明文档被很好地区分为属于某个主题。我们还可以看看每个主题中概率的分布情况。



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

0 人点赞