Ajout de classifications et de noms personnalisés à NLP Name-Entity-Recognition (NER)

La reconnaissance d'entité de nom (NER) est l'une des techniques de prétraitement de texte les plus courantes utilisées dans le traitement du langage naturel (NLP). La NER est utilisée dans de nombreuses zones de l'intelligence artificielle (IA), y compris le traitement du langage naturel (NLP) et l'apprentissage machine. En plus des entités par défaut pour NER dans le processeur de langage naturel CoreNLP, vous pouvez également ajouter des noms et des classifications spécifiques à la langue personnalisée pour NER. Le nom et la classification personnalisés pour NER peuvent être configurés dans le nœud de filtre de ZooKeeper. De nouveaux noms et classifications sont ajoutés à l'aide de la méthode de requête POST. Les noms et classifications existants sont mis à jour à l'aide de la méthode de requête PATCH.

nœuds finaux

Les nœuds finaux pour ce service sont les suivants :
http://data_environment_hostname:30920/search/resources/api/v2/configuration?nodeName=filter&envType=auth&locale=en_US
https://data_environment_hostname:30921/search/resources/api/v2/configuration?nodeName=filter&envType=auth&locale=en_US
Incluez votre configuration dans la syntaxe JSON dans le corps de la requête. Par exemple, le code suivant définit les balises NER pour la catégorie "Robes".
{
	“Dresses” : “CATEGORY”,
	“Versatil” : “BRAND_NAME”,
	“Size” : “ATTRIBUTE_NAME”,
	“XL” : “ATTRIBUTE_VALUE”,
	“an” : “IGNORE_TERM”,
	“One and half” : “TO_NUMBER~1.5”,
	“below” : “FILTER_LTE~1”,
	“above” : “FILTER_GTE~1”,
	“red” : “COLOR”,
	“inch” : “UOM”
}
Note: La méthode de requête PATCH pour le paramètre régional en_US et la méthode de requête POST pour le paramètre régional non en_US sont utilisées pour introduire de nouveaux noms et classifications.

Balises NER par défaut

HCL Commerce Search est fourni avec un ensemble par défaut de balises NER. Celles-ci doivent vous permettre de classer des mots pour la plupart des situations.
CATEGORY
Mappe aux zones d'index liées à la catégorie dans l'index Produit.
BRAND_NAME
mappe à la zone indexée du nom du fabricant dans l'index Produit.
ATTRIBUTE_VALUE
mappe aux zones indexées NLP Adjective dans l'index Produit.
ATTRIBUTE_NAME
mappe au nom d'attribut indexé dans l'index Produit.
IGNORE_TERM
supprime les termes correspondants de l'expression de recherche de termes.
TO_NUMBER
mappe aux zones indexées numériques NLP dans l'index Produit.
FILTER_GTE~1
définit une condition de filtre de plage supérieure ou égale à l'argument donné. Cet argument est le terme qui suit immédiatement le modèle correspondant.
FILTER_LTE~1
définit une condition de filtre de plage supérieure ou égale à l'argument donné. Cet argument est le terme qui suit immédiatement le modèle correspondant.
UOM
mappe aux zones indexées de l'unité de mesure MatchMaker dans l'index Produit.
COLOR
Correspond aux zones indexées de la famille de couleurs MatchMaker dans l'index Produit.
Note: De nouveaux noms et classifications sont ajoutés à l'aide de la méthode de requête PATCH pour le paramètre régional en_US. La méthode de requête POST est utilisée pour les paramètres régionaux non en_US.
HCL Commerce Version 9.1.11.0 or later

Balises NER personnalisées

Si les balises NER par défaut ne couvrent pas tous vos besoins, vous pouvez définir vos propres balises. Pour ce faire, ajoutez un nouveau mappage de balise NER via le nœud final /configuration, à l'aide de la méthode Patch et d'un corps de requête contenant une définition de balise au format JSON. Chaque requête étend un objet NLPSearchFieldMapping et vous ne pouvez mapper qu'à des zones d'index de produit.

Procédure

  1. Définissez votre nouvelle balise de mappage. Dans l'exemple ci-dessous, la balise de mappage est SELLER.
    {
    	"extendedconfiguration": {
    		"configgrouping": [
    			{
    				"name": "NLPSearchFieldMapping",
    				"property": {
    					"name": "NLPFieldsDetail",
    					"value": "[{\"NERTag\":\"SELLER\",\"IndexRawFieldName\":\"seller.raw\",\"IndexNormalizedFieldName\":\"seller.normalized\",\"FieldLevelLemmatization\":\"false\", \"BoostFactor\":\"100.0\"}]"
    				}
    			}
    		]
    	}
    }
    La balise de mappage SELLER utilise cinq balises. Sur ces cinq balises, trois sont obligatoires et les deux autres sont facultatives et ont des valeurs par défaut.
    NERTag
    Nom de la balise NER utilisée pour classer le jeton (VENDEUR).
    IndexRawFieldName
    Zone à utiliser comme zone d'agrégation lors de l'apprentissage des données personnalisées et de la zone brute lors de la recherche du terme. (seller.raw).
    IndexNormalizedFieldName
    Zone à utiliser comme zone normalisée lors de la recherche du terme (seller.normalized).
    FieldLevelLemmatization
    Lors de l'apprentissage et de la recherche, appliquez la lemmatisation sur la zone si elle est définie sur true. La valeur par défaut est false.
    BoostFactor
    La valeur de recherche du facteur de stimulation est utilisée pour appliquer pour la stimulation. La valeur par défaut est 100.0.
    Note: Les trois premières balises sont obligatoires et aucune ne consignera une erreur et continuera avec d'autres étiquettes. Cela peut avoir un impact sur le résultat de la recherche.
  2. Mettez à jour le nouveau mappage de balise NER à l'aide de la méthode de requête PATCH pour le nœud final /configuration. Ajoutez votre nouveau mappage en tant que corps de la requête.
    PATCH -http://dataQueryHost:dataQueryPort/search/resources/api/v2/configuration?nodeName=component&envType=auth
  3. Après avoir mis à jour le mappage, redémarrez le service Query.

Résultat

Votre balise NER personnalisée peut désormais être utilisée dans le traitement NLP.