10
votes

Déterminer automatiquement la langue naturelle d'une page de site Web compte tenu de son URL

Je cherche un moyen de déterminer automatiquement la langue naturelle utilisée par une page de site Web, compte tenu de son URL.

en Python, une fonction comme: xxx > Qui renvoie un spécificateur de langue (par exemple, «EN» pour l'anglais, «JP» pour japonais, etc.)

Résumé des résultats: J'ai une solution raisonnable qui travaille en python en utilisant code de la PYPI pour oise.langdet < / a>. Il fait un travail décent dans la discrimination anglais vs non-anglais, qui est tout ce dont j'exige pour le moment. Notez que vous devez récupérer le HTML à l'aide de Python Urllib. En outre, oise.langdet est une licence GPL.

Pour une solution plus générale à l'aide de Trigrams à Python, d'autres ont suggéré, voir cette Recette de recettes de recettes Python de Activestate .

L'API de détection de langue naturelle Google fonctionne très bien (sinon le meilleur que j'ai vu). Cependant, c'est JavaScript et leur TOS interdit automatisent son utilisation.


0 commentaires

7 Réponses :


1
votes

NLTK pourrait vous aider (si vous devez vous mettre à traiter avec le texte de la page, c'est-à-dire si le les en-têtes et l'URL lui-même ne déterminent pas suffisamment la langue à vos besoins); Je ne pense pas que NLTK offre directement un "Dis-moi quelle langue ce texte est dans" la fonction "(bien que NLTK soit grande et en croissance continue, il pourrait en fait l'avoir), mais vous pouvez essayer d'analyser le texte donné en fonction de diverses langages naturels et vérifiant ceux qui donnent l'analyse la plus judicieuse, les motsset, etc. selon les règles de chaque langue.


0 commentaires

0
votes

Il n'y a pas de méthode générale qui fonctionnera uniquement sur les URL. Vous pouvez vérifier le Domaine de niveau supérieur pour avoir une idée et rechercher des portions de L'URL qui pourrait indiquer une langue (comme «EN» ou «ES» entre deux barres obliques) et assumer quoi que ce soit inconnu est en anglais, mais ce n'est pas une solution parfaite.

Autant que je sache, le seul moyen général de déterminer la langue naturelle utilisée par une page est de saisir le texte de la page et de vérifier certains mots communs dans chaque langue. Par exemple, si "A", "AN", et "THE" apparaissent plusieurs fois dans la page, il est probable qu'il inclut du texte anglais; "el" et "la" pourrait suggérer l'espagnol; et ainsi de suite.


0 commentaires

6
votes

Votre meilleur pari est vraiment d'utiliser Détection de langue naturelle de Google API. Il renvoie un code ISO pour la langue de la page, avec un indice de probabilité.

voir http://code.google.com/apis/ajaxlanguage/documentation/ < / a>


0 commentaires

3
votes

Il n'y a rien à propos de l'URL elle-même qui indiquera la langue.

Une option serait d'utiliser un langue naturelle Toolkit Pour essayer d'identifier la langue basée sur le contenu, mais même si vous pouvez obtenir la partie NLP de fonctionner, ce sera assez lent. En outre, cela peut ne pas être fiable. N'oubliez pas que la plupart des agents d'utilisateurs passent quelque chose comme xxx

avec chaque requête et de nombreux grands sites Web serviront un contenu différent en fonction de cet en-tête. Les sites plus petits seront plus fiables car ils ne feront pas attention aux en-têtes de langue.

Vous pouvez également utiliser l'emplacement du serveur (c'est-à-dire quel pays le serveur est dans le serveur) en tant que proxy pour la langue à l'aide de GEOIP . Il n'est évidemment pas parfait, mais c'est beaucoup mieux que d'utiliser le TLD.


2 commentaires

La géolocalisation est totalement inutile. Le monde a beaucoup d'endroits où plusieurs langues coexistent. Et des sites Web peuvent également proposer plusieurs langues


Tout ce que j'ai dit, c'était que c'est mieux que TLD, que certaines personnes suggèrent et que j'ai abordé la question de plusieurs langues.



8
votes

Ceci est généralement accompli en utilisant des modèles N-GRAM de caractères. Vous pouvez trouver ici un identifiant de langue de pointe pour Java. Si vous avez besoin d'aide pour la convertir en Python, demandez simplement. J'espère que ça vous aide.


0 commentaires

3
votes

Vous voudrez peut-être essayer la détection basée sur NGRAM.

TextCat Démo (LGPL) semble fonctionner assez bien (reconnaît près de 70 langues). Il y a un port Python fourni par Thomas Mangin ici en utilisant le même corpus.

EDIT: textcat Page de concurrents fournit des liens intéressants aussi .

EDIT2: Je me demande si vous faites un wrapper Python pour http://www.mnogosearch.org/guesser/ serait difficile ...


0 commentaires

0
votes

en Python, le package LangDetect ( trouvé ici ) peut faire cela. Il est basé sur la détection et les supports de langue automatique de Googles par défaut 55 langues.

Il est installé en utilisant P>

from langdetect import detect

detect("War doesn't show who's right, just who's left.")
detect("Ein, zwei, drei, vier")


0 commentaires