2015-11-22 40 views
1

我有興趣通過BigQuery的能力查找trigrams數據獲取與特定單詞關聯最頻繁的單詞。例如,在使用Google的Ngram viewer時,我可以輸入great *,這會給我帶來最常見的關聯詞,如「很好」,然後是「偉大」和「很多」。我的目標是做單詞的大名單,這樣我可以跟一路查詢到word10000 *將BigQuery與大量數據結構化爲輸入構造

繼此SO answer的討論中,我被帶到了BigQuery的可公開獲得的數據卦。在這一點上,我似乎無法弄清楚的是如何使用此服務輸入一組單詞,無論是作爲文件輸入還是粘貼它們的方式。非常感謝任何幫助 - 謝謝。

回答

2

這裏是你如何尋找10個最常用的單詞按照「大」:

SELECT second, SUM(cell.page_count) total 
FROM [publicdata:samples.trigrams] 
WHERE first = "great" 
group by 1 
order by 2 desc 
limit 10 

這導致

second  total  
------------------ 
deal  3048832 
and  1689911 
,   1576341 
a   1019511 
number  984993  
many  875974  
importance 805215  
part  739409  
.   700694  
as   628978 

如果你想限制在特定年 - 1820年之間說1840,那麼你也可以限制cell.value(這是出版年份)

SELECT second, SUM(cell.page_count) total FROM [publicdata:samples.trigrams] 
WHERE first = "great" and cell.value between '1820' and '1840' 
group by 1 
order by 2 desc 
limit 10 
+0

神奇,謝謝摩莎,它做了t裏克。作爲後續問題,是否可以將多個單詞加載到「first」,以便我可以爲(理想情況下)100個第一個單詞生成一個列表?我嘗試了「偉大,好,棒球,......」或「偉大」,「好」,「棒球」等語法,但迄今爲止他們都沒有功能。感謝幫助! – daspianist

+2

嘗試使用'IN'。也就是說,'首先在哪裏(「好」,「好」,「棒球」)。如果你這樣做,你可能也想用「first」來分組,所以你可以看到第一個單詞和第二個單詞是什麼。 –

+0

感謝@JordanTigani的幫助。使用'IN'來產生三個詞的組合結果。我想知道如何執行查詢,以便查找單個單詞並提供總和列表 - 換句話說,結果中的列數是我用來查找的單詞數的兩倍。然後使用「好」,「好」和「棒球」將有6列表。 – daspianist