Confronta le stringhe e assegna quelle più corrispondentiCIAO,
Un po' impegnativo (forse)
Sto tentando di abbinare i valori delle righe a un elenco di stringhe di esempio e desidero sapere quali elementi nell'elenco di esempi corrispondono maggiormente al valore della riga.
ecco un esempio di elenco
Stringhe_campione = { "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" };
Come trovare quali righe hanno il maggior numero di caratteri corrispondenti a una stringa di esempio e assegnare la stringa con più corrispondenza dall'elenco alla seconda colonna?
Eventuali suggerimenti?
Ecco il risultato finale che vorrei ottenere:

Grazie,
Automazione e scriptingRi: Confronta le stringhe e assegna quelle più corrispondentiNon è ovvio dalla tua domanda + post che stai cercando i caratteri più corrispondenti o la corrispondenza più vicina come stringa (due cose diverse con due soluzioni diverse?
Per le stringhe corrispondenti, uno di questi potrebbe aiutare lo script Modifica più breve e Scegli il più vicino (l'indice degli script non è in grado di ottenere il collegamento alla pagina della guida per questo).
Modificare:
Collegamento dalla guida JMP per identificare le differenze tra stringhe, linee o sequenze (jmp.com)
Ri: Confronta le stringhe e assegna quelle più corrispondenti@jthi Sto cercando la corrispondenza dell'armadio come stringa dall'elenco. Sono a conoscenza dell'indice dello script Shortest Edit, tuttavia sto cercando di capire come posso assegnare la stringa di corrispondenza più vicina dall'elenco di esempi che è ordinato in modo casuale
Ri: Confronta le stringhe e assegna quelle più corrispondentiQuali criteri posso utilizzare per determinare la migliore corrispondenza tra le stringhe? "Comune" nel SES? Puoi condividere un esempio?
Ri: Confronta le stringhe e assegna quelle più corrispondentiPenso che questo dipenda da cosa consideri "più abbinato". Alcuni esempi:
- PortX_Currents_5879_On quale è più vicino PortX_Curre_589_On o Port_Currents_587_On ?
- Port3_Currents_5879_On quale è più vicino Port3_Currents_587 o Port_Currents_587_On ?
e perché?
Ri: Confronta le stringhe e assegna quelle più corrispondenti- PortX_Currents_5879_On che è più vicino PortaX_Curre_589_On O Port_Currents_587_On ?
- Port3_Currents_5879_On che è più vicino Port3_Currents_587 O Port_Currents_587_On ?
Direi di considerare entrambi i casi per ciascuna stringa poiché corrispondono molto strettamente e quindi l'utente deciderà quale scegliere
Ri: Confronta le stringhe e assegna quelle più corrispondentiMolto probabilmente il tuo algoritmo non li considererebbe uguali. Se dovessi fare un'ipotesi, molti considererebbero la seconda opzione più vicina in quanto richiede meno modifiche. Per un controllo semplice utilizzando la distanza di modifica più breve() puoi semplicemente controllare gli inserimenti, le rimozioni e il numero di lettere modificate. Scegli Closest() potrebbe essere un metodo un po' più brutale in quanto potresti semplicemente consentirgli di utilizzare 9999 modifiche o qualcosa di simile.
Le mie soluzioni abbastanza rapide non sono d'accordo con la stringa Most Matched che hai fornito (vorrei solo verificare quanto è lunga la sequenza comune all'inizio)

Pochi link da leggere riguardo alla distanza di modifica
Se hai JMP18 potresti anche usare Python per il confronto della distanza delle stringhe (ma molto probabilmente i metodi di JMP sono più che sufficienti). Se ti permetti di utilizzare librerie non standard con Python, ottieni ancora più opzioni.
Ri: Confronta le stringhe e assegna quelle più corrispondentiDarò un'occhiata. Grazie Jarmo.
Hai creato manualmente le colonne ShorestEdit/ChooseCloset nello snippet sopra? In caso contrario, ti dispiace condividere la tua logica?
Grazie,
Ri: Confronta le stringhe e assegna quelle più corrispondentiTroppo lavoro provare a calcolare manualmente le corrispondenze più vicine, quindi ho utilizzato le funzioni che ho menzionato.
Scegliere il più vicino è molto semplice da implementare se controlli l'esempio dell'indice di scripting che consente le modifiche (il primo argomento è il tuo valore nella tabella, il secondo è l'elenco dei campioni e aumenta il numero massimo di modifiche se necessario).

Re: Confronta le stringhe e assegna la corrispondenza più altaEsegui un ciclo sull'elenco, esegui il calcolo utilizzando Shortest Edit Script (o scrivi un tuo algoritmo) per ciascuno dei valori, scegli quello con la corrispondenza migliore?