![HCL Commerce Version 9.1.8.0 or later](../../base/images/9180plus.png)
Perfiles de procesador de lenguaje natural (NLP)
Se utiliza un perfil de Procesador de lenguaje natural (NLP) para controlar el flujo de preprocesamiento de los términos de búsqueda antes de ejecutar una consulta de Elasticsearch. El perfil es un archivo .json y se almacena en su contenedor de tiempo de ejecución de consultas.
Puede encontrar el archivo HCL_NLPProfile.json predeterminado en el directorio resources\profiles\nlp del tiempo de ejecución de la consulta. También se puede crear un perfil de PNL a través del punto final /profiles REST y se almacena dentro del nodo “nlpprofiles” de Zookeeper. El punto final /profiles permite un nuevo parámetro de consulta opcional, profileTypecon valores de Search
o NLP
para diferenciar el perfil. Search
es la opción predeterminada si no se proporciona este parámetro.
- Una lista de clases de proveedor. Estas clases ayudan a preprocesar el término de búsqueda. Para obtener más información sobre las clases de proveedores, consulte Referencia de clase de proveedor .
- Una lista de clasificaciones de NLP que anularán las clasificaciones predeterminadas en el tiempo de ejecución de la consulta.
- Una sección de prioridad de eliminación de término de búsqueda, que se utiliza para definir la secuencia en la que se eliminan los términos de búsqueda.
{
"profileName": "HCL_NLPProfile",
"provider": {
"PartNumber": "com.hcl.commerce.search.internal.expression.provider.SearchNLPPartNumberProviderHelper",
"BlankSpace": "com.hcl.commerce.search.internal.expression.provider.SearchNLPWhiteSpaceProviderHelper",
"CurrenySymbol": "com.hcl.commerce.search.internal.expression.provider.SearchNLPCurrencySymbolProviderHelper",
"ExcludeSearchTerm": "com.hcl.commerce.search.internal.expression.provider.SearchNLPExcludedTermProviderHelper",
"STA": "com.hcl.commerce.search.internal.expression.provider.SearchNLPSTAExpansionProviderHelper",
"MultiWordSearchTerm": "com.hcl.commerce.search.internal.expression.provider.SearchNLPMultiwordTermProviderHelper",
"LowerCase": "com.hcl.commerce.search.internal.expression.provider.SearchNLPLowerCaseProviderHelper",
"PriceRangeSeparator": "com.hcl.commerce.search.internal.expression.provider.SearchNLPPriceRangeSeparatorProviderHelper",
"DMM": "com.hcl.commerce.search.internal.expression.provider.SearchNLPDMMProviderHelper",
"SpecialCharacter": "com.hcl.commerce.search.internal.expression.provider.SearchNLPSpecialCharacterProviderHelper",
"MultiWordPriceFilter": "com.hcl.commerce.search.internal.expression.provider.SearchMultiwordFilterProviderHelper",
"Stopword": "com.hcl.commerce.search.internal.expression.provider.SearchNLPStopwordProviderHelper",
"WordToNumber": "com.hcl.commerce.search.internal.expression.provider.SearchNLPWordToNumberProviderHelper",
"PriceFilter": "com.hcl.commerce.search.internal.expression.provider.SearchNLPPriceFilterProviderHelper",
"POS_NER": "com.hcl.commerce.search.internal.expression.provider.SearchNLPPOSAndNERProviderHelper",
"Color": "com.hcl.commerce.search.internal.expression.provider.SearchNLPColorMMProviderHelper"
},
"classification": {},
"termDroppingPriority": {
"1": "FILTER",
"2": "MEASUREMENT",
"3": "BRAND",
"4": "COLOR",
"5": "ADJECTIVE",
"6": "CATEGORY",
"7": "NOUN"
}
}
Creación o actualización de un perfil NLP
POST https://server:port/search/resources/api/v2/documents/profiles/HCL_NLPProfile?profileType=NLP
Cómo el servicio de consultas encuentra el perfil de NLP
El tiempo de ejecución de consultas puede cargar los detalles de configuración del perfil de NLP desde el índice de la tienda en tiempo de ejecución, o en respuesta a una llamada a través de la API de REST de consultas. Si no se proporcionan los detalles de configuración, se volverá al perfil NLP de HCL predeterminado. El servicio de consulta realiza los pasos siguientes para buscar el nombre del perfil NLP.
- El servicio de consultas comprobará el perfil de NLP de la configuración regional de la tienda. Si se encuentra, este perfil se cargará desde Zookeeper.
- Si no se configura ningún perfil NLP para la configuración regional de la tienda, el servicio de consultas buscará la configuración regional base a partir del código de idioma de la configuración regional de la tienda y buscará un nombre de perfil para esa configuración regional base. Si se encuentra uno, este perfil se cargará desde Zookeeper. La configuración regional básica puede ser cualquiera de "en_US", "es_ES", "fr_FR", "de_DE" o "zh_CN".
- Si no se ha configurado ningún perfil NLP para la base local, el servicio de consulta buscará el nombre de perfil NLP predeterminado para la tienda que está configurada en la tabla STORECONF. Si se encuentra, este perfil se cargará desde Zookeeper.
- Si no se configura ningún perfil NLP predeterminado en la tabla STORECONF, el servicio de consultas recurrirá al perfil NLP predeterminado.
Manejo automático de errores de búsqueda
Antes de la versión HCL Commerce 9.1.8.0, si no hay resultados, los términos de búsqueda se eliminarán de la lista de búsqueda, de izquierda a derecha y de uno en uno. Ahora puede especificar qué token se elimina del término de búsqueda cuando no hay resultados. En el perfil NLP, la sección "termDroppingPriority" detalla la prioridad según la cual los tokens se eliminan del término de búsqueda. Después de eliminar una señal, el proceso realiza otra llamada con el término de búsqueda actualizado. Si se encuentra un resultado, el servicio de consultas devuelve el resultado; de lo contrario, según la configuración, se elimina otro token del término de búsqueda. Si está utilizando el perfil NLP predeterminado, la lógica de descarte se aplicará en el orden siguiente.
- "filtro": Eliminará el filtro de precios del término de búsqueda.
- Measurement Eliminará los detalles de medida del término de búsqueda.
- Brand Eliminará el nombre de marca del término de búsqueda.
- COLOR: Eliminará el nombre de color del término de búsqueda.
- ADJETIVO: Eliminará el adjetivo del término de búsqueda.
- Categoría Eliminará el nombre de categoría del término de búsqueda.
- NOUN Eliminará nombres del término de búsqueda.
Clasificación de perfil NLP
Durante la ejecución de la consulta, la clasificación de perfil NLP altera temporalmente la clasificación que el servicio de consultas ha analizado a partir de datos de índice o del modelo de datos NLP predeterminado.
Por ejemplo, considere un caso en el que la palabra “manzana” se clasifica como BRAND_NAME por la base del servicio de consultas en los datos del índice. Si ahora desea clasificar “manzana” como categoría, este cambio se puede configurar en la sección de clasificación de perfil NLP.
Referencia de clase de proveedor
Las clases de proveedor utilizadas en el perfil tienen las funciones siguientes.
Proveedor | Nombre de la clase | Usage |
---|---|---|
PartNumber | com.hcl.commerce.search.internal.expression.provider.SearchNLPPartNumberProviderHelper |
Hace coincidir el término de búsqueda de entrada con los patrones de número de pieza. Si coincide, realice una búsqueda de un número de pieza. El resto de las clases ayudantes no se ejecutarán. |
blank_space | com.hcl.commerce.search.internal.expression.provider.SearchNLPWhiteSpaceProviderHelper |
Si hay más de dos espacios en blanco seguidos, reemplácelos con un solo espacio en blanco. |
CurrenySymbol | com.hcl.commerce.search.internal.expression.provider.SearchNLPCurrencySymbolProviderHelper |
Si el término de búsqueda contiene un filtro de precio con símbolo de moneda, el símbolo de moneda se eliminará del término de búsqueda. |
ExcludeSearchTerm | com.hcl.commerce.search.internal.expression.provider.SearchNLPExcludedTermProviderHelper |
Elimine el término excluido del término de búsqueda. |
STA | com.hcl.commerce.search.internal.expression.provider.SearchNLPSTAExpansionProviderHelper |
Realiza la expansión y sustitución de la asociación de términos de búsqueda (STA) en el momento de la consulta en el servicio de consulta. |
MultiWordSearchTerm | com.hcl.commerce.search.internal.expression.provider.SearchNLPMultiwordTermProviderHelper |
Realice una verificación de la categoría de varias palabras, el nombre de la marca, el valor del atributo, el nombre del color si está presente, luego agréguelo a la lista respectiva. |
- minúscula | com.hcl.commerce.search.internal.expression.provider.SearchNLPLowerCaseProviderHelper |
Convertir término de servidor en minúsculas. |
PriceRangeSeparator | com.hcl.commerce.search.internal.expression.provider.SearchNLPPriceRangeSeparatorProviderHelper |
Compruebe si hay términos de búsqueda que contengan un filtro de rango de precios con “–”. Si es así, sustituya "-" por el separador específico de la configuración regional. P. ej.: en – to, es – a, zh - 至 , etc. |
DMM | com.hcl.commerce.search.internal.expression.provider.SearchNLPDMMProviderHelper |
Compruebe si el término de búsqueda contiene detalles de la dimensión y, a continuación, analice el término de búsqueda para el emparejador de dimensiones. |
SpecialCharacter | com.hcl.commerce.search.internal.expression.provider.SearchNLPSpecialCharacterProviderHelper |
Si el término de búsqueda contiene un carácter especial, añada ese token a la lista de nombres. |
MultiWordPriceFilter | com.hcl.commerce.search.internal.expression.provider.SearchMultiwordFilterProviderHelper |
Compruebe el filtro de varias palabras en el término de búsqueda. A continuación, sustituya el espacio por NNNN para que el siguiente procesador identifique el término como una sola palabra. |
Palabra frecuente | com.hcl.commerce.search.internal.expression.provider.SearchNLPStopwordProviderHelper |
Elimine del término de búsqueda las palabras IGNORE_TERM marcadaos con el filtro de configuración. |
WordToNumber | com.hcl.commerce.search.internal.expression.provider.SearchNLPWordToNumberProviderHelper |
Convierta la palabra a su formato numérico equivalente. |
Filtro de precios | com.hcl.commerce.search.internal.expression.provider.SearchNLPPriceFilterProviderHelper |
Compruebe los términos de búsqueda con filtro de precio con varias palabras junto con NNNN. |
POS_NER | com.hcl.commerce.search.internal.expression.provider.SearchNLPPOSAndNERProviderHelper |
Realice el etiquetado POS y la extracción NER. Comprobación de NOUN, CATEGORY, BRAND_NAME, ADJECTIVE, ATTRIBUTE_VALUE etc. A continuación, añádalo a la lista respectiva. |
Color | com.hcl.commerce.search.internal.expression.provider.SearchNLPColorMMProviderHelper |
Recupere los detalles de la familia de colores para la base del emparejador de colores en el nombre del color ingresado en el término de búsqueda. |