Ce référentiel fournit des listes nettoyées des mots et n-grammes (séquences de n mots) les plus fréquents, y compris certaines traductions anglaises, du Google Books Ngram Corpus (v3/20200217, toutes langues), ainsi que du code Python personnalisable qui reproduit ces listes.
Les listes des n-grammes les plus fréquents sont fournies séparément par langue et par n. Les langues disponibles sont le chinois (simplifié), l'anglais, l'anglais de fiction, le français, l'allemand, l'hébreu, l'italien, le russe et l'espagnol. n va de 1 à 5. Dans les listes fournies, les sous-corpus de langage sont limités aux livres publiés dans les années 2010-2019, mais dans le code Python, cela ainsi que le nombre de n-grammes les plus fréquents inclus peuvent être ajustés.
Les listes se trouvent dans le répertoire ngrams. Pour toutes les langues, à l'exception de l'hébreu, des listes nettoyées sont fournies pour le
Pour l’hébreu, en raison de la petite taille du corpus, seuls les 200 4 grammes les plus fréquents et les 80 5 grammes les plus fréquents sont fournis.
Toutes les listes nettoyées contiennent également le nombre de fois où chaque n-gramme apparaît dans le corpus (sa fréquence, colonne freq
). Pour 1 gramme (mots), il y a deux colonnes supplémentaires :
cumshare
qui pour chaque mot contient la part cumulée de tous les mots du corpus constitué par ce mot et de tous les mots plus fréquents.en
qui contient la traduction anglaise du mot obtenu à l'aide de l'API Google Cloud Translate (uniquement pour les langues non anglaises).Voici les 10 premières lignes de 1grams_french.csv :
ngramme | fréquence | partage de sperme | fr |
---|---|---|---|
de | 1380202965 | 0,048 | de |
la | 823756863 | 0,077 | le |
et | 651571349 | 0,100 | et |
le | 614855518 | 0,121 | le |
un | 577644624 | 0,142 | à |
je | 527188618 | 0,160 | le |
les | 503689143 | 0,178 | eux |
fr | 390657918 | 0,191 | dans |
des | 384774428 | 0,205 | de la |
Les listes trouvées directement dans le répertoire ngrams ont été nettoyées et sont destinées à être utilisées lors du développement de matériel d'apprentissage des langues. Le sous-répertoire ngrams/more contient des versions non nettoyées et moins nettoyées qui pourraient être utiles par exemple aux linguistes :
0_raw
),1a_no_pos
),1b_with_pos
),2_removed
). Pour expliquer pourquoi apprendre d'abord les mots les plus fréquents peut être une bonne idée lors de l'apprentissage d'une langue, le graphique suivant est fourni.
Pour chaque langue, il trace le rang de fréquence de chaque gramme (c'est-à-dire mot) sur l'axe des x et le cumshare
sur l'axe des y. Ainsi, par exemple, après avoir appris les 1000 mots français les plus fréquents, on peut comprendre plus de 70 % de tous les mots, comptés avec les doublons, présents dans un livre type publié entre 2010 et 2019 dans la version 20200217 du corpus français Google Books Ngram.
Pour les n-grammes autres que 1 gramme, les retours sur l'apprentissage des plus fréquents ne sont pas aussi élevés, car il existe de nombreuses combinaisons de mots possibles. Pourtant, les gens ont tendance à mieux apprendre lorsqu’ils apprennent des choses dans leur contexte, donc une utilisation pourrait être de trouver des exemples de phrases courantes pour chaque gramme. Une autre approche est la suivante : supposons que l'on veuille apprendre les 1000 mots les plus courants dans une langue donnée. On pourrait alors, par exemple, créer une liste minimale des 4 grammes les plus courants qui incluent ces 1000 mots et l'apprendre.
Bien que les listes n-gram aient été nettoyées en pensant à l'apprentissage des langues et contiennent des traductions en anglais, elles ne sont pas destinées à être utilisées directement pour l'apprentissage, mais plutôt comme ressources intermédiaires pour développer du matériel d'apprentissage des langues. Les traductions fournies ne donnent que le mot anglais le plus proche du sens le plus courant du mot. De plus, en fonction des objectifs d’apprentissage des langues, le corpus Ngram de Google Books n’est peut-être pas le meilleur corpus sur lequel baser du matériel d’apprentissage – voir la section suivante.
Ce référentiel est basé sur le Google Books Ngram Corpus version 3 (avec l'identifiant de version 20200217), mis à disposition par Google sous forme de listes n-gram ici. Ce sont également les données qui sous-tendent le Google Books Ngram Viewer. Le corpus est un sous-ensemble, sélectionné par Google sur la base de la qualité de la reconnaissance optique des caractères et des métadonnées, des livres numérisés par Google et contient environ 6 % de tous les livres jamais publiés (1, 2, 3).
Lors de l’évaluation de la qualité d’un corpus, sa taille et sa représentativité du type de matériel qui l’intéresse sont importantes.
La version 3 du corpus Ngram de Google Books est énorme, comme l'illustre ce tableau du nombre de mots qu'il contient par langue et sous-corpus :
Langue | # mots, toutes les années | # mots, 2010-2019 |
---|---|---|
Chinois | 10 778 094 737 | 257 989 144 |
Anglais | 1 997 515 570 677 | 283 795 232 871 |
Anglais américain | 1 167 153 993 435 | 103 514 367 264 |
Anglais britannique | 336 950 312 247 | 45 271 592 771 |
Fiction anglaise | 158 981 617 587 | 73 746 188 539 |
Français | 328 796 168 553 | 35 216 041 238 |
Allemand | 286 463 423 242 | 57 039 530 618 |
hébreu | 7 263 771 123 | 76 953 586 |
italien | 120 410 089 963 | 15 473 063 630 |
russe | 89 415 200 246 | 19 648 780 340 |
Espagnol | 158 874 356 254 | 17 573 531 785 |
Notez que ces chiffres correspondent au nombre total de mots et non au nombre de mots uniques. Ils incluent également de nombreux mots qui ne sont pas des mots valides, mais en raison de la taille du corpus, les étapes de nettoyage sont effectuées uniquement sur les mots les plus courants, de sorte que le nombre de mots qui resteraient dans l'ensemble du corpus après le nettoyage n'est pas disponible. De plus, Google ne télécharge que les mots qui apparaissent plus de 40 fois, alors que ces décomptes incluent également les mots apparaissant moins souvent que cela.
Nous constatons que même après avoir limité les sous-corpus linguistiques aux livres publiés au cours des 10 dernières années disponibles, le nombre de mots reste supérieur à 15 milliards pour chaque sous-corpus, à l’exception du chinois et de l’hébreu. C'est nettement plus grand que pour tous les autres corpus d'usage courant, qui ne semblent jamais contenir plus de quelques milliards de mots et sont souvent beaucoup plus petits que cela (4).
En matière de représentativité, cela dépend de l’usage prévu. Le Google Books Ngram Corpus ne contient que des livres (pas de périodiques, de langue parlée, de sites Web, etc.). Chaque édition de livre est incluse au plus une fois. La plupart de ces livres proviennent d'un petit nombre de grandes bibliothèques universitaires, « plus de 40 » dans la version 1 du corpus, tandis qu'une plus faible part est obtenue directement auprès des éditeurs (1). Ainsi, par exemple, si l'on a l'intention d'utiliser ce corpus pour apprendre une langue dans laquelle on lira principalement des livres du genre qui intéressent les grandes bibliothèques universitaires, alors les mots de ce corpus sont susceptibles d'être assez représentatifs de la population de mots. on pourrait rencontrer dans le futur.
Le code produisant tout se trouve dans le répertoire python. Chaque fichier .py est un script qui peut être exécuté à partir de la ligne de commande en utilisant python python/filename
, où le répertoire de travail doit être le répertoire contenant le répertoire python. Chaque fichier .py a une section de paramètres en haut et des paramètres de nettoyage supplémentaires peuvent être spécifiés à l'aide des fichiers dans python/extra_settings. Les paramètres par défaut ont été choisis pour que le code s'exécute raisonnablement rapidement et que la taille du référentiel résultant soit raisonnablement petite.
Si vous le souhaitez, commencez par exécuter create_source_data_lists.py à partir du répertoire racine du référentiel pour recréer le dossier source-data avec des listes de liens vers les fichiers de données sources de Google.
Exécutez download_and_extract_most_freq.py à partir du répertoire racine du référentiel pour télécharger chaque fichier répertorié dans les données source (un "fichier .gz") et extrayez les n-grammes les plus fréquents dans une liste enregistrée dans ngrams/more/{lang}/most_freq_ngrams_per_gz_file
. Pour économiser les ressources informatiques, chaque fichier .gz est immédiatement supprimé. Étant donné que les listes des n-grammes les plus fréquents par fichier .gz occupent toujours environ 36 Go avec les paramètres par défaut, un seul exemple de liste est téléchargé sur GitHub : ngrams_1-00006-of-00024.gz.csv. Aucun nettoyage n’a été effectué à ce stade, voici donc à quoi ressemblent les données brutes.
Exécutez rassembler_and_clean.py pour rassembler tous les n-grammes dans des listes des plus fréquents et nettoyer ces listes (voir la section suivante pour plus de détails).
Exécutez google_cloud_translate.py pour ajouter des traductions en anglais à tous les 1-grammes non anglais à l'aide de l'API Google Cloud Translate (cela nécessite une clé API, voir l'en-tête du fichier). Par défaut, seuls les 1-grammes sont traduits et uniquement en anglais, mais en modifiant les paramètres, n'importe quel n-gramme peut être traduit dans n'importe quelle langue prise en charge par Google. Google met les traductions en majuscules de manière aléatoire et tente donc de corriger cela. De plus, un nombre limité de corrections manuelles sont appliquées à l'aide de manual_translations_1grams.csv.
Enfin, graph_1grams_cumshare_rank.py produit graph_1grams_cumshare_rank_light.svg et sa version sombre.
Toutes les étapes de nettoyage sont effectuées dans recueillir_and_clean.py, à l'exception du nettoyage des traductions Google.
Les étapes de nettoyage suivantes sont effectuées par programme :
"'"
"'"
, " "
et ","
sont supprimés"-"
pour le russe et """
pour l'hébreuDe plus, les étapes de nettoyage suivantes ont été effectuées manuellement, en utilisant les traductions anglaises pour aider à éclairer les décisions :
extra_{n}grams_to_exclude.csv
.Lors du choix manuel des mots à inclure et à exclure, les règles suivantes ont été appliquées. Exclure : les noms de personnes (quelques exceptions : Jésus, Dieu), les noms de villes (quelques exceptions : s'ils diffèrent beaucoup de l'anglais et sont assez courants), les noms de sociétés, les abréviations (quelques exceptions, par exemple ma, pa), les parties de mots, les mots dans la mauvaise langue (sauf si elle est d'usage courant). N'excluez pas : les noms de pays, les noms de groupes ethniques/nationaux de personnes, les noms géographiques (par exemple rivières, océans), les termes familiers, les interjections.
Pour une liste soigneusement créée de tous les mots de la partie anglaise du Google Books Ngram Corpus (version 20200217), triés par fréquence, consultez le référentiel hackerb9/gwordlist.
Une liste complète de listes de fréquences dans de nombreuses langues est disponible sur Wiktionary.
Ce qui reste à faire est d'achever le nettoyage manuel final pour l'hébreu et le nettoyage des listes de n-grammes pour n > 1. Un problème qui pourrait être résolu à l'avenir est que certains de ces derniers contiennent "," comme mot . Il pourrait également être souhaitable d’inclure des abréviations plus courantes. Aucune liste de n-grammes distincte n'est fournie pour les corpus anglais américain et anglais britannique. Bien entendu, certaines erreurs subsistent.
Le contenu de ce référentiel est sous licence Creative Commons Attribution 3.0 Unported. Les rapports de problèmes et les demandes d'extraction sont les bienvenus !