拓端tecdat|R语言代码编写对NASA元数据进行文本挖掘的主题建模分析
原文链接:http://tecdat.cn/?p=9424
目录
NASA有32,000多个数据集,并且NASA有兴趣了解这些数据集之间的联系,以及与NASA以外其他政府组织中其他重要数据集的联系。有关NASA数据集的元数据有JSON格式在线获得。让我们使用主题建模对描述字段进行分类,然后将其连接到关键字。
什么是主题建模?
主题建模是一种无监督的文档分类方法。此方法将每个文档建模为主题的混合,将每个主题建模为单词的混合。我将在这里用于主题建模的方法称为 潜在Dirichlet分配(LDA), 但还有其他适合主题模型的可能性。在本文中,每个数据集描述都是一个文档。我们将看看是否可以将这些描述文本作为主题进行建模。
获取和整理NASA元数据
让我们下载32,000多个NASA数据集的元数据 。
检查一下,最常用的关键字是什么?
制作DocumentTermMatrix
要进行主题建模,我们需要从tm包中创建一种 特殊的矩阵(当然,“文档矩阵”只是一个通用概念)。行对应于文档(在本例中为描述文字),列对应于术语(即单词);它是一个稀疏矩阵。
让我们使用停用词来清理一下文本,以除去HTML或其他字符编码中残留的一些废话“词”。
现在让我们来制作 DocumentTermMatrix
。
LDA主题建模
现在,让我们使用 topicmodels 包创建一个LDA模型。我们将告诉算法进行多少个主题?这个问题很像k-means聚类中的问题;我们不提前知道。我们可以尝试一些不同的值,查看模型如何拟合文本。让我们从8个主题开始。
这是一种随机算法,根据算法的起始位置,其结果可能会有所不同。
探索建模
让我们整理模型,看看我们能找到什么。
β列告诉我们从该主题的文档中生成该术语的可能性。
每个主题的前5个词是什么?top_terms
让我们看一下。
我们可以看到在这些描述文本中占主导地位的词“数据”是什么。从关于土地和土地的术语到关于设计,系统和技术的术语,这些术语集合之间确实存在着有意义的差异。绝对需要进一步探索,以找到合适数量的主题并在这里做得更好。另外,标题和描述词是否可以结合用于主题建模?
每个文档都属于哪个主题?
让我们找出哪些主题与哪些描述字段(即文档)相关联。
此处的γ列是每个文档属于每个主题的概率。请注意,有些非常低,有些更高。概率如何分布?
y轴在此处以对数刻度绘制,因此我们可以看到一些东西。大多数文档都被归类为以下主题之一:许多文档被归类为主题2,而文档被归类为主题1和5则较不明确。一些主题的文档较少。对于任何单个文档,我们都可以找到它具有最高归属概率的主题。
将主题建模连接到关键字
让我们将这些主题模型与关键字联系起来,看看会发生什么。让我们 将此数据框添加到关键字,然后查看哪些关键字与哪个主题相关联。
让我们保留属于某个主题的文档(概率> 0.9),然后为每个主题找到最重要的关键字。
我们也对它们进行可视化。
如果您有任何疑问,请在下面发表评论。