Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Machine learning 在槌中,csvIterator的参数意味着什么?_Machine Learning_Nlp_Topic Modeling_Text Analysis_Mallet - Fatal编程技术网

Machine learning 在槌中,csvIterator的参数意味着什么?

Machine learning 在槌中,csvIterator的参数意味着什么?,machine-learning,nlp,topic-modeling,text-analysis,mallet,Machine Learning,Nlp,Topic Modeling,Text Analysis,Mallet,我正在使用mallet主题建模示例代码,尽管它运行良好,但我想知道这条语句的参数实际上意味着什么 instances.addThruPipe(new CsvIterator(new FileReader(dataFile), "(\\w+)\\s+(\\w+)\\s+(.*)", 3, 2, 1) // (data, target, name)

我正在使用mallet主题建模示例代码,尽管它运行良好,但我想知道这条语句的参数实际上意味着什么

instances.addThruPipe(new CsvIterator(new FileReader(dataFile),
                                      "(\\w+)\\s+(\\w+)\\s+(.*)",
                                      3, 2, 1)  // (data, target, name) field indices                    
                     );
从:

这个迭代器,也许更恰当地称为线模式迭代器,基于正则表达式,读取文件并每行返回一个实例

如果你有表格的数据

[姓名][标签][数据]

你感兴趣的电话是

CsvIterator(java.io.Reader input, java.lang.String lineRegex, 
            int dataGroup, int targetGroup, int uriGroup) 
第一个参数是如何读入数据,如文件读取器或字符串读取器。第二个参数是regex,用于从读卡器读取的每行中提取数据。在您的示例中,您得到了
(\\w+)\\s+(\\w+)\\s+(.*)
,转换为:

  • 1个或多个字母数字字符(捕获组,这是实例的名称),后跟
  • 1个或多个空白字符(制表符、空格、…),后跟
  • 1个或多个字母数字字符(捕获组,这是标签/目标),后跟
  • 1个或多个空白字符(制表符、空格、…),后跟
  • 0个或更多字符(这是数据)
数字
3,2,1
表示数据排在最后,目标排在第二位,名称排在第一位。正则表达式基本上确保了每行的格式如文档中所述:

test1 spam Wanna buy viagra?
test2 not-spam Hello, are you busy on Sunday?

CsvIterator
是一个糟糕的名称,因为该类实际上读取的不是逗号分隔的值,而是空格分隔的(空格、制表符等)值

以上答案中给出的解释太好了

然而,有一点遗漏了。regex行中输入实例的每个数据、标签和名称字段的正则表达式(regex)序列需要与输入文件中提供实例的方式一致,即,如果假设您提供名称作为第一个字段,数据作为输入文件中的第二个字段,标签作为第三个字段,然后必须首先提供名称的正则表达式,然后是数据的正则表达式,最后是标签的正则表达式。示例如下所示:

输入实例:Mail67(选项卡空间)TCC问题。您好,不知什么原因,老大师绘画部的管理员都无法从TCC获得信息。它似乎在JDE上运行,但在TCC上搜索时没有显示任何内容。您可以向f…(选项卡空间)公司提供的任何帮助或指导


CsvIterator参数:CsvIterator(新文件读取器(文件路径),“(\w+)\t(.*)\t(\w+)”,2,3,1)

这是一个很好的解释。它是否支持每个like-One和Rest-type分类器的多个标签?