public float[][] extract(int[] qterms, int[] docids, Feature[] features) throws Exception {
float[][] fvalues = new float[docids.length][features.length];
for(int d = 0; d < docids.length; d++) {
DocumentVector compDoc = documents.get(docids[d]);
int[][] positions = compDoc.decompressPositions(qterms);
computeFeatures(qterms, positions, compDoc.getDocumentLength(), features, fvalues[d]);
}
return fvalues;
}