2014-11-03 1 views
4

Я хотел бы написать приложение, которое ищет данные Google Ngram, чтобы возвращать слова и фразы, которые раньше были более популярными, произвольным процентом, в течение какого-то произвольного диапазона лет, чем сейчас.Как искать Google Ngrams для «датированных» слов и фраз?

Например: https://books.google.com/ngrams/graph?content=cowabunga&year_start=1950&year_end=2000&corpus=15&smoothing=3

В идеале, я хотел бы быть в состоянии найти эти слова и фразы без указания их фронт. Может ли кто-нибудь помочь мне придумать способ сделать это, используя загруженную копию данных Ngrams?

ответ

1

Первый шаг после загрузки некоторых n-граммов - сбрасывать их в SQLite3 database. Например, я принес 1-grams starting with the letter 't'

Чтобы сбросить их в SQLite, запустите команду sqlite3 1grams.db

sqlite> create table t1grams (ngram text, year integer, match_count integer, volume_count integer); 
sqlite> .separator "\t" 
sqlite> .import googlebooks-eng-all-1gram-20120701-t t1grams 

Второго шаг заключается в выборе диапазона года, называем их YEAR_START и YEAR_END, и ваш процент, называем его PERCENT_THRESHOLD ,

Ваша задача сводится к запросу, где вы выбираете эти ngram S такие, что match_count является PERCENT_THRESHOLD% реже в YEAR_END чем на YEAR_START.

+0

@ duncan-malashock, если это звучит правильно, я придумаю пример SQL-запроса, чтобы закончить это вычисление. Тем не менее, я хочу убедиться, что это совпадает с тем, что вы пытаетесь найти. – tlehman

+0

Эй, я использую mapreduce для выполнения этой задачи, можете ли вы, пожалуйста, направить меня в этом отношении? –

+0

@MuneebulHassan Не здесь, но есть хорошие учебные пособия для этого: http://hadooptutorial.info/mapreduce-use-case-for-n-gram-statistics/ – tlehman

 Смежные вопросы

  • Нет связанных вопросов^_^