我正在尝试使用Mallet
实际上没有主题建模等方面的经验。我的目的是获得N的主题M我现在拥有的文档,用一个或多个主题对每个文档进行分类(文档 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(训练分类器?)中使用什么来将每个现有文档分配给我找到的主题,并保存此结果以应用于我想要使用该主题进行分类的未来文档。
Thanks
您正在寻找的内容在 Mallet 主题模型中被描述为“推理”。训练分类器是一个单独的包,旨在直接学习单词和一组预先存在的类之间的关系。
以下是对新文档使用推理的说明:
当您使用以下方法训练模型时train-topics
命令,添加--inferencer-filename [FILENAME]
选项。此选项将根据当前经过训练的模型创建主题推理工具并将其保存在文件中。
如果您已经有一个经过训练的模型,例如来自--output-state
or --output-model
您可以从该状态或模型进行初始化,运行 0 次采样迭代,并输出推理器。
创建推理器文件后,请使用 MALLET 命令bin/mallet infer-topics --help
获取有关使用主题推理的信息。
请注意,您必须确保新数据与您的训练数据兼容。否则,单词 ID 425 可能意味着完全不同的单词。这将使所有主题看起来都有相同的可能性。使用选项--use-pipe-from [MALLET TRAINING FILE]
在 MALLET 命令中bin/mallet import-file
or import-dir
指定训练文件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)