package com.spbsu.crawl.learning; import com.spbsu.commons.math.vectors.Vec; import com.spbsu.commons.math.vectors.impl.vectors.ArrayVec; import com.spbsu.crawl.learning.features.Feature; import java.util.List; /** * Created by noxoomo on 17/07/16. */ public class State { private final List<Feature> features; public State(final List<Feature> features) { this.features = features; } public List<Feature> features() { return features; } int dim() { int dim = 0; for (Feature feature : features) { dim += feature.dim(); } return dim; } Vec vectorize() { final int dim = dim(); final Vec vecFeatures = new ArrayVec(dim); int offset = 0; for (Feature feature : features) { for (int i = 0; i < feature.dim(); ++i) { vecFeatures.set(offset++, feature.at(i)); } } return vecFeatures; } }