使用多个数据源创建TensorFlow数据集

时间:2019-05-23 12:55:24

标签: python mongodb tensorflow

我试图通过连接来自2个不同来源的数据来创建TensorFlow数据集。我正在尝试从以下论文中复制数据集的创建:

可通过以下链接在BigQuery上获取数据集:

基本上我有一个CSV文件,其中包含3列“上下文”,“响应”,“作者”,如下所示:

dataset = tf.data.experimental.CsvDataset(
            "data/2007.csv",
            record_defaults=[tf.string, tf.string,tf.string],
            select_cols=[0, 1, 2],
            field_delim=",",
            header=True)

dataset = dataset.shuffle(buffer_size=10000)
dataset = dataset.batch(20)
iter = dataset.make_one_shot_iterator()

然后我想根据“作者”字段是什么,从MongoDB向我的数据集中添加另一个字段“ Persona”。我知道有一个map函数可以像这样使用:

dataset = dataset.map(map_func=data_map)

并实现data_map函数来查询mongo以获取结果。 我的想法是这样的:

def data_map(context, response, author):
    # iterate author tensor and do pyMongo queries to fetch 'persona's
    return {'Context': context, 
            'Response': response, 
            'Author': author, 
            'Persona': persona}

我的问题是什么是有效的方法。

我的数据集大于1TB,我需要在Mongo上使用字段“ Persona”来快速查询。我无法在csv文件中使用它,因为它会变得很大(同一作者有很多行,每个作者都有一个Persona,每个角色都有100多个句子)。我应该遍历Author张量并查询mongo,然后为'Persona'构建一个张量吗?还有其他更有效的方法吗?

0 个答案:

没有答案