Comparez les chaînes et attribuez celles qui correspondent le mieuxSalut,
Un peu difficile (peut-être)
J'essaie de faire correspondre les valeurs de ligne à un exemple de liste de chaînes et je souhaite savoir quels éléments de la liste d'échantillons correspondent le plus à la valeur de ligne.
voici un exemple de liste
Sample_strings = { "Port3_Currents_587", "Port1_Volt_8_Off", "PortC_Volt_12", "PortX_Curre_589_On", "Curren_Port_1280_On", "Currents_5sd_On_Port1", "Port_Currents_587_On" } ;
Comment trouver les lignes contenant le plus de caractères correspondant à un exemple de chaîne et attribuer la chaîne la plus correspondante de la liste à la deuxième colonne ?
Aucune suggestion?
Voici le résultat final que j'aimerais obtenir :

Merci,
Automatisation et scriptsRe : Comparer les chaînes et attribuer celles qui correspondent le mieux@jthi Je recherche la correspondance du placard sous forme de chaîne dans la liste. Je connais l'index du script d'édition le plus court, mais j'essaie de comprendre comment puis-je attribuer la chaîne de correspondance la plus proche de la liste d'échantillons qui est triée de manière aléatoire.
Re : Comparer les chaînes et attribuer celles qui correspondent le mieuxQuels critères puis-je utiliser pour déterminer la meilleure correspondance parmi les chaînes ? « Commun » dans le SES ? Pouvez-vous partager un exemple ?
Re : Comparer les chaînes et attribuer celles qui correspondent le mieuxJe pense que cela dépend de ce que vous considérez comme "le plus adapté". Quelques exemples :
- PortX_Currents_5879_On qui est le plus proche de PortX_Curre_589_On ou Port_Currents_587_On ?
- Port3_Currents_5879_On lequel est le plus proche de Port3_Currents_587 ou Port_Currents_587_On ?
et pourquoi?
Re : Comparer les chaînes et attribuer celles qui correspondent le mieux- PortX_Currents_5879_On qui est plus proche PortX_Curre_589_On ou Port_Currents_587_On ?
- Port3_Currents_5879_On qui est plus proche Port3_Courants_587 ou Port_Currents_587_On ?
Je dirais de considérer les deux cas pour chaque chaîne car ils correspondent très étroitement et l'utilisateur décidera alors lequel choisir
Re : Comparer les chaînes et attribuer celles qui correspondent le mieuxIl est fort probable que votre algorithme ne les considère pas comme égaux. Si je devais deviner, beaucoup considéreraient la deuxième option comme plus proche car elle nécessite moins de modifications. Pour une vérification simple en utilisant la distance d'édition la plus courte (), vous pouvez simplement vérifier les insertions, les suppressions et le nombre de lettres modifiées. Choisir Closest() pourrait être une méthode un peu plus brutale, car vous pourriez simplement lui permettre d'utiliser 9999 modifications ou quelque chose de similaire.
Mes solutions assez rapides ne sont pas d'accord avec la chaîne la plus correspondante que vous avez fournie (je voudrais simplement vérifier la durée de la séquence commune au début)

Quelques liens à lire concernant la distance d'édition
Si vous disposez de JMP18, vous pouvez également utiliser Python pour comparer la distance des chaînes (mais les méthodes de JMP sont probablement plus que suffisantes). Si vous vous autorisez à utiliser des bibliothèques non standard avec Python, vous obtenez encore plus d'options.
Re : Comparer les chaînes et attribuer celles qui correspondent le mieuxJ'y jetterais un œil. Merci Jarmo.
Avez-vous créé manuellement les colonnes ShorestEdit/ChooseCloset dans l'extrait ci-dessus ? Sinon, cela vous dérangerait-il de partager votre logique ?
Merci,
Re : Comparer les chaînes et attribuer celles qui correspondent le mieuxTrop de travail pour essayer de calculer manuellement les correspondances les plus proches, j'ai donc utilisé les fonctions que j'ai mentionnées.
Choisir le plus proche est très facile à mettre en œuvre si vous vérifiez l'exemple d'index de script qui autorise les modifications (le premier argument est votre valeur dans le tableau, le deuxième est votre liste d'échantillons et augmentez le nombre maximum de modifications si nécessaire).

Re: Comparer les chaînes et attribuer la plus grande correspondanceParcourez votre liste, effectuez un calcul à l'aide du script d'édition le plus court (ou écrivez votre propre algorithme) pour chacune des valeurs, choisissez celle qui correspond le mieux ?