2014-11-03 58 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-gram後的第一步是將它們轉儲到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_STARTYEAR_END,你的百分比,稱之爲PERCENT_THRESHOLD 。在那裏你選擇那些ngram S,從而使match_countPERCENT_THRESHOLD%不太常見的YEAR_ENDYEAR_START

你的問題簡化爲一個查詢。

+0

@ duncan-malashock如果這聽起來是正確的,我會拿出一個示例SQL查詢來實際完成這個計算。但是,我想確保這與您試圖找到的內容一致。 – tlehman 2014-11-11 23:35:22

+0

嘿,我正在使用mapreduce來完成這個任務,請你在這方面指導我? – 2016-09-16 02:25:27

+0

@MuneebulHassan不在這裏,但有很好的教程:http://hadooptutorial.info/mapreduce-use-case-for-n-gram-statistics/ – tlehman 2016-09-16 15:51:53