Как хранить данные из Google Ngram API?

Мне нужно хранить данные, представленные на графиках, на сайте Google Ngram. Например, я хочу сохранить количество вхождений слова «это» в процентах с 1800 по 2008 год, как показано по следующей ссылке: https://books.google.com/ngrams/graph?content=it%27s&year_start=1800&year_end=2008&corpus=0&smoothing=3&share=&direct_url=t1%3B%2Cit%27s%3B%2Cc0.

Мне нужны данные, которые вы можете прокручивать на графике. Как я могу извлечь это примерно для 140 различных терминов (например, «это», «они», «она» и т. д.)?


person blacksite    schedule 31.10.2015    source источник
comment
Google предоставляет полный набор данных здесь storage.googleapis.com/books/ngrams/books/ datasetsv2.html — думаю, извлекать его из графика/svg не стоит усилий.   -  person rebeling    schedule 01.11.2015
comment
я видел это. Я просто не хочу качать огромную часть корпуса только для этого анализа   -  person blacksite    schedule 01.11.2015


Ответы (2)


econpy написал милый модуль на Python, который можно использовать через интерфейс командной строки.

Для вашего примера «это» вам нужно будет ввести эту команду в консоли терминала/Windows:

python getngrams.py it's -startYear=1800 -endYear=2008 -corpus=eng_2009 -smoothing=3

Это автоматически сохранит результат запроса в файле CSV с именем, соответствующим вашим параметрам запроса.

person HugoMailhot    schedule 01.11.2015
comment
Я использую Anaconda Spyder (под управлением 2.7). Как мне интегрировать этот код в мой существующий код? Мне нужно упаковать его как модуль и импортировать? У меня возникают проблемы с простым копированием и вставкой кода в мой существующий код и запуском его. - person blacksite; 03.11.2015
comment
Какие проблемы? Может быть, мы сможем исправить это, не заморачиваясь с упаковкой. Я также спросил econpy, не хочет ли он сделать из этого модуль. Если он скажет «нет», я позабочусь о том, чтобы разместить его на PyPi, чтобы люди могли скачать его с помощью pip. - person HugoMailhot; 03.11.2015
comment
В порядке. Спасибо за это. Я действительно заставил его работать ... Я просто неправильно запрашивал! Спасибо за вашу помощь. - person blacksite; 03.11.2015
comment
Даже встроенные примеры для этого пакета больше не работают. Кто-нибудь знает актуальную альтернативу? - person CPBL; 19.05.2021
comment
репозиторий econpy не поддерживается и больше не работает. Я разместил рабочую версию здесь gitlab.com/cpbl/google-ngrams и буду поддерживать/ принимать дальнейшие запросы на включение. - person CPBL; 19.05.2021

Пакет econpy в ответе @HugoMailhot больше не работает (2021 г.) и, похоже, не поддерживается. Вот обновленная версия с некоторыми улучшениями для упрощения интеграции в код Python: https://gitlab.com/cpbl/google-ngrams

Вы можете вызвать это из командной строки (как в econpy), чтобы создать файл CSV, например.

getngrams.py it's -startYear=1800 -endYear=2008 -corpus=eng_2009 -smoothing=3

или вызовите его из python, чтобы получить (и построить) данные непосредственно в python, например:

from getngrams import ngrams
df = ngrams('bells and whistles -startYear=1900 -endYear=2018 -smoothing=2')
df.plot()

Функциональность xkcd все еще там.

(Проблемы / запросы на исправление ошибок / и т. д. приветствуются там)

person CPBL    schedule 19.05.2021