1import { pipeline } from '@xenova/transformers';
2
3// Load the model
4const extractor = await pipeline(
5 'feature-extraction',
6 '/Users/timurceberda/Developer/telegram-ios-academy-foundation-pro/apps/miniapp/models/ios-vacancy-similarity-onnx',
7 { local_files_only: true }
8);
9
10// Get embeddings
11const vacancy1 = await extractor('iOS разработчик Swift UIKit');
12const vacancy2 = await extractor('Разработчик мобильных приложений iOS');
13
14// Calculate cosine similarity
15function cosineSimilarity(a, b) {
16 let dot = 0, normA = 0, normB = 0;
17 for (let i = 0; i < a.length; i++) {
18 dot += a[i] * b[i];
19 normA += a[i] * a[i];
20 normB += b[i] * b[i];
21 }
22 return dot / (Math.sqrt(normA) * Math.sqrt(normB));
23}
24
25const similarity = cosineSimilarity(vacancy1.data, vacancy2.data);
26console.log('Similarity:', similarity);
This model was fine-tuned on iOS developer vacancies from HH.ru
for improved similarity matching in the iOS vacancy aggregator app.