C'est pas vraiment de l'algo, mais je sais pas où poster. Je code une fonction de recherche à la main, les données sont en UTF-8. Et je voudrais savoir s'il est possible d'avoir un truc qui regroupe tous les accents avec les caractères classiques les plus proches. Je m'explique: Désir --> deviendrait Desir, car "é" est proche de "e" mais aussi dans d'autres langues ñaño --> nano, car "ñ" est proche de "n" Doğuş --> Dogus, car "ğ" est proche de "g" et "ş" de s. En gros il me faut un fichier texte qui regroupe les similitudes de ce genre avec toutes les lettres du monde entier. |
Il y a une table de translitération dans GNU iconv. Elle est sous LGPL ou GPL (à vérifier). |
C'est pour faire quoi ? est-ce que tu veux aussi transformer œ en oe ? est-ce que tu transformes ö en o ou en oe ? Forum Cultures du monde — forum littéraire Membrane fondatrice de la confrérie des artistes flous. L'univers est-il un dodécaèdre de Poincaré ? (``·\ powaaaaaaaaa ! #love# |
Je veux qu'en tapant "horen" on puisse tomber sur "hören" par exemple, comme le fait google quoi. |
En PHP, j'utilise une fonction assez simple (je ne sais pas si elle est exhaustive) qu'on retrouve assez souvent : function noacc($text)
{
return strtr($text, "ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ","AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy");
} 12, rue des Brumeries disponible Nous sommes de bons jardiniers et yaronet est un merveilleux jardin. (Hippopotame) |
ben non c'est pas exhaustif du tout il manque plein de trucs genre ẫ ^^ Forum Cultures du monde — forum littéraire Membrane fondatrice de la confrérie des artistes flous. L'univers est-il un dodécaèdre de Poincaré ? (``·\ powaaaaaaaaa ! #love# |
(y a ni Y tréma ni ẫ en latin1, et je pense pas qu'il ait la prétention d'énumérer tout unicode par contre il en manque même en latin1, genre Ð ou surtout Ñ ^^ « The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais) |
Ah oui, tiens, bizarre que le ñ ait été oublié... 12, rue des Brumeries disponible Nous sommes de bons jardiniers et yaronet est un merveilleux jardin. (Hippopotame) |
Ah oui c'est pas mal ca.. C'est un bon début disons.. En fait pour que la recherche soit insensible à la casse, je fais un mb_strtolower à l'insertion et à la recherche, donc je m'en fous des majuscules.. à moins que je perde de l'information ainsi? PS & Edit: il manque aussi les lettres turques du genre de l'exemple que j'ai mis |
Voilà les tables de la glibc: http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/localedata/locales/?cvsroot=glibc (les fichiers commençant par translit_*). La glibc est sous LGPL (2.1 ou supérieure). Tu peux utiliser la fonction iconv de la GNU libiconv ou de la glibc, ou l'exécutable iconv, pour les utiliser sans bidouiller (-f UTF-8 -t ASCII//TRANSLIT). |
ok merci |
La j'crois que tu as la meilleure solution. la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille. - Fondateur de Ti-Gen -: http://www.tigen.org - Membre du Groupe Orage Studio -: http://oragestudio.free.fr/ - Mon site perso -: http://tisofts.free.fr Projets TI68K en cours: GFA-Basic = http://www.tigen.org/gfabasic Arkanoid. PolySn |
./6 > ben je pensais qu'il voulait tous les diacritiques possibles sur les caractères latins ^^ Forum Cultures du monde — forum littéraire Membrane fondatrice de la confrérie des artistes flous. L'univers est-il un dodécaèdre de Poincaré ? (``·\ powaaaaaaaaa ! #love# |
On a eu exactement la même problématique, et on m'a conseillé d'utiliser ca : http://www.icu-project.org/userguide/Transform.html C'est un soft généric, pas de liste en interne, ca a l'air puisssant. Perso j'y comprend pas grand chose, tout ce que je sais c'est que ca marche en utilisant ca en java : private static Transliterator transliterator = Transliterator.getInstance("NFD; [:Nonspacing Mark:] Remove; NFC");
et ca existe aussi en C : http://www.icu-project.org/download/ http://www.hibnet.org Bonduelle, partenaire officiel de la Constitution Européenne™ |
hibou (./13) : Sachant que ça dépend quand même d'une DLL de 8 Mo, je dirais plutôt qu'y a pas mal de données "en interne" « The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais) |
ca a l'air pas mal aussi, mais je vais pas chercher à comprendre toutes les fonctionnalités de ce truc, c'est clair... quoique.. quand il faut le faire, faut le faire |
Pour ceux que ça interresse, i lexiste une vraie extension pear pour PHP de transliteration qui est assez puissante et plus propre que le strtr de ./4 : http://derickrethans.nl/translit.php |
C'est EXACTEMENT ca. |