Bonjour à tous,
Je travaille en ce moment sur la classification de messages mail : comment les ranger en discussions, sans passer par l'en-tête "in reply to" qui a des lacunes.
La solution que j'ai trouvée est de tronquer les sujets des messages à 15 caractères, en ayant enlever tous les caractères supplémentaires (-, ., ... etc) et de les comparer 2 à deux, selon 2 paramètres : leur date d'émission et leur distance de Levenshtein (qui calcule une distance selon les caractères en commun).
Avant je fonctionnais sur une base de données, donc il m'était facile de faire un ORDER BY sujetTronqué, dateEnvoi puis de calculer ensuite une distance de Levenshtein et un écart de date entre un message et son suivant.
Maintenant je veux travailler en "tout objet" car c'est beaucoup moins lourd mais je rencontre le problème suivant.
J'ai choisi d'utiliser les Map de JAVA qui associent une clé à une valeur. Le principe est donc de trier d'abord les messages selon leur sujet tronqué, puis de remplir la Map selon <sujet tronqué, tableau de messages ayant le même sujet tronqué>. Le problème est que les Map n'acceptant pas de doublons, je ne sais plus quoi faire des messages ayant le même sujet tronqué, mais pas la même distance de Levenshstein, ou une date trop lointaine ...
D'où ma question : avez vous d'autres idées d'algorithme permettant de faire ce que je veux ?
Partager