J'utilise le Distance Edit/Levenstein pour mesurer la similarité entre les mots. Contrairement à l'implémentation la plus simple, mes lettres ont des horodatages, disons des nombres d'échantillons N=0,1,2,...
Le problème auquel je suis confronté est que je peux obtenir différents chemins le long de la matrice des coûts qui aboutissent au même coût (minimal), et ces différents chemins sont associés à différentes chaînes cibles. Par exemple, si je mesure la distance entre la chaîne source aa
et la chaîne cible bab
et je suppose que la chaîne source commence à l'horodatage N=0, alors j'ai deux chemins avec le même coût de 2 (une addition et une substitution) :
- Ajouter
b
à N=-1, laissez le 1era
tel qu'il est, et remplacer le 2èmea
avec unb
. - Remplacer le 1er
a
avec unb
Laissez le 2èmea
tel qu'il est, et ajouterb
à N=2.
Alignés sur la ligne du temps, ces 2 résultats sont différents :
Time: ... -1 0 1 2 3 ...
Source: a a
Target1: b a b
Target2: b a b
Je dois savoir quand cela se produit, afin de pouvoir choisir entre les deux cibles possibles en fonction de certains critères. Existe-t-il un autre moyen que de tracer le chemin en cours de route et de garder la trace de tous les chemins possibles qui mènent au coût minimal ?
J'ai envisagé d'utiliser Distorsion temporelle dynamique Mais il semble que, puisque la matrice des coûts est initialisée à l'infini (sauf pour l'entrée [0,0]), la première étape consistera toujours à faire correspondre la première image de la cible à la première image de la source, ce qui fait que la cible commence au même moment que la source. De toute façon, en utilisant DTW, je dois toujours tracer tous les chemins menant au même coût minimal.
Toute aide et tout commentaire sont les bienvenus.