Работа с целочисленными функциями для CRF в молотке

Я только начинаю использовать класс SimpleTagger в молотке. У меня сложилось впечатление, что он ожидает двоичные функции. Модель, которую я хочу реализовать, имеет положительные целочисленные функции, и мне интересно, как реализовать это в молотке. Кроме того, я слышал, что недвоичные функции должны быть нормализованы, если модель должна иметь смысл. Буду признателен за любые предложения о том, как это сделать.

пс. да, я знаю, что есть специальный список рассылки, но я уже почти сутки ожидаю подтверждения моей подписки, чтобы можно было публиковать там. Я просто спешу.

1 ответ

Что ж, сейчас прошло 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и т. д., хотя это кажется утомительным.

Другие вопросы по тегам