func (stwv *StringToWordVector) normalizeInstance(inst *data.Instance, firstCopy int) { //fmt.Println("firstcopy ", firstCopy) //fmt.Println("avgdoclength ", stwv.avgDocLength) docLength := float64(0) if stwv.avgDocLength < 0 { panic("Average document length not set.") } // fmt.Println("valores: ", inst.RealValues()) // Compute length of document vector for j := 0; j < len(inst.RealValues()); j++ { if inst.Indices()[j] >= firstCopy { docLength += inst.RealValues()[j] * inst.RealValues()[j] } } docLength = math.Sqrt(docLength) // Normalize document vector for j := 0; j < len(inst.RealValues()); j++ { if inst.Indices()[j] >= firstCopy { val := inst.RealValues()[j] * stwv.avgDocLength / docLength inst.AddRealValuesIndex(j, val) if val == 0 { fmt.Println("Setting value %d to zero", inst.Indices()[j]) j-- } } } }