Sql 具有元数据的大词共现频率数据库结构

Sql 具有元数据的大词共现频率数据库结构,sql,nlp,amazon-dynamodb,graph-databases,Sql,Nlp,Amazon Dynamodb,Graph Databases,我想在一个大型(>10亿令牌)文本语料库中存储单词在各种上下文中共同出现的频率。我需要存储单词对、共现类型(例如,word1与word2在同一个句子中,word1与word2在同一个段落中),以及一些关于发现共现文本的元数据(例如,年份、作者、出版商)。因此,一行可能如下所示: word1 word2 count decade publisher author context_type -------------------------------------------------

我想在一个大型(>10亿令牌)文本语料库中存储单词在各种上下文中共同出现的频率。我需要存储单词对、共现类型(例如,word1与word2在同一个句子中,word1与word2在同一个段落中),以及一些关于发现共现文本的元数据(例如,年份、作者、出版商)。因此,一行可能如下所示:

word1     word2   count decade publisher author context_type
-------------------------------------------------------------
nuclear   danger   22    1980s    NYT      n/a      paragraph
频率将是稀疏的和泊松分布的。然后,我希望能够按日期范围或作者组(例如)查询数据,汇总结果计数


我对数据库几乎没有经验,也不知道该用什么。我需要相关的SQL表(例如,一个表中有图书元数据,另一个表中有word数据)还是简单的平面NoSql解决方案?词汇量大约为50000个单词,因此,如果观察到每个单词同时出现,即使没有元数据,也会有25亿行(我认为)。但可能大多数都不会被观察到。这让我觉得也许图形数据库是一种可能的解决方案。AWS或google上是否有好的云解决方案

Google Cloud Bigtable或其他NoSQL系统可能是这类查询的合理选择,因为它听起来像是稀疏数据集选项,但正如前一篇文章所指出的,这个问题更适合于

使用关系数据库,您可能很容易做到这一点。您将拥有数千万行(我猜是这样),并且具有正确的结构,很容易查询。但是,堆栈溢出不是软件推荐的地方。