Этот репозиторий предоставляет очищенные списки наиболее часто встречающихся слов и n-грамм (последовательностей из n слов), включая некоторые английские переводы, из корпуса Ngram Google Книги (v3/20200217, все языки), а также настраиваемый код Python, который воспроизводит эти списки.
Списки с наиболее часто встречающимися n-граммами предоставляются отдельно по языку и n. Доступные языки: китайский (упрощенный), английский, английская художественная литература, французский, немецкий, иврит, итальянский, русский и испанский. n варьируется от 1 до 5. В предоставленных списках языковые субкорпуса ограничены книгами, опубликованными в 2010-2019 годах, но в коде Python и это, и количество наиболее часто встречающихся включенных n-грамм можно регулировать.
Списки находятся в каталоге ngrams. Для всех языков, кроме иврита, предоставляются очищенные списки.
Для иврита из-за небольшого размера корпуса предоставлены только 200 наиболее частых 4-грамм и 80 наиболее часто встречающихся 5-грамм.
Все очищенные списки также содержат количество раз, когда каждая n-грамма встречается в корпусе (ее частота, freq
столбца). Для 1-грамм (слов) есть два дополнительных столбца:
cumshare
, который для каждого слова содержит совокупную долю всех слов в корпусе, составленном из этого слова и всех более частых слов.en
, который содержит английский перевод слова, полученный с помощью API Google Cloud Translate (только для языков, отличных от английского).Вот первые 10 строк 1grams_french.csv:
нграмм | частота | поделиться спермой | ru |
---|---|---|---|
де | 1380202965 | 0,048 | из |
ла | 823756863 | 0,077 | тот |
и др. | 651571349 | 0,100 | и |
ле | 614855518 | 0,121 | тот |
à | 577644624 | 0,142 | в |
я' | 527188618 | 0,160 | тот |
лес | 503689143 | 0,178 | их |
ru | 390657918 | 0,191 | в |
де | 384774428 | 0,205 | принадлежащий |
Списки, находящиеся непосредственно в каталоге ngrams, были очищены и предназначены для использования при разработке материалов для изучения языков. Подкаталог ngrams/more содержит неочищенные и менее очищенные версии, которые могут быть полезны, например, лингвистам:
0_raw
),1a_no_pos
),1b_with_pos
),2_removed
). Чтобы проиллюстрировать, почему при изучении языка может быть хорошей идеей сначала изучать наиболее часто встречающиеся слова, представлен следующий график.
Для каждого языка он отображает частотный ранг каждого 1 грамма (т.е. слова) по оси X и cumshare
по оси Y. Так, например, выучив 1000 наиболее часто встречающихся французских слов, можно понять более 70% всех слов, считая с дубликатами, встречающихся в типичной книге, изданной в период с 2010 по 2019 год в версии 20200217 французского Google Books Ngram Corpus.
Для n-грамм, отличных от 1-грамм, отдача от изучения наиболее частых из них не такая высокая, поскольку существует очень много возможных комбинаций слов. Тем не менее, люди, как правило, лучше учатся, изучая вещи в контексте, поэтому одним из них может быть поиск общих примеров фраз для каждого 1 грамма. Другой подход заключается в следующем: допустим, кто-то хочет выучить 1000 наиболее распространенных слов на каком-то языке. Тогда можно было бы, например, составить минимальный список самых распространенных 4-грамм, включающих в себя эти 1000 слов, и выучить его.
Хотя списки n-грамм были очищены с учетом изучения языка и содержат некоторые переводы на английский язык, они не предназначены для использования непосредственно для обучения, а скорее как промежуточные ресурсы для разработки материалов для изучения языка. Предоставленные переводы дают только английское слово, наиболее близкое к наиболее распространенному значению этого слова. Более того, в зависимости от целей изучения языка, корпус Ngram Google Books может быть не лучшим корпусом для основы учебных материалов – см. следующий раздел.
Этот репозиторий основан на Google Books Ngram Corpus версии 3 (с идентификатором версии 20200217), который доступен Google в виде списков n-грамм здесь. Эти же данные лежат в основе Google Books Ngram Viewer. Корпус представляет собой подмножество книг, оцифрованных Google, выбранное Google на основе качества оптического распознавания символов и метаданных, и содержит около 6% всех когда-либо опубликованных книг (1, 2, 3).
При оценке качества корпуса важны как его размер, так и репрезентативность интересующего материала.
Google Books Ngram Corpus версии 3 огромен, о чем свидетельствует следующая таблица количества слов в нем по языкам и подкорпусам:
Язык | # слов, все годы | # слова, 2010-2019 гг. |
---|---|---|
китайский | 10 778 094 737 | 257 989 144 |
Английский | 1 997 515 570 677 | 283 795 232 871 |
Американский английский | 1 167 153 993 435 | 103 514 367 264 |
Британский английский | 336 950 312 247 | 45 271 592 771 |
Английская фантастика | 158 981 617 587 | 73 746 188 539 |
Французский | 328 796 168 553 | 35 216 041 238 |
немецкий | 286 463 423 242 | 57 039 530 618 |
иврит | 7 263 771 123 | 76 953 586 |
итальянский | 120 410 089 963 | 15 473 063 630 |
Русский | 89 415 200 246 | 19 648 780 340 |
испанский | 158 874 356 254 | 17 573 531 785 |
Обратите внимание, что эти цифры относятся к общему количеству слов, а не к количеству уникальных слов. Они также включают много слов, которые не являются допустимыми словами, но из-за размера корпуса этапы очистки выполняются только для наиболее распространенных слов, поэтому количество слов, которые останутся во всем корпусе после очистки, недоступно. Более того, Google загружает только слова, которые встречаются более 40 раз, при этом в этот подсчет также входят слова, встречающиеся реже.
Мы видим, что даже после ограничения языковых субкорпусов книгами, опубликованными за последние 10 доступных лет, количество слов по-прежнему превышает 15 миллиардов для каждого субкорпуса, за исключением китайского и иврита. Это значительно больше, чем для всех других общеупотребительных корпусов, которые, по-видимому, никогда не содержат более нескольких миллиардов слов, а часто намного меньше (4).
Когда дело доходит до репрезентативности, это зависит от предполагаемого использования. Корпус Google Books Ngram Corpus содержит только книги (без периодических изданий, устной речи, веб-сайтов и т. д.). Каждое издание книги включается не более одного раза. Большая часть этих книг поступает из небольшого числа крупных университетских библиотек, «более 40» в версии 1 корпуса, тогда как меньшая доля получена непосредственно от издателей (1). Так, например, если кто-то намеревается использовать этот корпус для изучения языка, на котором в основном будут читать книги, которыми интересуются крупные университетские библиотеки, то слова в этом корпусе, вероятно, будут вполне репрезентативными для совокупности слов. с которыми можно столкнуться в будущем.
Код, создающий все, находится в каталоге Python. Каждый .py-файл представляет собой сценарий, который можно запустить из командной строки с помощью python python/filename
, где рабочим каталогом должен быть каталог, содержащий каталог Python. В каждом .py-файле вверху есть раздел настроек, а дополнительные настройки очистки можно указать с помощью файлов в python/extra_settings. Настройки по умолчанию были выбраны для того, чтобы код выполнялся достаточно быстро и чтобы размер полученного репозитория был достаточно небольшим.
При желании начните с запуска create_source_data_lists.py из корневого каталога репозитория, чтобы воссоздать папку исходных данных со списками ссылок на файлы исходных данных Google.
Запустите download_and_extract_most_freq.py из корневого каталога репозитория, чтобы загрузить каждый файл, указанный в исходных данных («.gz-файл»), и извлечь из него наиболее часто встречающиеся n-граммы в список, сохраненный в ngrams/more/{lang}/most_freq_ngrams_per_gz_file
. В целях экономии ресурсов компьютера каждый .gz-файл после этого сразу удаляется. Поскольку списки наиболее часто встречающихся n-грамм на каждый .gz-файл по-прежнему занимают около 36 ГБ при настройках по умолчанию, на GitHub загружается только один пример списка: ngrams_1-00006-of-00024.gz.csv. На этом этапе очистка не производилась, поэтому необработанные данные выглядят вот так.
Запустите сборщик_and_clean.py, чтобы собрать все n-граммы в списки наиболее часто встречающихся и очистить эти списки (подробности см. в следующем разделе).
Запустите google_cloud_translate.py, чтобы добавить английские переводы ко всем неанглийским 1-граммам с помощью API Google Cloud Translate (для этого требуется ключ API, см. заголовок файла). По умолчанию переводятся только 1-граммы и только на английский, но изменив настройки любую н-грамму можно перевести на любой язык, поддерживаемый Google. Google случайным образом использует заглавные буквы в переводах, поэтому мы пытаемся это исправить. Кроме того, с помощью файла manual_translations_1grams.csv вносится ограниченное количество ручных исправлений.
Наконец, Graph_1grams_cumshare_rank.py создает граф_1grams_cumshare_rank_light.svg и его темную версию.
Все этапы очистки выполняются в сборе_and_clean.py, кроме очистки переводов Google.
Следующие этапы очистки выполняются программно:
"'"
"'"
, " "
и ","
удаляются."-"
для русского и """
для ивритаКроме того, следующие этапы очистки были выполнены вручную с использованием английских переводов для принятия обоснованных решений:
extra_{n}grams_to_exclude.csv
.При ручном принятии решения о том, какие слова включить или исключить, применялись следующие правила. Исключить : имена людей (некоторые исключения: Иисус, Бог), названия городов (некоторые исключения: если они сильно отличаются от английского и достаточно распространены), названия компаний, сокращения (некоторые исключения, например, ма, па), части слов, слова в неправильный язык (кроме случаев, когда он широко используется). Не исключайте : названия стран, названия этнических/национальных групп людей, географические названия (например, рек, океанов), разговорные термины, междометия.
Тщательно составленный список всех слов английской части корпуса Ngram Corpus Google Книг (версия 20200217), отсортированный по частоте, можно найти в репозитории hackerb9/gwordlist.
Обширный список частотных списков на многих языках доступен в Викисловаре.
Осталось завершить окончательную ручную очистку иврита и очистку списков n-грамм для n > 1. Проблема, которая может быть решена в будущем, заключается в том, что некоторые из последних содержат "," как слово. . Возможно, было бы желательно включить более распространенные сокращения. Для корпусов американского английского и британского английского отдельные списки n-грамм не предоставляются. Конечно, некоторые ошибки остаются.
Содержимое этого репозитория доступно под лицензией Creative Commons Attribution 3.0 Unported License. Отчеты о проблемах и запросы на включение приветствуются!