使用大量数据作为输入构建 BigQuery

Structuring BigQuery with large array of data as input

我有兴趣通过 BigQuery 查找三元组数据的能力来获取与特定单词的最频繁的单词关联。例如,当使用 Google 的 Ngram viewer 时,我可以输入 great *,这将给出 "great" 之后最常关联的词,例如 "great deal",然后 "great and" 和 "great many"。我的目标是针对大量单词执行此操作,以便我可以使用 word1 * 一直查询到 word10000 *

在对此 SO answer 的讨论之后,我被引导到 BigQuery 的公开可用三元组数据。在这一点上我似乎无法弄清楚的是如何使用此服务输入一组单词,作为文件输入或粘贴它们的方式。非常感谢任何帮助 - 谢谢。

您可以按照以下方式找到 10 个最常用的词"great":

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