gpt4 book ai didi

nlp - 在槌中处理 CRF 的整数值特征

转载 作者:行者123 更新时间:2023-12-01 05:46:23 25 4
gpt4 key购买 nike

我刚刚开始在槌中使用 SimpleTagger 类。我的印象是它需要二进制功能。我想要实现的模型具有正整数值特征,我想知道如何在 mallet 中实现它。另外,我听说如果要使模型有意义,则需要对非二进制特征进行归一化。我将不胜感激有关如何做到这一点的任何建议。

附:是的,我知道有一个专门的槌邮件列表,但我已经等了将近一天才能让我的订阅获得批准才能在那里发帖。我只是赶时间。

最佳答案

嗯,现在是 6 年后。如果您不再着急,可以查看 Java API 来创建实例。一个最小的例子:

private Instance createInstance(LabelAlphabet labelAlphabet){
// observations and labels should be equal size for linear chain CRFs
TokenSequence observations = new TokenSequence();
LabelSequence labels = new LabelSequence(labelAlphabet, n);

observations.add(createToken());
labels.add("idk, some target or something");

return new Instance(
observations,
label,
"myInstance",
null
);
}

private Token createToken() {
Token token = new Token("exampleToken");

// Note: properties are not used for computing (I think)
token.setProperty("SOME_PROPERTY", "hello");

// Any old double value
token.setFeatureValue(featureVal, 666.0);

// etc for more features ...

return token;
}


public static void main(String[] args){
// Note the first arg is false to denote we *do not* deal with binary features
InstanceList instanceList = new InstanceList(new TokenSequence2FeatureVectorSequence(false, false));

LabelAlphabet labelAlphabet = new LabelAlphabet();
// Converts our tokens to feature vectors
instances.addThruPipe(createInstance(labelAlphabet));
}

或者,如果您想继续使用 SimpleTagger ,只需定义二元特征,如 HAS_1_LETTER , HAS_2_LETTER等,虽然这看起来很乏味。

关于nlp - 在槌中处理 CRF 的整数值特征,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1696652/

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