0

我从 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 数据时我做错了什么还是我的词汇构建做错了?是否有单独的方法将数据放入字段对象中?谢谢!!

4

1 回答 1

0

字段必须像这样单独定义

    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)
于 2018-08-10T20:18:17.810 回答