我在使用Mallet 2.0.7在Java中用于挖掘鸣叫。 根据文档,对于主题建模,我必须使用CsvIterator读取数据集。创建自定义模式为我的数据集在槌
Reader fileReader = new InputStreamReader(new FileInputStream(new File(args[0])), "UTF-8");
instances.addThruPipe(new CsvIterator (fileReader, Pattern.compile("^(\\S*)[\\s,]*(\\S*)[\\s,]*(.*)$"),
3, 2, 1)); // data, label, name fields
我的数据集是这样的:行,X,位置,用户名,hashtaghs,文本,转推,日期,收藏夹,numberOfComment
的标签我加x列。在第一次,我想在列文本(6)中运行算法,后来又添加了另一列。我编写了这种模式,但它不能正确工作,它直到最后才获得第6列的数据。如何更改模式的正则表达式?
Reader fileReader = new InputStreamReader(new FileInputStream(new File(filePath)), "UTF-8");
instances.addThruPipe(new CsvIterator(fileReader,
Pattern.compile("^(\\S*)[\\s,]*(\\S*)[\\s,]*(\\S*)[\\s,]*(\\S*)[\\s,]*(\\S*)[\\s,]*(.*)$"),
6, 2, 1)); // data, label, name fields
感谢您的回答!我想函数编译(数据组)的参数3是我想要在其中检测主题的文本的索引,为此,我通过了6。你传递了2这意味着在我的数据集中,这意味着2列(文本和转推)? – NASRIN
在我的预处理步骤中,我删除了逗号,停用词和派生推文。因为这个原因,我用逗号作为分隔符,我根据你的指导改变了模式。 “^(\\ d +)[,] * [^,] * [,] * [^,] * [,] * [^,] * [,] *([^,] *)[,] * [ ^,] * [,] * [^,] * [,] * [^,] * [,] * [^,] * $“但是我仍然怀疑我的程序,你有没有槌子的例子,除了邮件木槌网站? – NASRIN