Add léxicos en español para el clasificador de preferencias
This commit is contained in:
60
mvp/b2c/src/lib/voice/lexicon.ts
Normal file
60
mvp/b2c/src/lib/voice/lexicon.ts
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
import type { Calidad, CategoriaMaterial, TipoReforma } from '@/budget/types';
|
||||||
|
|
||||||
|
export const CALIDAD_LEXICON: { calidad: Calidad; keywords: string[] }[] = [
|
||||||
|
{ calidad: 'premium', keywords: ['premium', 'lujo', 'alta gama', 'gama alta', 'lo mejor', 'calidad maxima', 'exclusivo'] },
|
||||||
|
{ calidad: 'basica', keywords: ['basico', 'economico', 'barato', 'sencillo', 'lo justo', 'ajustado'] },
|
||||||
|
{ calidad: 'media', keywords: ['normal', 'estandar', 'equilibrado', 'medio'] },
|
||||||
|
];
|
||||||
|
|
||||||
|
export const MATERIAL_LEXICON: { categoria: CategoriaMaterial; keywords: string[] }[] = [
|
||||||
|
{ categoria: 'suelo', keywords: ['suelo', 'tarima', 'parquet', 'porcelanico', 'ceramico', 'madera', 'vinilo'] },
|
||||||
|
{ categoria: 'pared', keywords: ['azulejo', 'alicatado', 'baldosa', 'microcemento', 'gres'] },
|
||||||
|
{ categoria: 'pintura', keywords: ['pintura', 'pintar', 'color de pared'] },
|
||||||
|
{ categoria: 'mobiliario', keywords: ['mueble', 'muebles', 'armario', 'encimera', 'mobiliario'] },
|
||||||
|
];
|
||||||
|
|
||||||
|
export const ESTRUCTURAL_LEXICON: string[] = [
|
||||||
|
'tirar muro', 'tirar el muro', 'quitar pared', 'tirar pared', 'abrir la cocina',
|
||||||
|
'mover el bano', 'mover sanitarios', 'cambiar la distribucion', 'derribar', 'tirar tabique',
|
||||||
|
];
|
||||||
|
|
||||||
|
export const ESTILO_LEXICON: string[] = [
|
||||||
|
'nordico', 'industrial', 'minimalista', 'rustico', 'moderno', 'clasico', 'mediterraneo',
|
||||||
|
'tonos calidos', 'tonos frios', 'blanco mate', 'madera clara', 'colores neutros',
|
||||||
|
];
|
||||||
|
|
||||||
|
export const ELEMENTOS_LEXICON: Record<
|
||||||
|
TipoReforma,
|
||||||
|
{ key: string; label: string; importe: number; keywords: string[] }[]
|
||||||
|
> = {
|
||||||
|
cocina: [
|
||||||
|
{ key: 'isla_cocina', label: 'Isla de cocina', importe: 120000, keywords: ['isla'] },
|
||||||
|
{ key: 'peninsula', label: 'Península', importe: 80000, keywords: ['peninsula'] },
|
||||||
|
{ key: 'electrodomesticos_integrados', label: 'Electrodomésticos integrados', importe: 150000, keywords: ['electrodomesticos integrados', 'integrados', 'encastrados'] },
|
||||||
|
],
|
||||||
|
bano: [
|
||||||
|
{ key: 'ducha_obra', label: 'Ducha de obra', importe: 90000, keywords: ['ducha de obra', 'plato a ras', 'plato de obra'] },
|
||||||
|
{ key: 'doble_lavabo', label: 'Doble lavabo', importe: 45000, keywords: ['doble lavabo', 'dos senos', 'doble seno'] },
|
||||||
|
],
|
||||||
|
salon: [],
|
||||||
|
comedor: [],
|
||||||
|
integral: [
|
||||||
|
{ key: 'isla_cocina', label: 'Isla de cocina', importe: 120000, keywords: ['isla'] },
|
||||||
|
],
|
||||||
|
otro: [],
|
||||||
|
};
|
||||||
|
|
||||||
|
export const AJUSTE_LEXICON: {
|
||||||
|
label: string;
|
||||||
|
tipo: 'fijo' | 'factor';
|
||||||
|
valor: number;
|
||||||
|
motivo: string;
|
||||||
|
keywords: string[];
|
||||||
|
}[] = [
|
||||||
|
{ label: 'Encimera de piedra natural', tipo: 'fijo', valor: 60000, motivo: 'mención de mármol/cuarzo/granito en la llamada', keywords: ['marmol', 'cuarzo', 'granito', 'silestone', 'piedra natural'] },
|
||||||
|
{ label: 'Domótica / iluminación inteligente', tipo: 'fijo', valor: 40000, motivo: 'mención de domótica en la llamada', keywords: ['domotica', 'inteligente', 'smart'] },
|
||||||
|
];
|
||||||
|
|
||||||
|
export function normalizeText(s: string): string {
|
||||||
|
return s.toLowerCase().normalize('NFD').replace(/[̀-ͯ]/g, '');
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user