R语言文本挖掘NASA数据网络分析,tf-idf和主题建模
原文链接:http://tecdat.cn/?p=6763
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轴是以对数刻度绘制的; 否则很难弄清楚情节中的任何细节。该分布表明文档被很好地区分为属于某个主题。我们还可以看看每个主题中概率的分布情况。
点击标题查阅往期内容
更多内容,请点击左下角“阅读原文”查看
案例精选、技术干货 第一时间与您分享
长按二维码加关注
更多内容,请点击左下角“阅读原文”查看