Créer un algorithme de correspondance personnalisé - 7.3

Rapprochement de données à l'aide des outils Talend

Version
7.3
Language
Français
Product
Talend Big Data Platform
Talend Data Fabric
Talend Data Management Platform
Talend Data Services Platform
Talend MDM Platform
Talend Real-Time Big Data Platform
Module
Studio Talend
Content
Création et développement > Systèmes tiers > Composants Data Quality > Composants de rapprochement > Composants de rapprochement continu
Création et développement > Systèmes tiers > Composants Data Quality > Composants de rapprochement > Composants de rapprochement de données
Création et développement > Systèmes tiers > Composants Data Quality > Composants de rapprochement > Composants de rapprochement flou
Création et développement > Systèmes tiers > Composants Data Quality > Composants de rapprochement > Composants de rapprochement utilisant l'apprentissage automatique
Gouvernance de données > Systèmes tiers > Composants Data Quality > Composants de rapprochement > Composants de rapprochement continu
Gouvernance de données > Systèmes tiers > Composants Data Quality > Composants de rapprochement > Composants de rapprochement de données
Gouvernance de données > Systèmes tiers > Composants Data Quality > Composants de rapprochement > Composants de rapprochement flou
Gouvernance de données > Systèmes tiers > Composants Data Quality > Composants de rapprochement > Composants de rapprochement utilisant l'apprentissage automatique
Qualité et préparation de données > Systèmes tiers > Composants Data Quality > Composants de rapprochement > Composants de rapprochement continu
Qualité et préparation de données > Systèmes tiers > Composants Data Quality > Composants de rapprochement > Composants de rapprochement de données
Qualité et préparation de données > Systèmes tiers > Composants Data Quality > Composants de rapprochement > Composants de rapprochement flou
Qualité et préparation de données > Systèmes tiers > Composants Data Quality > Composants de rapprochement > Composants de rapprochement utilisant l'apprentissage automatique
Last publication date
2024-02-07

Le composant tRecordMatching vous permet d'utiliser un algorithme de rapprochement personnalisé afin d'obtenir les résultats dont vous avez besoin.

Un algorithme de mise en correspondance personnalisé est écrit manuellement et stocké dans un fichier .jar (archive Java). Talend fournit un exemple de fichier .jar sur la base duquel vous pouvez créer votre propre fichier.

Procédure

  1. Dans Eclipse, effectuez un check out sur le projet SVN test.mydistance :
  2. Dans ce projet, accédez à la classe Java nommée MyDistance.Java : https://github.com/Talend/tdq-studio-se/tree/master/sample/test.mydistance/src/main/java/org/talend/mydistance.
  3. Ouvrez ce fichier contenant le code suivant :
    package org.talend.mydistance;
    
    import org.talend.dataquality.record.linkage.attribute.AbstractAttributeMatcher;
    import org.talend.dataquality.record.linkage.constant.AttributeMatcherType;
    
    /**
     * @author scorreia
     * 
     * Example of Matching distance.
     */
    public class MyDistance extends AbstractAttributeMatcher {
    
        /*
         * (non-Javadoc)
         * 
         * @see org.talend.dataquality.record.linkage.attribute.IAttributeMatcher#getMatchType()
         */
        @Override
        public AttributeMatcherType getMatchType() {
            // a custom implementation should return this type AttributeMatcherType.custom
            return AttributeMatcherType.CUSTOM;
        }
    
        /*
         * (non-Javadoc)
         * 
         * @see org.talend.dataquality.record.linkage.attribute.IAttributeMatcher#getMatchingWeight(java.lang.String,
         * java.lang.String)
         */
        @Override
        public double getWeight(String arg0, String arg1) {
            // Here goes the custom implementation of the matching distance between the two given strings.
            // the algorithm should return a value between 0 and 1.
    
            // in this example, we consider that 2 strings match if their first 4 characters are identical
            // the arguments are not null (the check for nullity is done by the caller)
            int MAX_CHAR = 4;
            final int max = Math.min(MAX_CHAR, Math.min(arg0.length(), arg1.length()));
            int nbIdenticalChar = 0;
            for (; nbIdenticalChar < max; nbIdenticalChar++) {
                if (arg0.charAt(nbIdenticalChar) != arg1.charAt(nbIdenticalChar)) {
                    break;
                }
            }
            if (arg0.length() < MAX_CHAR && arg1.length() < MAX_CHAR) {
                MAX_CHAR = Math.max(arg0.length(), arg1.length());
            }
            return (nbIdenticalChar) / ((double) MAX_CHAR);
    }
  4. Dans ce fichier, saisissez le nom de la classe de l'algorithme personnalisé que vous créez afin de remplacer le nom par défaut. Le nom par défaut est MyDistance et vous pouvez le trouver dans la ligne : public class MyDistance implements IAttributeMatcher.
  5. À la place de l'algorithme par défaut dans le fichier, saisissez l'algorithme que vous souhaitez créer. L'algorithme par défaut se présente comme suit :
            int MAX_CHAR = 4;
            final int max = Math.min(MAX_CHAR, Math.min(arg0.length(), arg1.length()));
            int nbIdenticalChar = 0;
            for (; nbIdenticalChar < max; nbIdenticalChar++) {
                if (arg0.charAt(nbIdenticalChar) != arg1.charAt(nbIdenticalChar)) {
                    break;
                }
            }
            if (arg0.length() < MAX_CHAR && arg1.length() < MAX_CHAR) {
                MAX_CHAR = Math.max(arg0.length(), arg1.length());
            }
            return (nbIdenticalChar) / ((double) MAX_CHAR);
    
  6. Sauvegardez vos modifications.
  7. Via Eclipse, exportez ce nouveau fichier .jar.

Résultats

Cet algorithme personnalisé est prêt à être utilisé par le composant tRecordMatching.