forked from Open-CT/openbrain
Refactor to LoadVectorFileBySpace().
This commit is contained in:
parent
3f5df04618
commit
41469019c2
|
@ -9,33 +9,20 @@ import (
|
|||
func (vectorset *Vectorset) LoadVectors(pathPrefix string) {
|
||||
path := util.GetUploadFilePath(fmt.Sprintf("%s%s", pathPrefix, vectorset.FileName))
|
||||
|
||||
rows := [][]string{}
|
||||
util.LoadSpaceFile(path, &rows)
|
||||
nameArray, dataArray := util.LoadVectorFileBySpace(path)
|
||||
|
||||
exampleVectors := []*Vector{}
|
||||
for i, row := range rows {
|
||||
if i == 0 {
|
||||
continue
|
||||
}
|
||||
|
||||
vectorData := []float64{}
|
||||
for _, token := range row[1:] {
|
||||
vectorData = append(vectorData, util.ParseFloat(token))
|
||||
for i := 0; i < 100; i++ {
|
||||
if i >= len(nameArray) {
|
||||
break
|
||||
}
|
||||
|
||||
vector := &Vector{
|
||||
Name: row[0],
|
||||
Data: vectorData,
|
||||
}
|
||||
if len(vector.Data) != vectorset.Dimension {
|
||||
panic(fmt.Errorf("invalid vector data length: %d, expected = %d", len(vector.Data), vectorset.Dimension))
|
||||
Name: nameArray[i],
|
||||
Data: dataArray[i],
|
||||
}
|
||||
|
||||
exampleVectors = append(exampleVectors, vector)
|
||||
|
||||
if len(exampleVectors) == 100 {
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
vectorset.Vectors = exampleVectors
|
||||
|
|
20
util/file.go
20
util/file.go
|
@ -6,7 +6,10 @@ import (
|
|||
"strings"
|
||||
)
|
||||
|
||||
func LoadSpaceFile(path string, rows *[][]string) {
|
||||
func LoadVectorFileBySpace(path string) ([]string, [][]float64) {
|
||||
nameArray := []string{}
|
||||
dataArray := [][]float64{}
|
||||
|
||||
file, err := os.Open(path)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
|
@ -19,11 +22,22 @@ func LoadSpaceFile(path string, rows *[][]string) {
|
|||
scanner.Buffer(buf, maxCapacity)
|
||||
i := 0
|
||||
for scanner.Scan() {
|
||||
if i == 0 {
|
||||
i += 1
|
||||
continue
|
||||
}
|
||||
|
||||
line := scanner.Text()
|
||||
|
||||
line = strings.Trim(line, " ")
|
||||
tokens := strings.Split(line, " ")
|
||||
*rows = append(*rows, tokens)
|
||||
nameArray = append(nameArray, tokens[0])
|
||||
|
||||
data := []float64{}
|
||||
for j := 1; j < len(tokens); j++ {
|
||||
data = append(data, ParseFloat(tokens[j]))
|
||||
}
|
||||
dataArray = append(dataArray, data)
|
||||
|
||||
i += 1
|
||||
}
|
||||
|
@ -31,4 +45,6 @@ func LoadSpaceFile(path string, rows *[][]string) {
|
|||
if err = scanner.Err(); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
return nameArray, dataArray
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue