(text: string)
| 1 | export const vectorize = (text: string): number[] => { |
| 2 | const tokens = text.toLowerCase().split(/\s+/) |
| 3 | const vec = new Array(128).fill(0) |
| 4 | |
| 5 | for (let i = 0; i < tokens.length; i++) { |
| 6 | const token = tokens[i] |
| 7 | for (let j = 0; j < token.length; j++) { |
| 8 | const code = token.charCodeAt(j) % 128 |
| 9 | vec[code] += 1 |
| 10 | } |
| 11 | } |
| 12 | |
| 13 | const mag = Math.sqrt(vec.reduce((sum, val) => sum + val * val, 0)) |
| 14 | return mag > 0 ? vec.map(v => v / mag) : vec |
| 15 | } |
no outgoing calls
no test coverage detected