gpt4 book ai didi

machine-learning - Mallet 中 csvIterator 的参数是什么意思?

转载 作者:行者123 更新时间:2023-11-30 08:27:46 32 4
gpt4 key购买 nike

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

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

最佳答案

来自documentation :

This iterator, perhaps more properly called a Line Pattern Iterator, reads through a file and returns one instance per line, based on a regular expression.

If you have data of the form

[name] [label] [data]

您感兴趣的电话是

CsvIterator(java.io.Reader input, java.lang.String lineRegex, 
int dataGroup, int targetGroup, int uriGroup)

第一个参数是读取数据的方式,例如文件读取器或字符串读取器。第二个参数是正则表达式,用于从读取器读取的每一行中提取数据。在您的示例中,您的 (\\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 是一个糟糕的名字,因为该类读入的实际上不是逗号分隔的值,而是空格分隔的(空格、制表符等)值。

关于machine-learning - Mallet 中 csvIterator 的参数是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27927556/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com