【问题标题】:Mallet basic usage. First steps木槌的基本用法。第一步
【发布时间】:2016-11-14 09:25:07
【问题描述】:

我正在尝试使用 Mallet,但在主题建模等方面几乎没有经验。我的目的是获得 M 个我拥有的文档的 N 个主题现在,用一个或多个主题对每个文档进行分类(文档 1 = 主题 1;文档 2 = 主题 2 可能还有主题 3),并在未来用这个结果对新文档进行分类。我首先尝试使用bigartm,但在这个程序中没有发现任何分类,只有主题建模。所以 Mallet,我创建了一个 corpus.txt 文件,格式如下:

Doc.num. \t(tab) Label(actualy 1 everywhere) \t Text 1 1 some text of document to classify 2 1 another doc text ...

现在我可以在将此文件转换为槌的特征序列格式后从该文件中获取主题

bin/mallet import-file --input corpus.txt --output foo.mallet--keep-sequence

然后从中获取主题

bin/mallet train-topics --input foo.mallet --output-state state.gz --output-topic-keys topic-keys.txt --output-doc-topics doc-topics.txt

所以现在普遍的问题是在 mallet(训练分类器?)中使用什么来将每个现有文档分配给我找到的主题,并保存此结果以应用于我想用该主题分类的未来文档。

谢谢

【问题讨论】:

    标签: topic-modeling mallet


    【解决方案1】:

    您要查找的内容在 Mallet 主题模型中被描述为“推理”。训练分类器是一个单独的包,旨在直接学习单词和一组预先存在的类之间的关系。

    以下是对新文档使用推理的说明:

    使用train-topics 命令训练模型时,添加--inferencer-filename [FILENAME] 选项。此选项将基于当前经过训练的模型创建主题推理工具并将其保存在文件中。 如果您已经有一个经过训练的模型,例如来自 --output-state--output-model,您可以从该状态或模型进行初始化,运行 0 次采样迭代,然后输出一个推理器。

    创建推理器文件后,使用 MALLET 命令bin/mallet infer-topics --help 获取有关使用主题推理的信息。

    请注意,您必须确保新数据与您的训练数据兼容。否则,单词 ID 425 可能意味着完全不同的单词。这将使所有主题看起来同样可能。使用 MALLET 命令bin/mallet import-fileimport-dir 中的选项--use-pipe-from [MALLET TRAINING FILE] 指定训练文件。

    【讨论】:

      【解决方案2】:

      在您的问题设置中,人类可读文件doc-topics.txt 包含文档主题矩阵,即将语料库中的每个文档组成主题。主题用数字表示,并给出百分比。文件的格式是主题已经按优先级排序,所以主导主题排在第一位。

      文件topic-keys.txt 包含最热门的单词。您可以使用此文件来猜测主题的一些好标签。此标签主要是一项手动任务,它可能涉及返回文档并检查其中一些以获得真正好的标签。

      【讨论】:

      • 那么,你的意思是我应该为将来的目的自己编写分类脚本,而Mallet 没有这样的机会来训练这个主题的分类器?
      • @Kirill:可以将“预训练”主题模型应用于 Mallet 中的新文档;虽然我手头没有命令行语法(bin/mallet help 给了你很多有用的信息,槌命令train-classifierclassify-file 可能对你很感兴趣。
      猜你喜欢
      • 1970-01-01
      • 2011-07-07
      • 1970-01-01
      • 1970-01-01
      • 2020-10-18
      • 1970-01-01
      • 2013-11-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多