Salut
avez-vous une idée comment faire ?
existe-t-il un outil qui permettrait d'indiquer la langue d'un texte ?
je m'explique :
j'ai plusieurs milliers de textes (fichiers ou strings), certains en anglais, certains en français, allemand, espagnol, italien, russe, japonais, etc.
y'aurait-il moyen pour un script/un programme de dire :
- le texte 1 est en français, le 2 en anglais, le 3 en français, le 4 en allemand, le 5 en russe, etc.
ou par tout ou rien :
- le texte 1 est en anglais, le texte 2 est pas en anglais, le 3 est en anglais, le 4 est en anglais, le 5 est pas en anglais, etc.
j'avais l'idée de faire une analyse statistique de chaque bout de texte par rapport à des dictionnaires de mots, mots pluriels et conjugués y compris, avec autant de dictionnaires que de langues possibles,
existe-t-il des dictionnaires sous forme de base de données, de fichiers textes ?
je sens que c'est assez difficile comme problème
# Re: trouver la langue d'un texte
Posté par Julien Duponchelle (site web personnel) . Évalué à 1.
[^] # Re: trouver la langue d'un texte
Posté par Jack ze . Évalué à 2.
je pourrais vérifier la présence de mots basique de la langue, comme :
- français : je tu il le la me un une suis mais or
- anglais : I you the he am but
- allemand : ich du bin ein was
- italien : si ...... (connais pas l'italien...)
- espagnol : yo uno por soy
- hollandais : ?
- suédois : ? ....
ça en fait des langues, rien qu'en Europe.....
[^] # Re: trouver la langue d'un texte
Posté par Lebas Sébastien . Évalué à 4.
http://linuxfr.org/comments/357202.html(...)
A priori la technique la plus efficace serait celle avec les 3-grammes ... Mais peut être pas la plus simple à mettre en oeuvre (surtout pour avoir les 3-grammes spécifiques à la langue)
Enfin, il n'y a pas de technique miracle : tu aura toujours des incertitudes ...
Ce que je ferais :
Trouver les ~10 mots les plus utilisés dans chaque texte, et regarder dans un dico de chaque langue s'ils y apparaissent.
Tu peut affiner en les comparant principalement avec les mots-outils de chaque langue (style les pronoms, déterminants, ...)
[bref, la loi de Zipf est ton amie]
Tu peut avoir des outils (GPL) ici :
http://monge.univ-mlv.fr/~unitex/(...)
Y compris des dictionnaires sur plusieurs langues ...
# Re: trouver la langue d'un texte
Posté par Troy McClure (site web personnel) . Évalué à 1.
ls /usr/dict
[^] # Re: trouver la langue d'un texte
Posté par Jean-Marc Spaggiari . Évalué à 1.
ls: /usr/dict: No such file or directory
cube:~#
cube:/# tree -d |grep dict
| |-- dictionaries-common
:(
[^] # Re: trouver la langue d'un texte
Posté par plagiats . Évalué à 1.
linux.words ooo/ words@
[^] # Re: trouver la langue d'un texte
Posté par Troy McClure (site web personnel) . Évalué à 1.
lojban-common - Commonly used wordlists for the lojban language
miscfiles - Dictionaries and other interesting files.
witalian - The Italian dictionary words for /usr/share/dict/.
wswedish - The Swedish dictionary.
xletters - Type falling words before they land
dictionaries-common - Common utilities for spelling dictionary tools
dictionaries-common-dev - Developer tools and Policy for spelling dictionary tools
iamerican - An American English dictionary for ispell
ibritish - A British English dictionary for ispell
ispell - International Ispell (an interactive spelling corrector)
scowl - Spell-Checker Oriented Word Lists
wamerican - American English dictionary words for /usr/share/dict
wamerican-large - American English dictionary words for /usr/share/dict
wamerican-small - American English dictionary words for /usr/share/dict
wbritish - British English dictionary words for /usr/share/dict
wbritish-large - British English dictionary words for /usr/share/dict
wbritish-small - British English dictionary words for /usr/share/dict
wbulgarian - The Bulgarian dictionary words for /usr/share/dict
wcanadian - Canadian English dictionary words for /usr/share/dict
wcanadian-large - Canadian English dictionary words for /usr/share/dict
wcanadian-small - Canadian English dictionary words for /usr/share/dict
wcatalan - Catalan dictionary words for /usr/share/dict
wdanish - The Danish dictionary / wordlist
wdutch - List of Dutch words in new (August 1996) spelling.
wenglish - American English dictionary words for /usr/share/dict
wfaroese - The Faroese dictionary / wordlist
wfinnish - A small Finnish dictionary for /usr/share/dict
wfrench - French dictionary words for /usr/share/dict
wgalician-minimos - Wordlist for Galician (minimos)
wngerman - New German orthography wordlist
wnorwegian - Norwegian wordlist
wogerman - The old German dictionary for /usr/share/dict
wpolish - Polish dictionary words for /usr/share/dict
wspanish - The Spanish dictionary words for /usr/share/dict
wswiss - Swiss (German) orthography wordlist
(ok c'etait /usr/share/dict)
# Re: trouver la langue d'un texte
Posté par Frédéric Péters (site web personnel) . Évalué à 5.
$ apt-cache show mguesser
(...)
mguesser is a standalone part of libudmsearch (a core of mnogo search
engine http://mnogosearch.org(...)) which allows to guess text charsets
and languages.
.
Homepage: http://www.mnogosearch.org/guesser/(...)
[^] # Re: trouver la langue d'un texte
Posté par Jack ze . Évalué à 2.
en fait je travaille sur un indexage de textes avec htdig,
et je ne voulais pas indexer certaines langues pour ne pas perturber l'index.
J'ai commencé à m'intéresser à mnoGoSearch mais je débute.
J'avais pensé aussi que je pourrais créer un dictionnaire de synonymes universels :
dans htdig il y a un fichier de synonymes et on met tous les synonymes sur la même ligne, pratique, donc je peux mettre tous les synonymes pour chaque langue, tout sur une même ligne
en fait séparer les langues c'est absurde, je m'en rend compte maintenant ;
l'indexation doit se faire sur des concepts, la langue n'est que l'interface......
[^] # Re: trouver la langue d'un texte
Posté par Jack ze . Évalué à 1.
color colour
czar tsar tzar
hemaglobin haemaglobin hemoglobin haemoglobin
rien ne m'empêcherait de rajouter :
hemaglobin haemaglobin hemoglobin haemoglobin hémoglobine
plus toutes les variantes en allemand, espagnol....
là où ça coince ce sont les mots qui s'écrivent pareil mais avec des sens différents.....
genre :
car (en) = voiture
car (fr) = bus, voire la conjonction "car"
enfin bon, à mon avis la meilleure solution reste encore de :
1) déterminer la langue
2) indexer le texte selon le dictionnaire de cette langue
ou alors :
2a) traduire grosso-modo les mots litigieux comme "car"/"car"
2b) indexer selon un dico commun qui regroupe les synonymes de toutes les langues
je crois que htdig ne peut pas indexer en une passe selon deux ou plusieurs dictionnaires, il faut indexer une deuxième fois sur un autre dictionnaire, ce qui crée un deuxième index.....
[^] # Re: trouver la langue d'un texte
Posté par Axioplase ıɥs∀ (site web personnel) . Évalué à -4.
Il faut que tu arriveras à laisser les solutions dialectiques et sinusoidales de la pseudo facilité.
Bref, si j etais toi, je ferais de la linguistique avant de vouloir m attaquer à un si vaste probleme, ou alors j ecrirai à Larry Wall (inventeur de Perl et linguiste)
[^] # Re: trouver la langue d'un texte
Posté par Harry Cover . Évalué à 3.
En fait, tu te réfères probablement à l'hypothèse de Sapir-Whorf (http://www.zompist.com/lang21.html#29(...) ), dont on sait qu'elle est très douteuse.
D'ailleurs la FAQ l'exprime clairement: However, the strong form of the hypothesis is not now widely believed. The conceptual systems of one language, after all, can be explained and understood by speakers of another.
[^] # Re: trouver la langue d'un texte
Posté par Axioplase ıɥs∀ (site web personnel) . Évalué à 2.
Quant au concepts, c ets justement parceque j etudie des langues asiatiques que j en parle. Certes, on peut approcher de l expression du concept, mais ce n est pas parcequ on peut l ecrire noir sur blanc qu il a un sens pour le lecteur (et je ne parle pas de comprehension syntaxique ou grammaticale, ni meme de culture, mais je stipule bien que le lecteur peut tres bien etre incapable de discerner le concept)
[^] # Re: trouver la langue d'un texte
Posté par Harry Cover . Évalué à 1.
[^] # Re: trouver la langue d'un texte
Posté par Axioplase ıɥs∀ (site web personnel) . Évalué à 1.
[^] # Re: trouver la langue d'un texte
Posté par Jack ze . Évalué à 2.
mais je crois que là tu m'as scotché :-)
c'est quoi le "Il faut que tu arriveras à laisser les solutions dialectiques et sinusoidales de la pseudo facilité"
c'est tiré d'un sketche de "Les inconnus" ? :-)
OK, on va rester simple et pragmatique,
je ne veux pas non plus réinventer un moteur de la complexité de celui de Google.
je m'en tiens pour l'instant aux principales langues européennes, que je classe dans 4 grandes catégories (j'ai bon ?):
- latines (français/canadien, italien, espagnol, portuguais/brésilien)
- anglo-saxonnes (anglais/américain, allemand, autrichien, hollandais, flamant)
- nordiques (suédois, norvégien, finlandais, danois)
- slaves d'alphabets non-cyrilliques (polonais, tchèque, slovaque, roumain, hongrois, slovène, bulgare?)
donc pas de cyrillique, pas d'arabe, pas de chinois/japonais/coréen, pas de sanscrit, pas de hiéroglyphes et pas de langue "Elvish" :-)
je reste sur les 26 lettres de l'alphabet et leurs dérivées accentuées...
ou alors si je faisais ça pour toutes les langues, faudrait que je pense linguistique globale.... et que je code en Unicode, et là j'ai pas fini, effectivement......
enfin merci du conseil, je vais aller creuser l'aspect linguistique de Perl....
[^] # Re: trouver la langue d'un texte
Posté par med . Évalué à 2.
[^] # Re: trouver la langue d'un texte
Posté par Jack ze . Évalué à 2.
impressionnant le nombre de langues et de familles/sous-familles
tiens, curieux, tout à la fin de la page :
Autres familles ou orphelines, à classer :
Nahuatl
Maya
Basque ........
Hatti
hourrite
[^] # Re: trouver la langue d'un texte
Posté par Axioplase ıɥs∀ (site web personnel) . Évalué à 1.
Et pour les langues, fallait preciser... Grace a mes connaissances en langues asiatiques, je me suis fait moinsser...
Et je ne crois pas que le "esset" (le double "s" en allemand d il y a 5 ans) soit une des 26 lettres accentuée de notre alphabet....
Et tu vas devoir passer par unicode je pense..Ca sera ca de gagner si qq1 reprend ton prgramme par la suite.
[^] # Re: trouver la langue d'un texte
Posté par Harry Cover . Évalué à 2.
C'est surtout que tu exprimes des contre-vérités basées sur des connaissances trop spécifiques (terme plus gentil pour dire "insuffisantes").
Pour ma part je ne moinsse pas pour ça, mais je préfère rectifier chaque fois que c'est possible, pour éviter la propagation d'idées fausses (toujours facile quand elles sont exprimées avec un ton péremptoire sur un site où les spécialistes du sujet ne sont pas légion).
# Re: trouver la langue d'un texte
Posté par Pascal Terjan (site web personnel) . Évalué à 3.
Je crois que l'idée c'est que si tu ajoute ton texte a un long texte de la meme la,gue le gzip obtenu sera pas bcp plus gros que le gzip original vu que tu auras surtout des chaines dejà présentes alors que si tu ajoutes à une autre langue ca compressera moins bien le morceau ajouté. Mais bon je me souviens en fait plus de comment ils faisaient :)
[^] # Re: trouver la langue d'un texte
Posté par G. R. (site web personnel) . Évalué à 3.
Il explique comment les algorithmes de compressions sans pertes peuvent être utilisés pour calculer des distances entre les éléments (distance entre deux textes par exemple) et ainsi mettre au point des méthodes de classements automatiques.
Le principe est simple.
soit A et B deux textes. On calcule zip(A), zip(B) puis zip(A+B) où zip() est un algorithme de compression adapté à la nature de A et B.
La distance de similarité entre A et B est donc d(A, B) = zip(A) + zip(B) - zip(A+B).
Avec cette notion de distance, on peut alors classer l'ensemble des textes.
Il est ainsi possible de classer les textes par langues et ainsi déterminer avec une marge d'erreur faible la langue des textes.
Attention toutefois. Coment classer un texte en Français qui contient de larges citations en Anglais ?
[^] # Re: trouver la langue d'un texte
Posté par Pascal Terjan (site web personnel) . Évalué à 1.
# Re: trouver la langue d'un texte
Posté par Pol . Évalué à 2.
Si je me souviens bien, il suffisait de lui donner un corpus de texte représentatif de la langue target, et il générait des tables statistiques de référence. La reconnaissance était efficace en général à partir d'une 20aine de caractères (le sujet des email posait souvent un pb !)
# Re: trouver la langue d'un texte
Posté par squall . Évalué à 1.
J'ai pas essaye sur des textes de differentes langues, mais le fonctionnement est le suivant, tu prends un texte qui servira de reference (un par langue) puis tu compare ton nouveau texte avec ton model et ca te donne des valeurs notamment la complexite du model, qui devrait te permettre d'etablir la langue. Ceci est au conditionelle car je ne l'ai pas teste, mais etant donne le fonctionnement il n'y a pas de raison que ca ne marche pas. En plus vu qu'il fonctionne par module, tu peux utiliser selon ton besoin.
Sous windows, j'ai vu un truc qui s'appelle Monkey, mais c'est plutot chaud a trouver, enfin une bonne recherche te le donne. Ca te donne une valeur d'entropie, que je pense il est possible d'interpreter car elle devrait etre differente selon les langues.
Enfin la technique avec les algos de compression me semble une res bonne idee car elle se base sur le meme principe. Au changement de langue, la compression devrait etre moins bonne, donc ca te confirme si les textes sont bien de la meme langue. Reste a verifier les resultats.
# Re: trouver la langue d'un texte
Posté par pinky . Évalué à 3.
Quelques liens:
http://www.divmod.org/Home/Projects/Reverend/index.html(...)
http://www.lbreyer.com/gpl.html(...)
http://freshmeat.net/search/?q=bayesian§ion=projects(...)
Perso, j'utilise le module reverand en python pour classer des objets selon leur description et je suis satisfait. Je recois en entrée des descriptions d'objets et je dois déterminer si c'est un meuble, de l'argenterie, un tableau, une sculpture, ...
Par exemple, 90% des objets de cette page sont classés automatiquement de cette manière: http://auction-in-europe.com/index.py/ant_arts(...)
J'ai environ 5% d'erreur mais les conditions sont dures: classer une description d'une ligne dans l'une des 30 catégories.
# Re: trouver la langue d'un texte
Posté par Uhld . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.