J'ai essayé de trouver une façon de détecter une série de fichiers. Par exemple: P>
Si un répertoire donné dispose des fichiers suivants: p>
Je voudrais obtenir le condensé la liste à quelque chose comme p>
Comment devrais-je continuer à détecter les groupes? P>
3 Réponses :
Voici une façon de résoudre ce problème, ce qui est plus efficace qu'une méthode de la force brute. P>
preg_replace ('/ \ d // g', clé de clé) code>) . li>
ul>
Vous aurez quelque chose comme $r1 = [anniversaire001 => anniversaire, anniversaire002 => anniversaire ...] code> p> p> p>
- Faites maintenant une autre matrice associative avec des clés qui sont des valeurs de la première matrice et de la valeur qui comptent. Incrémenter le compte quand vous avez déjà vu la clé. Li>
- À la fin, vous vous retrouverez avec un 2e tableau contenant les noms et les comptes, comme vous le souhaitez. Quelque chose comme
$ arr2 = [anniversaire => 2, ...] code> li>
ul>
Cela fonctionnerait si vous supposez que tous les jetons sémantiques sont égaux une fois que les chiffres sont dépouillés. Cela ne traiterait pas d'articles comme "mon anniversaire001.jpg" et "mybirthday002.jpg", mais un bon point de départ cependant.
Je suis absolument d'accord. Cependant, la question n'a pas été posée de cette façon et quiconque l'a modifiée pour inclure mon anniversaire et le grouper avec anniversaire001, anniversaire002 a considérablement changé la question considérablement. L'OP peut réellement vouloir regrouper cela en 2 groupes différents.
Oui, c'est à peu près exactement ce que je cherche. Ma principale préoccupation correspondait à la chaîne de préfixe. C'est un excellent point de départ. Merci.
J'ai roulé de cette modification ajoutant l'entrée "Mon anniversaire" - c'était hors de ligne.
Pour faire face à des choses comme "mon anniversaire", vous pouvez essayer d'utiliser la fonction Levenshtein code> pour calculer la distance entre les jetons et les jetons de groupe automatiquement avec une distance inférieure à un seuil pré-réglé.
J'avais commencé à descendre de cette voie, mais la question est devenue comment puis-je déterminer automatiquement ce seuil.
construire simplement un histogramme dont les touches sont modifiées par une regex:
C'est presque exactement la même chose que ma version, sauf en code.
Générez une gamme de mots comme "My" (Développement de ce tableau sera très important, "mon" est le seul dans votre exemple donné) et les enroulez de tous les noms de fichiers. Dessez tous les chiffres et la ponctuation, les extensions devraient également être longues à ce stade. Une fois que cela est fait, mettez tous les résultats uniques dans un tableau. Vous pouvez ensuite utiliser cela comme source de mots-clés assez fiable pour rechercher tous les retardataires que l'autre traitement n'a pas attrapé. P>
Remarque: cette réponse est basée sur une version révisée de la question qui a depuis été renvoyée. Cette version comprenait un fichier nommé "mon anniversaire.jpg" qui était censé être regroupé avec les autres fichiers "anniversaire".
Je pense que c'est une excellente question à moins que le seul algorithme soit de la force brute de nature.