MCPcopy Create free account
hub / github.com/astercloud/aster / tokenize

Function tokenize

pkg/evals/evals.go:180–206  ·  view source on GitHub ↗

tokenize 将文本拆分为简单的词汇集合,用于词汇相似度计算。

(text string, minLen int)

Source from the content-addressed store, hash-verified

178
179// tokenize 将文本拆分为简单的词汇集合,用于词汇相似度计算。
180func tokenize(text string, minLen int) map[string]bool {
181 text = strings.ToLower(text)
182 var tokens []string
183 var cur strings.Builder
184
185 flush := func() {
186 if cur.Len() >= minLen {
187 tokens = append(tokens, cur.String())
188 }
189 cur.Reset()
190 }
191
192 for _, r := range text {
193 if unicode.IsLetter(r) || unicode.IsDigit(r) {
194 cur.WriteRune(r)
195 } else {
196 flush()
197 }
198 }
199 flush()
200
201 result := make(map[string]bool, len(tokens))
202 for _, t := range tokens {
203 result[t] = true
204 }
205 return result
206}

Callers 1

ScoreMethod · 0.85

Calls 3

LenMethod · 0.65
ResetMethod · 0.65
StringMethod · 0.45

Tested by

no test coverage detected