Use health portfolio in explained tender matching
This commit is contained in:
@@ -23,6 +23,8 @@ export function profilTerimleri(userProfile) {
|
||||
const ekle = (liste, kaynak, agirlik) => (liste || []).map((t) => ({ terim: norm(t), ham: String(t).trim(), kaynak, agirlik }));
|
||||
const hepsi = [
|
||||
...ekle(c.extractedProducts, 'ürün', 1.0),
|
||||
...ekle((c.healthPortfolio || []).map(item=>item.group).filter(Boolean), 'portföy ürün grubu', 1.0),
|
||||
...ekle((c.healthPortfolio || []).map(item=>[item.brand,item.model].filter(Boolean).join(' ')).filter(Boolean), 'portföy marka/model', 1.0),
|
||||
...ekle(c.ihaleKonulari, 'ihale konusu', 1.0),
|
||||
...ekle(c.extractedSectors, 'sektör', 0.6),
|
||||
...ekle(c.extractedCertifications, 'sertifika', 0.3),
|
||||
@@ -52,7 +54,7 @@ export function uyumSkoru(tender, terimler) {
|
||||
{ ad: 'teklif cetveli', metin: norm([...(tender.kalemler || []), ...(tender.items || []).map((i) => i.ad)].join(' | ')), agirlik: 1.1 },
|
||||
{ ad: 'OKAS/CPV', metin: norm(tender.cpvLabel), agirlik: 0.7 },
|
||||
{ ad: 'sektör', metin: norm(tender.sektor), agirlik: 0.5 },
|
||||
{ ad: 'ilan metni', metin: norm(String(tender.aciklama || '').slice(0, 3000)), agirlik: 0.6 },
|
||||
{ ad: 'ilan metni', metin: norm(tender.aciklama), agirlik: 0.6 },
|
||||
];
|
||||
let puan = 0;
|
||||
const nedenler = [];
|
||||
@@ -79,6 +81,7 @@ export function uyumSkoru(tender, terimler) {
|
||||
export function profilMetni(userProfile) {
|
||||
const c = userProfile?.scrapedCapabilities || {};
|
||||
const parca = [
|
||||
c.healthPortfolio?.length ? 'Firma portföyü (beyan): ' + c.healthPortfolio.map(item=>[item.group,item.brand,item.model].filter(Boolean).join(' ')).filter(Boolean).join(', ') : '',
|
||||
c.ozet,
|
||||
c.extractedSectors?.length ? 'Sektör: ' + c.extractedSectors.join(', ') : '',
|
||||
c.extractedProducts?.length ? 'Ürünler: ' + c.extractedProducts.join(', ') : '',
|
||||
|
||||
Reference in New Issue
Block a user