Refactor to LoadVectorFileBySpace().

This commit is contained in:
Haifeng Luo 2022-04-10 21:51:42 +08:00
parent 3f5df04618
commit 41469019c2
2 changed files with 24 additions and 21 deletions

View File

@ -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

View File

@ -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
}