我想在大型(> 10亿个代币)文本语料库中存储单词在各种上下文中彼此同时出现的频率。我需要存储单词对,共现的类型(例如,与单词2相同的句子中的单词1,与单词2相同的段落中的单词1),以及有关在其中找到共现的文本的一些元数据(例如年,作者,出版商)。因此,单行可能看起来像:
word1 word2 count decade publisher author context_type
-------------------------------------------------------------
nuclear danger 22 1980s NYT n/a paragraph
频率将稀疏,并且泊松分布。然后,我希望能够按日期范围或作者组(例如)查询数据,汇总结果计数。
我对数据库的经验很少,不确定使用什么。我是否需要相关的SQL表(例如在一个表中包含书籍元数据,在另一个表中包含单词数据),还是一个简单的扁平NoSql解决方案?词汇量约为50,000个单词,因此,如果观察到每个单词-单词共现,即使没有元数据(我认为)也将有25亿行。但是可能大多数都不会被观察到。这使我认为也许图形数据库是一种可能的解决方案。在AWS或Google上是否有好的云解决方案?
答案 0 :(得分:0)
对于这种类型的查询,Google Cloud Bigtable或其他NoSQL系统可能是一个合理的选择,因为它听起来像是稀疏的数据集选项,但是如前所述,此问题更适合https://softwareengineering.stackexchange.com/。