package com.spbsu.crawl.learning.features; import com.spbsu.crawl.bl.helpers.CategoricalFeaturesMap; import gnu.trove.set.TIntSet; /** * Created by noxoomo on 17/07/16. */ public class CategoricalFeature implements Feature { private final CategoricalFeaturesMap index; private final TIntSet values; private final String name; public CategoricalFeature(final CategoricalFeaturesMap index, final TIntSet values, final String name) { this.index = index; this.values = values; this.name = name; } @Override public int dim() { return index.dictSize(); } @Override public int at(int i) { if (i >= dim()) { throw new IllegalArgumentException("Error: index >= dim()"); } return values.contains(i) ? 1 : 0; } @Override public String name() { return name; } }