Field类
Field类为可以由张量表示的常见文本处理数据类型建模。它包含一个Vocab对象,用于定义字段元素的可能值集及其对应的数字表示。Field对象还包含与数据类型应如何数字化有关的其他参数,例如标记化方法和应生成的Tensor类型。
如果在数据集中的两列之间共享字段(例如,QA数据集中的问题和答案),则它们将具有共享词汇表。
属性:
sequential:数据类型是否表示顺序数据。如果为False,则不应用标记化。默认值:True。
use_vocab:是否使用Vocab对象。如果为False,则此字段中的数据应已为数字。默认值:True。
init_token:将使用此字段添加到每个示例的标记,如果没有初始标记,则为None。默认值:无。
eos_token:将使用此字段附加到每个示例的标记,或者对于没有句末标记的None。默认值:无。
fix_length:使用此字段的所有示例都将填充到的固定长度,或者对于灵活的序列长度,为None。默认值:无。
dtype:torch.dtype类,表示此类数据的一批示例。默认值:torch.long。
预处理:在标记化之后但在数值化之前将使用此字段应用于示例的管道。许多数据集使用自定义预处理器替换此属性。默认值:无。
后处理:在数值化之后但在数字变为Tensor之前将使用此字段应用于示例的管道。管道功能将批处理作为列表和字段的Vocab。默认值:无。
lower:是否小写此字段中的文本。默认值:False。
tokenize:用于将使用此字段将字符串标记为顺序示例的函数。如果使用“spacy”,则使用SpaCy English tokenizer。默认值:str.split。
include_lengths:是否返回填充小批量的元组和包含每个示例长度的列表,或者只是填充的小批量。默认值:False。
batch_first:是否先生成具有批量维度的张量。默认值:False。
pad_token:用作填充的字符串标记。默认值:“<pad>”。
unk_token:用于表示OOV字的字符串标记。默认值: “<UNK>”。
pad_first:在开头填充序列的填充。默认值:False。
truncate_first:在开头截断序列。默认值:False
stop_words:在预处理步骤中丢弃的标记。默认值:无
is_target:此字段是否为目标变量。影响批量迭代。默认值:False
TabularDataset类
定义以CSV,TSV或JSON格式存储的列的数据集。
参数:
path(str):数据文件的路径。
format(str):数据文件的格式。 “CSV”,“TSV”或“JSON”之一(不区分大小写)。
fields(list(tup(str,Field))或dict [str:tuple(str,Field)]:如果使用列表,格式必须是CSV或TSV,列表的值应该是(name,字段应该与CSV或TSV文件中的列的顺序相同,而(name,None)的元组表示将被忽略的列。如果使用dict,则键应该是JSON的子集键或CSV / TSV列,值应为(名称,字段)的元组。输入字典中不存在的键将被忽略。这允许用户从其JSON / CSV / TSV键名称重命名列,并且还可以选择要加载的列的子集。
skip_header(bool):是否跳过输入文件的第一行。
csv_reader_params(dict):传递给csv reader的参数。格式为csv或tsv时非常相关。
可变参数
*args,**kwargs
如果我们不确定要往函数中传入多少个参数,或者我们想往函数中以列表和元组的形式传参数时,那就使要用*args;
如果我们不知道要往函数中传入多少个关键词参数,或者想传入字典的值作为关键词参数时,那就要使用**kwargs。