NODEDC_1C/llm_normalizer/backend/dist/services/counterpartyRoleHeuristics.js

47 lines
1.7 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.isLikelyFinancialInstitutionCounterparty = isLikelyFinancialInstitutionCounterparty;
exports.counterpartyRoleHintForName = counterpartyRoleHintForName;
const FINANCIAL_INSTITUTION_PATTERNS = [
/(?:^|[\s"«(,-])банк(?:$|[\s"»),.-])/u,
/сбербанк/u,
/(?:^|[\s"«(,-])сбер(?:$|[\s"»),.-])/u,
/(?:^|[\s"«(,-])втб(?:$|[\s"»),.-])/u,
/альфа[\s-]*банк/u,
/тинькофф/u,
/(?:^|[\s"«(,-])т[\s-]*банк(?:$|[\s"»),.-])/u,
/газпромбанк/u,
/росбанк/u,
/райффайзен/u,
/совкомбанк/u,
/промсвязьбанк/u,
/(?:^|[\s"«(,-])псб(?:$|[\s"»),.-])/u,
/(?:^|[\s"«(,-])мкб(?:$|[\s"»),.-])/u,
/ак[\s-]*барс/u,
/уралсиб/u,
/юникредит/u,
/почта[\s-]*банк/u,
/(?:^|[\s"«(,-])открытие(?:$|[\s"»),.-])/u,
/кредитн(?:ая|ый|ое|ые)\s+организац/u
];
function normalizeCounterpartyRoleText(value) {
return String(value ?? "")
.toLowerCase()
.replace(/ё/g, "е")
.replace(/[._]+/g, " ")
.replace(/\s+/g, " ")
.trim();
}
function isLikelyFinancialInstitutionCounterparty(value) {
const normalized = normalizeCounterpartyRoleText(value);
if (!normalized) {
return false;
}
return FINANCIAL_INSTITUTION_PATTERNS.some((pattern) => pattern.test(normalized));
}
function counterpartyRoleHintForName(value) {
return isLikelyFinancialInstitutionCounterparty(value)
? "bank_or_financial_institution"
: "ordinary_counterparty";
}