Question

Existe-t-il un moyen (un programme, une bibliothèque) de savoir approximativement dans quelle langue un document est écrit?

J'ai un tas de documents texte (~ 500K) en plusieurs langues à importer dans un CMS (Drupal) activé pour i18n.

Je n'ai pas besoin de correspondances parfaites, seulement quelques devinettes.

Était-ce utile?

La solution

Il existe un moyen très simple de procéder, étant donné que vous disposez de données de corpus dans toutes les langues que vous devez identifier. C'est ce qu'on appelle la modélisation n-gramme. Je pense que Lingua :: Identify fait déjà, c’est donc votre meilleur choix que de mettre en œuvre le vôtre.

Autres conseils

Je dirais que votre meilleur pari est de rechercher des mots clés - des articles, ce genre de chose - qui sont propres aux langues que vous recherchez. " Un " apparaîtra à la fois en espagnol et en français, par exemple, mais "une" est identifiable français alors que "unos", par exemple, est identifiable espagnol. Les signes diacritiques sont également utiles. Vous verrez alors " & # 241; " en espagnol et éventuellement en portugais, " & # 231; " en français et quelques autres ... ce genre de chose.

modifier - La solution de Paul est probablement la meilleure; on dirait qu’il utilise des méthodes comme celles que j’ai décrites plus quelques suppléments.

En effectuant une recherche Google sur "a href =" http://www.google.com/search?hl=fr&client=firefox-a&rls=org.mozilla%3Aen-US%3Aofficial&hs=WWh&q=determine+ langue + de + document & btnG = Recherche "rel =" nofollow noreferrer "> déterminer la langue du document " J'ai trouvé de nombreux sites différents qui vous aideront. Le troisième lien sur la première page m’a finalement conduit à une fonction dans la Google Code API: c’est exactement ce dont vous avez besoin.

L'API de traduction de Google est cool et possède une interface REST. Mais je dois lui envoyer BEAUCOUP de gros document (oui, je pourrais utiliser un extrait) et, même si Google est Google, je ne pense pas que cela juste.

Les documents ne sont pas non plus les miens, et je demanderai à mon client s'il est correct de les envoyer à un tiers (même si, bientôt ou plus tard, G les les récupérera;)).

Je pense que je vais emprunter le chemin Perl ...

Il semble y avoir un module Perl pour cela: Lingua :: Identify

Paul.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top