Sto provando a sviluppare un algoritmo python per verificare se una stringa potrebbe essere un'abbreviazione per un'altra parola. Per esempioControlla se una stringa è una possibile abbreviazione di un nome
fck
è una partita perfc kopenhavn
perché corrisponde ai primi caratteri della parola.fhk
non corrisponde.fco
non dovrebbe corrispondere afc kopenhavn
perché nessuno irl avrebbe abbreviato FC Kopenhavn come FCO.irl
corrisponde ain real life
.ifk
è una partita perifk goteborg
.aik
è una corrispondenza perallmanna idrottskluben
.aid
è una partita perallmanna idrottsklubben
. Questo non è un nome un'abbreviazione vera squadra, ma credo che è difficile escludere a meno che non si applica la conoscenza specifica del dominio su come abbreviazioni svedese si formano.manu
corrisponde amanchester united
.
E 'difficile descrivere le regole esatte dell'algoritmo, ma spero che la mia esempi mostrano quello che sto cercando.
Aggiornamento Ho fatto un errore nel mostrare le stringhe con le lettere corrispondenti maiuscole. Nello scenario reale, tutte le lettere sono minuscole, quindi non è così facile come basta controllare quali lettere sono maiuscole.
Così si vuole vedere se la stringa corrisponde solo le lettere maiuscole a quelle corde? Se è così, prova a scrivere qualcosa per quello che fa: prende solo le lettere maiuscole delle tue cose complete e le schiaffa in un dizionario (come le chiavi con la versione completa come valori), e poi è facile cercarlo. Così com'è, non hai davvero fatto una domanda ... –
La cosa migliore che potrei pensare è estrarre tutte le lettere maiuscole, convertire la stringa breve in maiuscolo e poi fare test di uguaglianza. –
Semi-OT: ManU può essere visto come un insulto per i fan di ManUnited, sebbene sia ampiamente usato come abbrev in paesi non inglesi. –