4
我剛開始在槌子中使用SimpleTagger類。我的印象是它期望二進制功能。我想要實現的模型具有正整數值的特徵,我想知道如何在槌子中實現它。另外,我聽說如果模型有意義,非二進制特徵需要進行標準化。我將不勝感激關於如何做到這一點的任何建議。處理槌子中CRF的整數值特徵
ps。是的,我知道有一個專門的木槌郵件列表,但我已經等了將近一天的時間,才能讓我的訂閱獲得批准才能發佈。我只是匆忙。
我剛開始在槌子中使用SimpleTagger類。我的印象是它期望二進制功能。我想要實現的模型具有正整數值的特徵,我想知道如何在槌子中實現它。另外,我聽說如果模型有意義,非二進制特徵需要進行標準化。我將不勝感激關於如何做到這一點的任何建議。處理槌子中CRF的整數值特徵
ps。是的,我知道有一個專門的木槌郵件列表,但我已經等了將近一天的時間,才能讓我的訂閱獲得批准才能發佈。我只是匆忙。
現在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
等,雖然這似乎有些單調乏味。
我沒有使用SimpleTagger的木槌,但你可以嘗試轉換你的整數加權特徵爲二進制。你可以將一個'x'特性分解爲'n'個代表桶值的新的二進制特性。除了'x'的權重所屬的桶之外,它們全都是假的。我不知道這會有多好。 – ealdent 2009-11-09 12:48:56