Déterminer si le texte est en anglais?
Je suis en utilisant à la fois Nltk et Scikit Learn à faire certains de traitement de texte. Cependant, dans ma liste de documents que j'ai quelques documents qui ne sont pas en anglais. Par exemple, les activités suivantes pourraient être remplies:
[ "this is some text written in English",
"this is some more text written in English",
"Ce n'est pas en anglais" ]
Pour les fins de mon analyse, je veux toutes les peines qui ne sont pas en anglais pour être supprimés dans le cadre de pré-traitement. Cependant, est-il une bonne façon de le faire? J'ai cherché sur Google, mais ne peut pas trouver quelque chose de précis qui me permettra de reconnaître si les chaînes sont en anglais ou pas. Est-ce quelque chose qui n'est pas offert que la fonctionnalité soit Nltk
ou Scikit learn
? MODIFIER j'ai vu des questions à la fois comme cette et cette mais les deux sont pour mots individuels... Pas de "document". Je boucle à travers chaque mot dans une phrase pour vérifier si l'ensemble de la phrase est en anglais?
Je suis à l'aide de Python, de sorte que les bibliothèques qui sont en Python serait préférable, mais je peux changer de langue si nécessaire, juste pensé que Python serait le meilleur pour cette.
OriginalL'auteur ocean800 | 2017-04-12
Vous devez vous connecter pour publier un commentaire.
Il y a une bibliothèque appelée langdetect. Il est porté à partir de Google langue de détection disponibles ici:
https://pypi.python.org/pypi/langdetect
Il prend en charge 55 langues hors de la boîte.
Je n'ai pas utilisé. Il sera bon de vous partager votre expérience ici.
Malheureusement, il était très lent sur de longues séries de documents, mais merci!
OriginalL'auteur salehinejad
Vous pourriez être intéressé à mon papier Le WiLI indice de référence des données écrites
l'identification de la langue. J'ai aussi comparé à un couple d'outils.
TL;DR:
Vous pouvez installer
lidtk
et de classer les langues:Je pense que oui: pypi.org/project/cld2-cffi
Oui, c'est fait. Merci
OriginalL'auteur Martin Thoma
Utiliser l'enchantement de la bibliothèque
Cet exemple est pris directement à partir de leur site web
Je ne l'ai pas utilisé très longtemps document cordes; j'ai formé mon propre modèle. Donner un coup de feu et voir si la bibliothèque est assez puissant pour vous! Il dispose également d'un correcteur d'orthographe (le but principal de la bibliothèque)
Va l'essayer et de voir que la bibliothèque fonctionne mieux, merci 🙂
enchanter semble pouvoir caractériser les mots anglais, au lieu de phrases. par exemple, "Bonjour" est cochée comme
True
mais "hello world" est cochée commeFalse
. Il est aussi plus activement maintenu.OriginalL'auteur lordingtar
Si vous voulez quelque chose de léger, lettre trigrammes sont populaires approche. Chaque langue a une autre "profil" de la commune et rare trigrammes. Vous pouvez autour de google, ou votre propre code. Voici un exemple d'implémentation, je suis venu à travers, qui utilise la "similarité cosinus" comme une mesure de la distance entre le texte de l'échantillon et les données de référence:
http://code.activestate.com/recipes/326576-language-detection-using-character-trigrams/
Si vous connaissez la commune de langues autres que l'anglais dans votre corpus, il est assez facile de transformer cela en un oui/non test. Si vous n'en avez pas, vous devez anticiper les phrases de langues pour lesquelles vous n'avez pas le trigramme de la statistique. Je voudrais faire quelques tests pour voir la gamme normale de scores de similarité pour une seule phrase du texte dans vos documents, et de choisir un seuil pour l'anglais cosinus score.
Trigramme modèles sont rapides... il n'y a pas grand chose à faire. Mais qu'entendez-vous par "grand jeu de données"? Si chacun de vos documents sont rédigés dans une seule langue, et que vous avez donc beaucoup de documents que le décompte des trigrammes sur l'ensemble du document est de vous ralentir, juste arrêter après quelques centaines de mètre de mots.
OriginalL'auteur alexis