Selon Emilie Laffray <emilie.laff...@gmail.com>:

> 2009/12/16 Etienne Chové <ch...@crans.org>
>
> > Bonjour,
> >
> > Frédéric Rodrigo ne postant pas l'annonce, je lui pique la place.
> >
> > Il a réalisé une succession de requêtes sql qui permettent de faire des
> > comparaisons basées sur soundex dans les champs name. J'e n'ai pas
> > regardé les requêtes, mais j'ai tout mis dans un backend pour voir ce
> > que ça donne :
> >
> > http://osmose.openstreetmap.fr/map/cgi-bin/index.py?ch=109-1
> >
> > Ca a l'air intéressant et plutôt pas mal dans beaucoup de cas. Je vous
> > laisse ragarder ce que ça donne. La première version travaillait dans
> > *_roads, mais à sa demande les requêtes se font dans *_line (donc tout
> > les ways, et pas simplement les highway).
> >
> > La nouvelle (avec les _line) version est en cours d'analyse, mais comme
> > tous les matins le serveur mouline les 60 backend. Vous pouvez pour le
> > moment regarder les résultat sur les highway.
> >
> >
> Hum, je ne suis pas sure qu'une requête SOUNDEX soit une bonne idée. SOUNDEX
> est base sur des phonèmes anglo saxons et n'est pas très adaptée a la langue
> française. De plus, la qualité dépend énormément des phonèmes utilisés et de
> savoir quelle version est utilisée. Soundex était une des raisons pour
> lesquels tu avais tellement de faux positif pour les contrôles aux aéroports
> américains: ils utilisaient une version de cette algorithme sur des langues
> qui n'étaient pas prévu pour afin de détecter potentiellement des homonymes.
> Si tu veux utiliser un algorithme plus indépendant, il vaut mieux utiliser
> double metaphone. SOUNDEX est douteux mais présent dans la quasi totalité
> des bases de données, tandis que double métaphone ne l'est pas.
> Dans une des mes précédentes boites, on avait utilise SOUNDEX pour améliorer
> la recherche sur des titres de film. On a vite retire cette fonctionnalité
> au vue des résultats, sans parler que l'on parle de films en langues
> anglaises.
>
> http://fr.wikipedia.org/wiki/Double_Metaphone

L'algo utilisé n'est pas le soundex original. C'est l'algorithme soundex2 en
version française. Le double metaphone de postgres donne un résultat sur 4
caractère, trop cours. Une autre possibilité est le metaphone (simple) qui donne
un résultat de longueur variable, mais j'y ai préfère le soundex2.

http://osmose.openstreetmap.fr/src/analyser_gis_soundex.py

Le principe :
- Calcule le soundex2 pour les parties du name (contenant un espace pour les
quels la taille est au moins de 3+4 et qui ne ressemble pas à des références).
- Compte les soundex2.
- Calcule la fréquence d'apparition de la typographie pour un soundex2 (en
pourcentage, pour les soundex2 présent au moins 20 fois).
- Si un soundex2 est typographié à plus de 80% de la même façon (forme forte)
alors propose de remplacer les typographies faibles (<20%) (pour les quels la
distance de levenshtein<=2)

Soundex2 : http://www-lium.univ-lemans.fr/~carlier/recherche/soundex.html#L3
Distance de Levenshtein : http://fr.wikipedia.org/wiki/Distance_de_Levenshtein

Par contre il y a effectivement beaucoup de faux positifs qui sont en grande
partie des problèmes de case ou de "-". Il faudrait peut être retirer ces
résultats et laisser ces problèmes à d'autres plug-in (toponymie...).

Fred

_______________________________________________
Talk-fr mailing list
Talk-fr@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-fr

Répondre à