【问题标题】:Torchtext TabularDataset: data.Field doesn't contain actual imported data?Torchtext TabularDataset:data.Field 不包含实际导入的数据?
【发布时间】:2019-01-18 07:20:04
【问题描述】:

我从 Torchtext 文档中了解到,导入 csv 文件的方式是通过 TabularDataset。我是这样做的:

train = data.TabularDataset(path='./data.csv', 
                        format='csv', 
                        fields=[("label",data.Field(use_vocab=True,include_lengths=False)),
                                ("statement",data.Field(use_vocab=True,include_lengths=True))],  
                        skip_header=True)

“label”和“statement”是我的 csv 文件中两列的标题名称。我将它们定义为 data.Field,但“标签”和“语句”似乎实际上并不包含我的 csv 文件中的数据,尽管控制台将它们识别为数据字段对象没有问题。当我尝试使用 statement.build_vocab(train, max_size=25000) 构建词汇表时,我发现了这个问题。我打印了len(statement.vocab),返回的是“2”,这显然不能反映csv文件中的实际数据。导入 csv 数据时我做错了什么还是我的词汇构建做错了?是否有单独的方法将数据放入字段对象中?谢谢!!

【问题讨论】:

    标签: pytorch torchtext


    【解决方案1】:

    字段必须像这样单独定义

        TEXT = data.Field(sequential=True,tokenize=tokenize, lower=True, include_lengths=True)
        LABEL = data.Field(sequential=True,tokenize=tokenize, lower=True)
        train = data.TabularDataset(path='./data.csv', 
                            format='csv', 
                            fields=[("label",LABEL),
                                    ("statement",TEXT)],  
                            skip_header=True)
        test = data.TabularDataset(path='./test.csv', 
                            format='csv', 
                            fields=[("label",LABEL),
                                    ("statement",TEXT)],  
                            skip_header=True)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-31
      • 2021-10-24
      • 1970-01-01
      • 2017-09-01
      • 2019-01-05
      • 1970-01-01
      相关资源
      最近更新 更多