MALLET Java API导入数据

时间:2014-11-14 20:24:31

标签: java topic-modeling mallet

我正在尝试使用Java API进行主题建模。包装提供了一个方便的例子。但是,鉴于我的数据量大得多,我认为从一个文件中导入所有数据是不切实际的。

我查看了另一个MALLET问题中链接的powerpoint演示文稿,并发现了一个名为FileIterator的东西,我相信我应该可以使用它代替他们的示例Java代码中使用的CsvIterator。但是,我不确定我是否正确使用它。我尝试使用它来运行我的代码,而且它只是在创建FileIterator的线路上花费了不切实际的大量时间。我还没有深入研究MALLET代码,尚未剖析这个问题;我想其他人可能已经知道了更多。我可以只传递一个目录,其中包含存储文档本身的几个目录吗?

然后我也有机会立刻给它太多的数据。

所以我的整体问题实际上分为两部分:

1)MALLET的功能有多大?我有~500,000个六行文件我想给主题。这首先是MALLET可行的吗?

2)如果上述答案是可行的,那么用MALLET导入这些数据的最佳方法是什么?如果使用MALLET不可行,建议我还能用什么?


编辑:我确实能够使用FileIterator,但它的使用并不像我怀疑的那样。我尝试做的最简单的方法是将包含一个实例的所有单个文件放在一个目录中。然后,我可以将此目录提供给FileIterator,它将像CsvIterator一样工作。

至于可扩展性,我能够在合理的时间内运行大约10,000个短文档,但由于LDA同时考虑所有文档,我认为不可能为所有文档执行文件一下子。但是,MALLET中的TopicInferencer类允许我将尽可能多的文档放入模型中,然后推断出其余文档的主题。这足以满足我的需求。

2 个答案:

答案 0 :(得分:0)

您是否减少了语料库大小,然后运行主题建模以查看完成处理的时间有多快?

另外,在这里,您可能会发现一些与Mallet主题建模相关的性能数据,据报告有人根据其产品对其进行测量。

http://www.slideshare.net/wadkarsameer/large-scale-topic-modeling

答案 1 :(得分:0)

我是http://www.slideshare.net/wadkarsameer/large-scale-topic-modeling的作者Sameer Wadkar。我能够使用我的LDA修改后的mallet版本扩展到250万个文档。我在这里有一个更清洁的版本

https://github.com/sameeraxiomine/largelda

如果您想使用它,请给我发送电子邮件。我计划在某个时候有一份用户说明列表,但我还没有找到它