Sagemaker LDA 主题模型 - 如何访问训练模型的参数?还有一种简单的方法来捕捉连贯性吗

2024-05-19

我是 Sagemaker 的新手,正在运行一些测试来衡量 AWS 上的 NTM 和 LDA 与 LDA mallet 和本机 Gensim LDA 模型相比的性能。

我想检查 Sagemaker 上经过训练的模型,并查看诸如哪些单词对每个主题贡献最高之类的内容。还可以衡量模型的一致性。

通过下载输出文件,将其解压并解压以公开 3 个文件 params、symbol.json 和 meta.json,我成功地获取了哪些单词对 Sagemaker 上的 NTM 的每个主题具有最高贡献。

但是,当我尝试对 LDA 执行相同的过程时,无法解压缩未压缩的输出文件。

与 NTM 相比,也许我遗漏了一些东西或者应该为 LDA 做一些不同的事情,但我还没有找到任何关于这方面的文档。另外,有人找到了计算模型一致性的简单方法吗?

任何帮助将不胜感激!


这款 SageMaker 笔记本 https://github.com/awslabs/amazon-sagemaker-examples/blob/master/scientific_details_of_algorithms/lda_topic_modeling/LDA-Science.ipynb深入探讨了 LDA 的科学细节,还演示了如何检查模型工件。具体来说,如何获得狄利克雷先验的估计alpha和主题词分布矩阵beta。您可以在标题为““检查训练后的模型”。为了方便起见,我将相关代码复制在这里:

import tarfile
import mxnet as mx

# extract the tarball
tarflie_fname = FILENAME_PREFIX + 'model.tar.gz' # wherever the tarball is located
with tarfile.open(tarfile_fname) as tar:
    tar.extractall()

# obtain the model file (should be the only file starting with "model_")
model_list = [
    fname
    for fname in os.listdir(FILENAME_PREFIX)
    if fname.startswith('model_')
]
model_fname = model_list[0]

# load the contents of the model file into MXNet arrays
alpha, beta = mx.ndarray.load(model_fname)

这应该会为您提供模型数据。请注意,主题存储为行beta,不以任何特定顺序呈现。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Sagemaker LDA 主题模型 - 如何访问训练模型的参数?还有一种简单的方法来捕捉连贯性吗 的相关文章

随机推荐