J'ai quelques codes uniques qui sont générés à partir de chaînes de caractères (ex: noms d'hôtes de site Web) dans divers composants indépendants de mon application. Ces codes sont destinés à être utilisés uniquement par des machines, donc je voudrais les garder aussi courtes que possible.Meilleur algorithme pour raccourcir les mots anglais
L'algorithme ci-dessous serait appliqué à chaque mot de la chaîne. Les mots de sortie seraient concaténés avec un tiret pour générer le code unique.
The current algorithm I have used:
- Skip word if length is less than 6
- Leave first character as is
- Remove every wowel in the word from the second character onwards
- architectural digest eu => archtctrl-DGST-eu
- pied arizona Magazine => Arzn-fthlls-MGZN
Y at-il une meilleure façon de réduire un mot anglais laissant aussi reconnaissable que possible à un lecteur humain?
La sortie doit être déterministe et produire la même version abrégée lorsqu'elle est exécutée sur la même entrée.
Un bon algorithme devrait également minimiser le nombre de collisions pour des mots de même orthographe.
Merci pour la réponse. La compression est une bonne option mais illisible, aussi je n'ai jamais besoin d'inverser le code. Convenir que l'approche phonétique est très lourde. Besoin de trouver un terrain d'entente. :) Notons également que lorsque plusieurs mots sont présents, la probabilité d'un conflit diminue. – Rohit