fastNLP.io.loader¶
Loader用于读取数据,并将内容读取到 DataSet
或者 DataBundle
中。所有的Loader都支持以下的
三个方法: __init__
, _load
, loads
. 其中 __init__(...)
用于申明读取参数,以及说明该Loader支持的数据格式,
读取后 DataSet
中的 field ; _load(path)
方法传入文件路径读取单个文件,并返回 DataSet
;
load(paths)
用于读取文件夹下的文件,并返回 DataBundle
类型的对象 , load()方法支持以下几种类型的参数:
- 0.传入None
- 将尝试自动下载数据集并缓存。但不是所有的数据都可以直接下载。
- 1.传入一个文件的 path
- 返回的 data_bundle 包含一个名为 train 的 dataset ,可以通过
data_bundle.get_dataset('train')
获取 - 2.传入一个文件夹目录
将读取的是这个文件夹下文件名中包含 train , test , dev 的文件,其它文件会被忽略。假设某个目录下的文件为:
| +-train.txt +-dev.txt +-test.txt +-other.txt
在 Loader().load('/path/to/dir') 返回的 data_bundle 中可以用
data_bundle.get_dataset('train')
,data_bundle.get_dataset('dev')
,data_bundle.get_dataset('test')
获取对应的 dataset ,其中 other.txt 的内容会被忽略。假设某个目录下的文件为:| +-train.txt +-dev.txt
在 Loader().load('/path/to/dir') 返回的 data_bundle 中可以用
data_bundle.get_dataset('train')
,data_bundle.get_dataset('dev')
获取对应的 dataset。- 3.传入一个字典
字典的的 key 为 dataset 的名称,value 是该 dataset 的文件路径:
paths = {'train':'/path/to/train', 'dev': '/path/to/dev', 'test':'/path/to/test'}
在 Loader().load(paths) 返回的 data_bundle 中可以用
data_bundle.get_dataset('train')
,data_bundle.get_dataset('dev')
,data_bundle.get_dataset('test')
来获取对应的 dataset
fastNLP 目前提供了如下的 Loader
-
class
fastNLP.io.loader.
Loader
[源代码]¶ 别名
fastNLP.io.Loader
fastNLP.io.loader.Loader
各种数据 Loader 的基类,提供了 API 的参考. Loader支持以下的三个函数
- download() 函数:自动将该数据集下载到缓存地址,默认缓存地址为~/.fastNLP/datasets/。由于版权等原因,不是所有的Loader都实现了该方法。该方法会返回下载后文件所处的缓存地址。
- _load() 函数:从一个数据文件中读取数据,返回一个
DataSet
。返回的DataSet的内容可以通过每个Loader的文档判断出。 - load() 函数:将文件分别读取为DataSet,然后将多个DataSet放入到一个DataBundle中并返回
-
load
(paths: Union[str, Dict[str, str]] = None) → fastNLP.io.data_bundle.DataBundle[源代码]¶ 从指定一个或多个路径中的文件中读取数据,返回
DataBundle
。参数: Dict[str, str]] paths (Union[str,) -- 支持以下的几种输入方式:
0.如果为None,则先查看本地是否有缓存,如果没有则自动下载并缓存。
1.传入一个目录, 该目录下名称包含train的被认为是train,包含test的被认为是test,包含dev的被认为是dev,如果检测到多个文件名包含'train'、 'dev'、 'test'则会报错:
data_bundle = xxxLoader().load('/path/to/dir') # 返回的DataBundle中datasets根据目录下是否检测到train # dev、 test等有所变化,可以通过以下的方式取出DataSet tr_data = data_bundle.get_dataset('train') te_data = data_bundle.get_dataset('test') # 如果目录下有文件包含test这个字段
2.传入一个dict,比如train,dev,test不在同一个目录下,或者名称中不包含train, dev, test:
paths = {'train':"/path/to/tr.conll", 'dev':"/to/validate.conll", "test":"/to/te.conll"} data_bundle = xxxLoader().load(paths) # 返回的DataBundle中的dataset中包含"train", "dev", "test" dev_data = data_bundle.get_dataset('dev')
3.传入文件路径:
data_bundle = xxxLoader().load("/path/to/a/train.conll") # 返回DataBundle对象, datasets中仅包含'train' tr_data = data_bundle.get_dataset('train') # 取出DataSet
返回: 返回的 DataBundle
-
class
fastNLP.io.loader.
CLSBaseLoader
(sep=', ', has_header=False)[源代码]¶ -
别名
fastNLP.io.CLSBaseLoader
fastNLP.io.loader.CLSBaseLoader
文本分类Loader的一个基类
原始数据中内容应该为, 每一行为一个sample,第一个逗号之前为target,第一个逗号之后为文本内容。
Example:
"1","I got 'new' tires from the..." "1","Don't waste your time..."
读取的DataSet将具备以下的数据结构
raw_words target I got 'new' tires from them and... 1 Don't waste your time. We had two... 1 ... ... -
download
() → str¶ 自动下载该数据集
返回: 下载后解压目录
-
load
(paths: Union[str, Dict[str, str]] = None) → fastNLP.io.data_bundle.DataBundle¶ 从指定一个或多个路径中的文件中读取数据,返回
DataBundle
。参数: Dict[str, str]] paths (Union[str,) -- 支持以下的几种输入方式:
0.如果为None,则先查看本地是否有缓存,如果没有则自动下载并缓存。
1.传入一个目录, 该目录下名称包含train的被认为是train,包含test的被认为是test,包含dev的被认为是dev,如果检测到多个文件名包含'train'、 'dev'、 'test'则会报错:
data_bundle = xxxLoader().load('/path/to/dir') # 返回的DataBundle中datasets根据目录下是否检测到train # dev、 test等有所变化,可以通过以下的方式取出DataSet tr_data = data_bundle.get_dataset('train') te_data = data_bundle.get_dataset('test') # 如果目录下有文件包含test这个字段
2.传入一个dict,比如train,dev,test不在同一个目录下,或者名称中不包含train, dev, test:
paths = {'train':"/path/to/tr.conll", 'dev':"/to/validate.conll", "test":"/to/te.conll"} data_bundle = xxxLoader().load(paths) # 返回的DataBundle中的dataset中包含"train", "dev", "test" dev_data = data_bundle.get_dataset('dev')
3.传入文件路径:
data_bundle = xxxLoader().load("/path/to/a/train.conll") # 返回DataBundle对象, datasets中仅包含'train' tr_data = data_bundle.get_dataset('train') # 取出DataSet
返回: 返回的 DataBundle
-
-
class
fastNLP.io.loader.
IMDBLoader
[源代码]¶ -
别名
fastNLP.io.IMDBLoader
fastNLP.io.loader.IMDBLoader
原始数据中内容应该为, 每一行为一个sample,制表符之前为target,制表符之后为文本内容。
Example:
neg Alan Rickman & Emma... neg I have seen this...
IMDBLoader读取后的数据将具有以下两列内容: raw_words: str, 需要分类的文本; target: str, 文本的标签 读取的DataSet具备以下的结构:
raw_words target Alan Rickman & Emma... neg I have seen this... neg ... ... -
download
(dev_ratio: float = 0.0, re_download=False)[源代码]¶ 自动下载数据集,如果你使用了这个数据集,请引用以下的文章
http://www.aclweb.org/anthology/P11-1015
根据dev_ratio的值随机将train中的数据取出一部分作为dev数据。下载完成后不从train中切分dev
参数: - dev_ratio (float) -- 如果路径中没有dev.txt。从train划分多少作为dev的数据. 如果为0,则不划分dev
- re_download (bool) -- 是否重新下载数据,以重新切分数据。
返回: str, 数据集的目录地址
-
load
(paths: Union[str, Dict[str, str]] = None) → fastNLP.io.data_bundle.DataBundle¶ 从指定一个或多个路径中的文件中读取数据,返回
DataBundle
。参数: Dict[str, str]] paths (Union[str,) -- 支持以下的几种输入方式:
0.如果为None,则先查看本地是否有缓存,如果没有则自动下载并缓存。
1.传入一个目录, 该目录下名称包含train的被认为是train,包含test的被认为是test,包含dev的被认为是dev,如果检测到多个文件名包含'train'、 'dev'、 'test'则会报错:
data_bundle = xxxLoader().load('/path/to/dir') # 返回的DataBundle中datasets根据目录下是否检测到train # dev、 test等有所变化,可以通过以下的方式取出DataSet tr_data = data_bundle.get_dataset('train') te_data = data_bundle.get_dataset('test') # 如果目录下有文件包含test这个字段
2.传入一个dict,比如train,dev,test不在同一个目录下,或者名称中不包含train, dev, test:
paths = {'train':"/path/to/tr.conll", 'dev':"/to/validate.conll", "test":"/to/te.conll"} data_bundle = xxxLoader().load(paths) # 返回的DataBundle中的dataset中包含"train", "dev", "test" dev_data = data_bundle.get_dataset('dev')
3.传入文件路径:
data_bundle = xxxLoader().load("/path/to/a/train.conll") # 返回DataBundle对象, datasets中仅包含'train' tr_data = data_bundle.get_dataset('train') # 取出DataSet
返回: 返回的 DataBundle
-
-
class
fastNLP.io.loader.
SSTLoader
[源代码]¶ -
别名
fastNLP.io.SSTLoader
fastNLP.io.loader.SSTLoader
原始数据中内容应该为:
Example:
(2 (3 (3 Effective) (2 but)) (1 (1 too-tepid)... (3 (3 (2 If) (3 (2 you) (3 (2 sometimes)...
读取之后的DataSet具有以下的结构
¶ raw_words (2 (3 (3 Effective) (2 but)) (1 (1 too-tepid)... (3 (3 (2 If) (3 (2 you) (3 (2 sometimes) ... ... raw_words列是str。
-
load
(paths: Union[str, Dict[str, str]] = None) → fastNLP.io.data_bundle.DataBundle¶ 从指定一个或多个路径中的文件中读取数据,返回
DataBundle
。参数: Dict[str, str]] paths (Union[str,) -- 支持以下的几种输入方式:
0.如果为None,则先查看本地是否有缓存,如果没有则自动下载并缓存。
1.传入一个目录, 该目录下名称包含train的被认为是train,包含test的被认为是test,包含dev的被认为是dev,如果检测到多个文件名包含'train'、 'dev'、 'test'则会报错:
data_bundle = xxxLoader().load('/path/to/dir') # 返回的DataBundle中datasets根据目录下是否检测到train # dev、 test等有所变化,可以通过以下的方式取出DataSet tr_data = data_bundle.get_dataset('train') te_data = data_bundle.get_dataset('test') # 如果目录下有文件包含test这个字段
2.传入一个dict,比如train,dev,test不在同一个目录下,或者名称中不包含train, dev, test:
paths = {'train':"/path/to/tr.conll", 'dev':"/to/validate.conll", "test":"/to/te.conll"} data_bundle = xxxLoader().load(paths) # 返回的DataBundle中的dataset中包含"train", "dev", "test" dev_data = data_bundle.get_dataset('dev')
3.传入文件路径:
data_bundle = xxxLoader().load("/path/to/a/train.conll") # 返回DataBundle对象, datasets中仅包含'train' tr_data = data_bundle.get_dataset('train') # 取出DataSet
返回: 返回的 DataBundle
-
-
class
fastNLP.io.loader.
SST2Loader
[源代码]¶ -
别名
fastNLP.io.SST2Loader
fastNLP.io.loader.SST2Loader
原始数据中内容为:第一行为标题(具体内容会被忽略),之后一行为一个sample,第一个制表符之前被认为是句子,第一个制表符之后认为是label
Example:
sentence label it 's a charming and often affecting journey . 1 unflinchingly bleak and desperate 0
读取之后DataSet将如下所示
raw_words target it 's a charming and often affecting journey . 1 unflinchingly bleak and desperate 0 ... test的DataSet没有target列。
-
download
()[源代码]¶ 自动下载数据集,如果你使用了该数据集,请引用以下的文章 https://nlp.stanford.edu/pubs/SocherBauerManningNg_ACL2013.pdf :return:
-
load
(paths: Union[str, Dict[str, str]] = None) → fastNLP.io.data_bundle.DataBundle¶ 从指定一个或多个路径中的文件中读取数据,返回
DataBundle
。参数: Dict[str, str]] paths (Union[str,) -- 支持以下的几种输入方式:
0.如果为None,则先查看本地是否有缓存,如果没有则自动下载并缓存。
1.传入一个目录, 该目录下名称包含train的被认为是train,包含test的被认为是test,包含dev的被认为是dev,如果检测到多个文件名包含'train'、 'dev'、 'test'则会报错:
data_bundle = xxxLoader().load('/path/to/dir') # 返回的DataBundle中datasets根据目录下是否检测到train # dev、 test等有所变化,可以通过以下的方式取出DataSet tr_data = data_bundle.get_dataset('train') te_data = data_bundle.get_dataset('test') # 如果目录下有文件包含test这个字段
2.传入一个dict,比如train,dev,test不在同一个目录下,或者名称中不包含train, dev, test:
paths = {'train':"/path/to/tr.conll", 'dev':"/to/validate.conll", "test":"/to/te.conll"} data_bundle = xxxLoader().load(paths) # 返回的DataBundle中的dataset中包含"train", "dev", "test" dev_data = data_bundle.get_dataset('dev')
3.传入文件路径:
data_bundle = xxxLoader().load("/path/to/a/train.conll") # 返回DataBundle对象, datasets中仅包含'train' tr_data = data_bundle.get_dataset('train') # 取出DataSet
返回: 返回的 DataBundle
-
-
class
fastNLP.io.loader.
ChnSentiCorpLoader
[源代码]¶ -
别名
fastNLP.io.ChnSentiCorpLoader
fastNLP.io.loader.ChnSentiCorpLoader
支持读取的数据的格式为,第一行为标题(具体内容会被忽略),之后一行为一个sample,第一个制表符之前被认为是label,第 一个制表符之后认为是句子
Example:
label text_a 1 基金痛所有投资项目一样,必须先要有所了解... 1 系统很好装,LED屏是不错,就是16比9的比例...
读取后的DataSet具有以下的field
raw_chars target 基金痛所有投资项目一样,必须先要有所了解... 1 系统很好装,LED屏是不错,就是16比9的比例... 1 ... -
download
() → str[源代码]¶ 自动下载数据,该数据取自https://github.com/pengming617/bert_classification/tree/master/data,在 https://arxiv.org/pdf/1904.09223.pdf与https://arxiv.org/pdf/1906.08101.pdf有使用
返回:
-
load
(paths: Union[str, Dict[str, str]] = None) → fastNLP.io.data_bundle.DataBundle¶ 从指定一个或多个路径中的文件中读取数据,返回
DataBundle
。参数: Dict[str, str]] paths (Union[str,) -- 支持以下的几种输入方式:
0.如果为None,则先查看本地是否有缓存,如果没有则自动下载并缓存。
1.传入一个目录, 该目录下名称包含train的被认为是train,包含test的被认为是test,包含dev的被认为是dev,如果检测到多个文件名包含'train'、 'dev'、 'test'则会报错:
data_bundle = xxxLoader().load('/path/to/dir') # 返回的DataBundle中datasets根据目录下是否检测到train # dev、 test等有所变化,可以通过以下的方式取出DataSet tr_data = data_bundle.get_dataset('train') te_data = data_bundle.get_dataset('test') # 如果目录下有文件包含test这个字段
2.传入一个dict,比如train,dev,test不在同一个目录下,或者名称中不包含train, dev, test:
paths = {'train':"/path/to/tr.conll", 'dev':"/to/validate.conll", "test":"/to/te.conll"} data_bundle = xxxLoader().load(paths) # 返回的DataBundle中的dataset中包含"train", "dev", "test" dev_data = data_bundle.get_dataset('dev')
3.传入文件路径:
data_bundle = xxxLoader().load("/path/to/a/train.conll") # 返回DataBundle对象, datasets中仅包含'train' tr_data = data_bundle.get_dataset('train') # 取出DataSet
返回: 返回的 DataBundle
-
-
class
fastNLP.io.loader.
THUCNewsLoader
[源代码]¶ -
别名
fastNLP.io.THUCNewsLoader
fastNLP.io.loader.THUCNewsLoader
数据集简介:document-level分类任务,新闻10分类 原始数据内容为:每行一个sample,第一个 "\t" 之前为target,第一个 "\t" 之后为raw_words
Example:
体育 调查-您如何评价热火客场胜绿军总分3-1夺赛点?...
读取后的Dataset将具有以下数据结构:
raw_words target 调查-您如何评价热火客场胜绿军总分3-1夺赛点?... 体育 ... ... -
load
(paths: Union[str, Dict[str, str]] = None) → fastNLP.io.data_bundle.DataBundle¶ 从指定一个或多个路径中的文件中读取数据,返回
DataBundle
。参数: Dict[str, str]] paths (Union[str,) -- 支持以下的几种输入方式:
0.如果为None,则先查看本地是否有缓存,如果没有则自动下载并缓存。
1.传入一个目录, 该目录下名称包含train的被认为是train,包含test的被认为是test,包含dev的被认为是dev,如果检测到多个文件名包含'train'、 'dev'、 'test'则会报错:
data_bundle = xxxLoader().load('/path/to/dir') # 返回的DataBundle中datasets根据目录下是否检测到train # dev、 test等有所变化,可以通过以下的方式取出DataSet tr_data = data_bundle.get_dataset('train') te_data = data_bundle.get_dataset('test') # 如果目录下有文件包含test这个字段
2.传入一个dict,比如train,dev,test不在同一个目录下,或者名称中不包含train, dev, test:
paths = {'train':"/path/to/tr.conll", 'dev':"/to/validate.conll", "test":"/to/te.conll"} data_bundle = xxxLoader().load(paths) # 返回的DataBundle中的dataset中包含"train", "dev", "test" dev_data = data_bundle.get_dataset('dev')
3.传入文件路径:
data_bundle = xxxLoader().load("/path/to/a/train.conll") # 返回DataBundle对象, datasets中仅包含'train' tr_data = data_bundle.get_dataset('train') # 取出DataSet
返回: 返回的 DataBundle
-
-
class
fastNLP.io.loader.
WeiboSenti100kLoader
[源代码]¶ -
别名
fastNLP.io.WeiboSenti100kLoader
fastNLP.io.loader.WeiboSenti100kLoader
别名: 数据集简介:微博sentiment classification,二分类
Example:
label text 1 多谢小莲,好运满满[爱你] 1 能在他乡遇老友真不赖,哈哈,珠儿,我也要用...
读取后的Dataset将具有以下数据结构:
raw_chars target 多谢小莲,好运满满[爱你] 1 能在他乡遇老友真不赖,哈哈,珠儿,我也要用... 1 ... ... -
download
() → str[源代码]¶ 自动下载数据,该数据取自 https://github.com/SophonPlus/ChineseNlpCorpus/ 在 https://arxiv.org/abs/1906.08101 有使用 :return:
-
load
(paths: Union[str, Dict[str, str]] = None) → fastNLP.io.data_bundle.DataBundle¶ 从指定一个或多个路径中的文件中读取数据,返回
DataBundle
。参数: Dict[str, str]] paths (Union[str,) -- 支持以下的几种输入方式:
0.如果为None,则先查看本地是否有缓存,如果没有则自动下载并缓存。
1.传入一个目录, 该目录下名称包含train的被认为是train,包含test的被认为是test,包含dev的被认为是dev,如果检测到多个文件名包含'train'、 'dev'、 'test'则会报错:
data_bundle = xxxLoader().load('/path/to/dir') # 返回的DataBundle中datasets根据目录下是否检测到train # dev、 test等有所变化,可以通过以下的方式取出DataSet tr_data = data_bundle.get_dataset('train') te_data = data_bundle.get_dataset('test') # 如果目录下有文件包含test这个字段
2.传入一个dict,比如train,dev,test不在同一个目录下,或者名称中不包含train, dev, test:
paths = {'train':"/path/to/tr.conll", 'dev':"/to/validate.conll", "test":"/to/te.conll"} data_bundle = xxxLoader().load(paths) # 返回的DataBundle中的dataset中包含"train", "dev", "test" dev_data = data_bundle.get_dataset('dev')
3.传入文件路径:
data_bundle = xxxLoader().load("/path/to/a/train.conll") # 返回DataBundle对象, datasets中仅包含'train' tr_data = data_bundle.get_dataset('train') # 取出DataSet
返回: 返回的 DataBundle
-
-
class
fastNLP.io.loader.
ConllLoader
(headers, indexes=None, dropna=True)[源代码]¶ -
别名
fastNLP.io.ConllLoader
fastNLP.io.loader.ConllLoader
ConllLoader支持读取的数据格式: 以空行隔开两个sample,除了分割行,每一行用空格或者制表符隔开不同的元素。如下例所示:
Example:
# 文件中的内容 Nadim NNP B-NP B-PER Ladki NNP I-NP I-PER AL-AIN NNP B-NP B-LOC United NNP B-NP B-LOC Arab NNP I-NP I-LOC Emirates NNPS I-NP I-LOC 1996-12-06 CD I-NP O ... # 如果用以下的参数读取,返回的DataSet将包含raw_words和pos两个field, 这两个field的值分别取自于第0列与第1列 dataset = ConllLoader(headers=['raw_words', 'pos'], indexes=[0, 1])._load('/path/to/train.conll') # 如果用以下的参数读取,返回的DataSet将包含raw_words和ner两个field, 这两个field的值分别取自于第0列与第2列 dataset = ConllLoader(headers=['raw_words', 'ner'], indexes=[0, 3])._load('/path/to/train.conll') # 如果用以下的参数读取,返回的DataSet将包含raw_words, pos和ner三个field dataset = ConllLoader(headers=['raw_words', 'pos', 'ner'], indexes=[0, 1, 3])._load('/path/to/train.conll')
ConllLoader返回的DataSet的field由传入的headers确定。
数据中以"-DOCSTART-"开头的行将被忽略,因为该符号在conll 2003中被用为文档分割符。
-
__init__
(headers, indexes=None, dropna=True)[源代码]¶ 参数: - headers (list) -- 每一列数据的名称,需为List or Tuple of str。
header
与indexes
一一对应 - indexes (list) -- 需要保留的数据列下标,从0开始。若为
None
,则所有列都保留。Default:None
- dropna (bool) -- 是否忽略非法数据,若
False
,遇到非法数据时抛出ValueError
。Default:True
- headers (list) -- 每一列数据的名称,需为List or Tuple of str。
-
download
() → str¶ 自动下载该数据集
返回: 下载后解压目录
-
load
(paths: Union[str, Dict[str, str]] = None) → fastNLP.io.data_bundle.DataBundle¶ 从指定一个或多个路径中的文件中读取数据,返回
DataBundle
。参数: Dict[str, str]] paths (Union[str,) -- 支持以下的几种输入方式:
0.如果为None,则先查看本地是否有缓存,如果没有则自动下载并缓存。
1.传入一个目录, 该目录下名称包含train的被认为是train,包含test的被认为是test,包含dev的被认为是dev,如果检测到多个文件名包含'train'、 'dev'、 'test'则会报错:
data_bundle = xxxLoader().load('/path/to/dir') # 返回的DataBundle中datasets根据目录下是否检测到train # dev、 test等有所变化,可以通过以下的方式取出DataSet tr_data = data_bundle.get_dataset('train') te_data = data_bundle.get_dataset('test') # 如果目录下有文件包含test这个字段
2.传入一个dict,比如train,dev,test不在同一个目录下,或者名称中不包含train, dev, test:
paths = {'train':"/path/to/tr.conll", 'dev':"/to/validate.conll", "test":"/to/te.conll"} data_bundle = xxxLoader().load(paths) # 返回的DataBundle中的dataset中包含"train", "dev", "test" dev_data = data_bundle.get_dataset('dev')
3.传入文件路径:
data_bundle = xxxLoader().load("/path/to/a/train.conll") # 返回DataBundle对象, datasets中仅包含'train' tr_data = data_bundle.get_dataset('train') # 取出DataSet
返回: 返回的 DataBundle
-
-
class
fastNLP.io.loader.
Conll2003Loader
[源代码]¶ -
别名
fastNLP.io.Conll2003Loader
fastNLP.io.loader.Conll2003Loader
用于读取conll2003任务的数据。数据的内容应该类似与以下的内容, 第一列为raw_words, 第二列为pos, 第三列为chunking,第四列为ner。
Example:
Nadim NNP B-NP B-PER Ladki NNP I-NP I-PER AL-AIN NNP B-NP B-LOC United NNP B-NP B-LOC Arab NNP I-NP I-LOC Emirates NNPS I-NP I-LOC 1996-12-06 CD I-NP O ...
返回的DataSet的内容为
¶ raw_words pos chunk ner [Nadim, Ladki] [NNP, NNP] [B-NP, I-NP] [B-PER, I-PER] [AL-AIN, United, Arab, ...] [NNP, NNP, NNP, ...] [B-NP, B-NP, I-NP, ...] [B-LOC, B-LOC, I-LOC, ...] [...] [...] [...] [...] -
load
(paths: Union[str, Dict[str, str]] = None) → fastNLP.io.data_bundle.DataBundle¶ 从指定一个或多个路径中的文件中读取数据,返回
DataBundle
。参数: Dict[str, str]] paths (Union[str,) -- 支持以下的几种输入方式:
0.如果为None,则先查看本地是否有缓存,如果没有则自动下载并缓存。
1.传入一个目录, 该目录下名称包含train的被认为是train,包含test的被认为是test,包含dev的被认为是dev,如果检测到多个文件名包含'train'、 'dev'、 'test'则会报错:
data_bundle = xxxLoader().load('/path/to/dir') # 返回的DataBundle中datasets根据目录下是否检测到train # dev、 test等有所变化,可以通过以下的方式取出DataSet tr_data = data_bundle.get_dataset('train') te_data = data_bundle.get_dataset('test') # 如果目录下有文件包含test这个字段
2.传入一个dict,比如train,dev,test不在同一个目录下,或者名称中不包含train, dev, test:
paths = {'train':"/path/to/tr.conll", 'dev':"/to/validate.conll", "test":"/to/te.conll"} data_bundle = xxxLoader().load(paths) # 返回的DataBundle中的dataset中包含"train", "dev", "test" dev_data = data_bundle.get_dataset('dev')
3.传入文件路径:
data_bundle = xxxLoader().load("/path/to/a/train.conll") # 返回DataBundle对象, datasets中仅包含'train' tr_data = data_bundle.get_dataset('train') # 取出DataSet
返回: 返回的 DataBundle
-
-
class
fastNLP.io.loader.
Conll2003NERLoader
[源代码]¶ -
别名
fastNLP.io.Conll2003NERLoader
fastNLP.io.loader.Conll2003NERLoader
用于读取conll2003任务的NER数据。每一行有4列内容,空行意味着隔开两个句子
支持读取的内容如下 Example:
Nadim NNP B-NP B-PER Ladki NNP I-NP I-PER AL-AIN NNP B-NP B-LOC United NNP B-NP B-LOC Arab NNP I-NP I-LOC Emirates NNPS I-NP I-LOC 1996-12-06 CD I-NP O ...
返回的DataSet的内容为
¶ raw_words target [Nadim, Ladki] [B-PER, I-PER] [AL-AIN, United, Arab, ...] [B-LOC, B-LOC, I-LOC, ...] [...] [...] -
load
(paths: Union[str, Dict[str, str]] = None) → fastNLP.io.data_bundle.DataBundle¶ 从指定一个或多个路径中的文件中读取数据,返回
DataBundle
。参数: Dict[str, str]] paths (Union[str,) -- 支持以下的几种输入方式:
0.如果为None,则先查看本地是否有缓存,如果没有则自动下载并缓存。
1.传入一个目录, 该目录下名称包含train的被认为是train,包含test的被认为是test,包含dev的被认为是dev,如果检测到多个文件名包含'train'、 'dev'、 'test'则会报错:
data_bundle = xxxLoader().load('/path/to/dir') # 返回的DataBundle中datasets根据目录下是否检测到train # dev、 test等有所变化,可以通过以下的方式取出DataSet tr_data = data_bundle.get_dataset('train') te_data = data_bundle.get_dataset('test') # 如果目录下有文件包含test这个字段
2.传入一个dict,比如train,dev,test不在同一个目录下,或者名称中不包含train, dev, test:
paths = {'train':"/path/to/tr.conll", 'dev':"/to/validate.conll", "test":"/to/te.conll"} data_bundle = xxxLoader().load(paths) # 返回的DataBundle中的dataset中包含"train", "dev", "test" dev_data = data_bundle.get_dataset('dev')
3.传入文件路径:
data_bundle = xxxLoader().load("/path/to/a/train.conll") # 返回DataBundle对象, datasets中仅包含'train' tr_data = data_bundle.get_dataset('train') # 取出DataSet
返回: 返回的 DataBundle
-
-
class
fastNLP.io.loader.
OntoNotesNERLoader
[源代码]¶ -
别名
fastNLP.io.OntoNotesNERLoader
fastNLP.io.loader.OntoNotesNERLoader
用以读取OntoNotes的NER数据,同时也是Conll2012的NER任务数据。将OntoNote数据处理为conll格式的过程可以参考 https://github.com/yhcc/OntoNotes-5.0-NER。OntoNoteNERLoader将取第4列和第11列的内容。
读取的数据格式为:
Example:
bc/msnbc/00/msnbc_0000 0 0 Hi UH (TOP(FRAG(INTJ*) - - - Dan_Abrams * - bc/msnbc/00/msnbc_0000 0 1 everyone NN (NP*) - - - Dan_Abrams * - ...
返回的DataSet的内容为
raw_words target ['Hi', 'everyone', '.'] ['O', 'O', 'O'] ['first', 'up', 'on', 'the', 'docket'] ['O', 'O', 'O', 'O', 'O'] [...] [...] -
load
(paths: Union[str, Dict[str, str]] = None) → fastNLP.io.data_bundle.DataBundle¶ 从指定一个或多个路径中的文件中读取数据,返回
DataBundle
。参数: Dict[str, str]] paths (Union[str,) -- 支持以下的几种输入方式:
0.如果为None,则先查看本地是否有缓存,如果没有则自动下载并缓存。
1.传入一个目录, 该目录下名称包含train的被认为是train,包含test的被认为是test,包含dev的被认为是dev,如果检测到多个文件名包含'train'、 'dev'、 'test'则会报错:
data_bundle = xxxLoader().load('/path/to/dir') # 返回的DataBundle中datasets根据目录下是否检测到train # dev、 test等有所变化,可以通过以下的方式取出DataSet tr_data = data_bundle.get_dataset('train') te_data = data_bundle.get_dataset('test') # 如果目录下有文件包含test这个字段
2.传入一个dict,比如train,dev,test不在同一个目录下,或者名称中不包含train, dev, test:
paths = {'train':"/path/to/tr.conll", 'dev':"/to/validate.conll", "test":"/to/te.conll"} data_bundle = xxxLoader().load(paths) # 返回的DataBundle中的dataset中包含"train", "dev", "test" dev_data = data_bundle.get_dataset('dev')
3.传入文件路径:
data_bundle = xxxLoader().load("/path/to/a/train.conll") # 返回DataBundle对象, datasets中仅包含'train' tr_data = data_bundle.get_dataset('train') # 取出DataSet
返回: 返回的 DataBundle
-
-
class
fastNLP.io.loader.
CTBLoader
[源代码]¶ -
别名
fastNLP.io.CTBLoader
fastNLP.io.loader.CTBLoader
支持加载的数据应该具备以下格式, 其中第二列为词语,第四列为pos tag,第七列为依赖树的head,第八列为依赖树的label
Example:
1 印度 _ NR NR _ 3 nn _ _ 2 海军 _ NN NN _ 3 nn _ _ 3 参谋长 _ NN NN _ 5 nsubjpass _ _ 4 被 _ SB SB _ 5 pass _ _ 5 解职 _ VV VV _ 0 root _ _ 1 新华社 _ NR NR _ 7 dep _ _ 2 新德里 _ NR NR _ 7 dep _ _ 3 12月 _ NT NT _ 7 dep _ _ ...
读取之后DataSet具备的格式为
raw_words pos dep_head dep_label [印度, 海军, ...] [NR, NN, SB, ...] [3, 3, ...] [nn, nn, ...] [新华社, 新德里, ...] [NR, NR, NT, ...] [7, 7, 7, ...] [dep, dep, dep, ...] [...] [...] [...] [...] -
download
()[源代码]¶ 由于版权限制,不能提供自动下载功能。可参考
https://catalog.ldc.upenn.edu/LDC2013T21
返回:
-
load
(paths: Union[str, Dict[str, str]] = None) → fastNLP.io.data_bundle.DataBundle¶ 从指定一个或多个路径中的文件中读取数据,返回
DataBundle
。参数: Dict[str, str]] paths (Union[str,) -- 支持以下的几种输入方式:
0.如果为None,则先查看本地是否有缓存,如果没有则自动下载并缓存。
1.传入一个目录, 该目录下名称包含train的被认为是train,包含test的被认为是test,包含dev的被认为是dev,如果检测到多个文件名包含'train'、 'dev'、 'test'则会报错:
data_bundle = xxxLoader().load('/path/to/dir') # 返回的DataBundle中datasets根据目录下是否检测到train # dev、 test等有所变化,可以通过以下的方式取出DataSet tr_data = data_bundle.get_dataset('train') te_data = data_bundle.get_dataset('test') # 如果目录下有文件包含test这个字段
2.传入一个dict,比如train,dev,test不在同一个目录下,或者名称中不包含train, dev, test:
paths = {'train':"/path/to/tr.conll", 'dev':"/to/validate.conll", "test":"/to/te.conll"} data_bundle = xxxLoader().load(paths) # 返回的DataBundle中的dataset中包含"train", "dev", "test" dev_data = data_bundle.get_dataset('dev')
3.传入文件路径:
data_bundle = xxxLoader().load("/path/to/a/train.conll") # 返回DataBundle对象, datasets中仅包含'train' tr_data = data_bundle.get_dataset('train') # 取出DataSet
返回: 返回的 DataBundle
-
-
class
fastNLP.io.loader.
MsraNERLoader
[源代码]¶ 基类
fastNLP.io.CNNERLoader
别名
fastNLP.io.MsraNERLoader
fastNLP.io.loader.MsraNERLoader
读取MSRA-NER数据,数据中的格式应该类似与下列的内容
Example:
把 O 欧 B-LOC 美 B-LOC 、 O 港 B-LOC 台 B-LOC 流 O 行 O 的 O 食 O ...
读取后的DataSet包含以下的field
raw_chars target ['把', '欧'] ['O', 'B-LOC'] ['美', '、'] ['B-LOC', 'O'] [...] [...] -
download
(dev_ratio: float = 0.1, re_download: bool = False) → str[源代码]¶ 自动下载MSAR-NER的数据,如果你使用该数据,请引用 Gina-Anne Levow, 2006, The Third International Chinese Language Processing Bakeoff: Word Segmentation and Named Entity Recognition.
根据dev_ratio的值随机将train中的数据取出一部分作为dev数据。下载完成后在output_dir中有train.conll, test.conll, dev.conll三个文件。
参数: - dev_ratio (float) -- 如果路径中没有dev集,从train划分多少作为dev的数据. 如果为0,则不划分dev。
- re_download (bool) -- 是否重新下载数据,以重新切分数据。
返回: str, 数据集的目录地址
返回:
-
load
(paths: Union[str, Dict[str, str]] = None) → fastNLP.io.data_bundle.DataBundle¶ 从指定一个或多个路径中的文件中读取数据,返回
DataBundle
。参数: Dict[str, str]] paths (Union[str,) -- 支持以下的几种输入方式:
0.如果为None,则先查看本地是否有缓存,如果没有则自动下载并缓存。
1.传入一个目录, 该目录下名称包含train的被认为是train,包含test的被认为是test,包含dev的被认为是dev,如果检测到多个文件名包含'train'、 'dev'、 'test'则会报错:
data_bundle = xxxLoader().load('/path/to/dir') # 返回的DataBundle中datasets根据目录下是否检测到train # dev、 test等有所变化,可以通过以下的方式取出DataSet tr_data = data_bundle.get_dataset('train') te_data = data_bundle.get_dataset('test') # 如果目录下有文件包含test这个字段
2.传入一个dict,比如train,dev,test不在同一个目录下,或者名称中不包含train, dev, test:
paths = {'train':"/path/to/tr.conll", 'dev':"/to/validate.conll", "test":"/to/te.conll"} data_bundle = xxxLoader().load(paths) # 返回的DataBundle中的dataset中包含"train", "dev", "test" dev_data = data_bundle.get_dataset('dev')
3.传入文件路径:
data_bundle = xxxLoader().load("/path/to/a/train.conll") # 返回DataBundle对象, datasets中仅包含'train' tr_data = data_bundle.get_dataset('train') # 取出DataSet
返回: 返回的 DataBundle
-
-
class
fastNLP.io.loader.
PeopleDailyNERLoader
[源代码]¶ 基类
fastNLP.io.CNNERLoader
别名
fastNLP.io.PeopleDailyNERLoader
fastNLP.io.loader.PeopleDailyNERLoader
支持加载的数据格式如下
Example:
中 B-ORG 共 I-ORG 中 I-ORG 央 I-ORG 致 O 中 B-ORG ...
读取后的DataSet包含以下的field
¶ raw_chars target ['中', '共', '中', '央'] ['B-ORG', 'I-ORG', 'I-ORG', 'I-ORG'] [...] [...] -
load
(paths: Union[str, Dict[str, str]] = None) → fastNLP.io.data_bundle.DataBundle¶ 从指定一个或多个路径中的文件中读取数据,返回
DataBundle
。参数: Dict[str, str]] paths (Union[str,) -- 支持以下的几种输入方式:
0.如果为None,则先查看本地是否有缓存,如果没有则自动下载并缓存。
1.传入一个目录, 该目录下名称包含train的被认为是train,包含test的被认为是test,包含dev的被认为是dev,如果检测到多个文件名包含'train'、 'dev'、 'test'则会报错:
data_bundle = xxxLoader().load('/path/to/dir') # 返回的DataBundle中datasets根据目录下是否检测到train # dev、 test等有所变化,可以通过以下的方式取出DataSet tr_data = data_bundle.get_dataset('train') te_data = data_bundle.get_dataset('test') # 如果目录下有文件包含test这个字段
2.传入一个dict,比如train,dev,test不在同一个目录下,或者名称中不包含train, dev, test:
paths = {'train':"/path/to/tr.conll", 'dev':"/to/validate.conll", "test":"/to/te.conll"} data_bundle = xxxLoader().load(paths) # 返回的DataBundle中的dataset中包含"train", "dev", "test" dev_data = data_bundle.get_dataset('dev')
3.传入文件路径:
data_bundle = xxxLoader().load("/path/to/a/train.conll") # 返回DataBundle对象, datasets中仅包含'train' tr_data = data_bundle.get_dataset('train') # 取出DataSet
返回: 返回的 DataBundle
-
-
class
fastNLP.io.loader.
WeiboNERLoader
[源代码]¶ 基类
fastNLP.io.CNNERLoader
别名
fastNLP.io.WeiboNERLoader
fastNLP.io.loader.WeiboNERLoader
读取WeiboNER数据,数据中的格式应该类似与下列的内容
Example:
老 B-PER.NOM 百 I-PER.NOM 姓 I-PER.NOM 心 O ... 读取后的DataSet包含以下的field .. csv-table:: :header: "raw_chars", "target" "['老', '百', '姓']", "['B-PER.NOM', 'I-PER.NOM', 'I-PER.NOM']" "['心']", "['O']" "[...]", "[...]"
-
download
() → str[源代码]¶ 自动下载Weibo-NER的数据,如果你使用了该数据,请引用 Nanyun Peng and Mark Dredze, 2015, Named Entity Recognition for Chinese Social Media with Jointly Trained Embeddings.
返回: str
-
load
(paths: Union[str, Dict[str, str]] = None) → fastNLP.io.data_bundle.DataBundle¶ 从指定一个或多个路径中的文件中读取数据,返回
DataBundle
。参数: Dict[str, str]] paths (Union[str,) -- 支持以下的几种输入方式:
0.如果为None,则先查看本地是否有缓存,如果没有则自动下载并缓存。
1.传入一个目录, 该目录下名称包含train的被认为是train,包含test的被认为是test,包含dev的被认为是dev,如果检测到多个文件名包含'train'、 'dev'、 'test'则会报错:
data_bundle = xxxLoader().load('/path/to/dir') # 返回的DataBundle中datasets根据目录下是否检测到train # dev、 test等有所变化,可以通过以下的方式取出DataSet tr_data = data_bundle.get_dataset('train') te_data = data_bundle.get_dataset('test') # 如果目录下有文件包含test这个字段
2.传入一个dict,比如train,dev,test不在同一个目录下,或者名称中不包含train, dev, test:
paths = {'train':"/path/to/tr.conll", 'dev':"/to/validate.conll", "test":"/to/te.conll"} data_bundle = xxxLoader().load(paths) # 返回的DataBundle中的dataset中包含"train", "dev", "test" dev_data = data_bundle.get_dataset('dev')
3.传入文件路径:
data_bundle = xxxLoader().load("/path/to/a/train.conll") # 返回DataBundle对象, datasets中仅包含'train' tr_data = data_bundle.get_dataset('train') # 取出DataSet
返回: 返回的 DataBundle
-
-
class
fastNLP.io.loader.
CSVLoader
(headers=None, sep=', ', dropna=False)[源代码]¶ -
别名
fastNLP.io.CSVLoader
fastNLP.io.loader.CSVLoader
读取CSV格式的数据集, 返回DataSet
。-
__init__
(headers=None, sep=', ', dropna=False)[源代码]¶ 参数: - headers (List[str]) -- CSV文件的文件头.定义每一列的属性名称,即返回的DataSet中`field`的名称
若为
None
,则将读入文件的第一行视作headers
. Default:None
- sep (str) -- CSV文件中列与列之间的分隔符. Default: ","
- dropna (bool) -- 是否忽略非法数据,若
True
则忽略,若False
,在遇到非法数据时,抛出ValueError
. Default:False
- headers (List[str]) -- CSV文件的文件头.定义每一列的属性名称,即返回的DataSet中`field`的名称
若为
-
download
() → str¶ 自动下载该数据集
返回: 下载后解压目录
-
load
(paths: Union[str, Dict[str, str]] = None) → fastNLP.io.data_bundle.DataBundle¶ 从指定一个或多个路径中的文件中读取数据,返回
DataBundle
。参数: Dict[str, str]] paths (Union[str,) -- 支持以下的几种输入方式:
0.如果为None,则先查看本地是否有缓存,如果没有则自动下载并缓存。
1.传入一个目录, 该目录下名称包含train的被认为是train,包含test的被认为是test,包含dev的被认为是dev,如果检测到多个文件名包含'train'、 'dev'、 'test'则会报错:
data_bundle = xxxLoader().load('/path/to/dir') # 返回的DataBundle中datasets根据目录下是否检测到train # dev、 test等有所变化,可以通过以下的方式取出DataSet tr_data = data_bundle.get_dataset('train') te_data = data_bundle.get_dataset('test') # 如果目录下有文件包含test这个字段
2.传入一个dict,比如train,dev,test不在同一个目录下,或者名称中不包含train, dev, test:
paths = {'train':"/path/to/tr.conll", 'dev':"/to/validate.conll", "test":"/to/te.conll"} data_bundle = xxxLoader().load(paths) # 返回的DataBundle中的dataset中包含"train", "dev", "test" dev_data = data_bundle.get_dataset('dev')
3.传入文件路径:
data_bundle = xxxLoader().load("/path/to/a/train.conll") # 返回DataBundle对象, datasets中仅包含'train' tr_data = data_bundle.get_dataset('train') # 取出DataSet
返回: 返回的 DataBundle
-
-
class
fastNLP.io.loader.
JsonLoader
(fields=None, dropna=False)[源代码]¶ -
别名
fastNLP.io.JsonLoader
fastNLP.io.loader.JsonLoader
别名:
fastNLP.io.JsonLoader
fastNLP.io.loader.JsonLoader
读取json格式数据.数据必须按行存储,每行是一个包含各类属性的json对象
param dict fields: 需要读入的json属性名称, 和读入后在DataSet中存储的field_name fields
的 key 必须是json对象的属性名.fields
的 value 为读入后在DataSet存储的 field_name , value 也可为None
, 这时读入后的 field_name 与json对象对应属性同名fields
可为None
, 这时,json对象所有属性都保存在DataSet中. Default:None
param bool dropna: 是否忽略非法数据,若 True
则忽略,若False
,在遇到非法数据时,抛出ValueError
. Default:False
-
download
() → str¶ 自动下载该数据集
返回: 下载后解压目录
-
load
(paths: Union[str, Dict[str, str]] = None) → fastNLP.io.data_bundle.DataBundle¶ 从指定一个或多个路径中的文件中读取数据,返回
DataBundle
。参数: Dict[str, str]] paths (Union[str,) -- 支持以下的几种输入方式:
0.如果为None,则先查看本地是否有缓存,如果没有则自动下载并缓存。
1.传入一个目录, 该目录下名称包含train的被认为是train,包含test的被认为是test,包含dev的被认为是dev,如果检测到多个文件名包含'train'、 'dev'、 'test'则会报错:
data_bundle = xxxLoader().load('/path/to/dir') # 返回的DataBundle中datasets根据目录下是否检测到train # dev、 test等有所变化,可以通过以下的方式取出DataSet tr_data = data_bundle.get_dataset('train') te_data = data_bundle.get_dataset('test') # 如果目录下有文件包含test这个字段
2.传入一个dict,比如train,dev,test不在同一个目录下,或者名称中不包含train, dev, test:
paths = {'train':"/path/to/tr.conll", 'dev':"/to/validate.conll", "test":"/to/te.conll"} data_bundle = xxxLoader().load(paths) # 返回的DataBundle中的dataset中包含"train", "dev", "test" dev_data = data_bundle.get_dataset('dev')
3.传入文件路径:
data_bundle = xxxLoader().load("/path/to/a/train.conll") # 返回DataBundle对象, datasets中仅包含'train' tr_data = data_bundle.get_dataset('train') # 取出DataSet
返回: 返回的 DataBundle
-
-
class
fastNLP.io.loader.
CWSLoader
(dataset_name: str = None)[源代码]¶ -
别名
fastNLP.io.CWSLoader
fastNLP.io.loader.CWSLoader
CWSLoader支持的数据格式为,一行一句话,不同词之间用空格隔开, 例如:
Example:
上海 浦东 开发 与 法制 建设 同步 新华社 上海 二月 十日 电 ( 记者 谢金虎 、 张持坚 ) ...
该Loader读取后的DataSet具有如下的结构
raw_words 上海 浦东 开发 与 法制 建设 同步 新华社 上海 二月 十日 电 ( 记者 谢金虎 、 张持坚 ) ... -
__init__
(dataset_name: str = None)[源代码]¶ 参数: dataset_name (str) -- data的名称,支持pku, msra, cityu(繁体), as(繁体), None
-
download
(dev_ratio=0.1, re_download=False) → str[源代码]¶ 如果你使用了该数据集,请引用以下的文章:Thomas Emerson, The Second International Chinese Word Segmentation Bakeoff, 2005. 更多信息可以在http://sighan.cs.uchicago.edu/bakeoff2005/查看
参数: - dev_ratio (float) -- 如果路径中没有dev集,从train划分多少作为dev的数据. 如果为0,则不划分dev。
- re_download (bool) -- 是否重新下载数据,以重新切分数据。
返回: str
-
load
(paths: Union[str, Dict[str, str]] = None) → fastNLP.io.data_bundle.DataBundle¶ 从指定一个或多个路径中的文件中读取数据,返回
DataBundle
。参数: Dict[str, str]] paths (Union[str,) -- 支持以下的几种输入方式:
0.如果为None,则先查看本地是否有缓存,如果没有则自动下载并缓存。
1.传入一个目录, 该目录下名称包含train的被认为是train,包含test的被认为是test,包含dev的被认为是dev,如果检测到多个文件名包含'train'、 'dev'、 'test'则会报错:
data_bundle = xxxLoader().load('/path/to/dir') # 返回的DataBundle中datasets根据目录下是否检测到train # dev、 test等有所变化,可以通过以下的方式取出DataSet tr_data = data_bundle.get_dataset('train') te_data = data_bundle.get_dataset('test') # 如果目录下有文件包含test这个字段
2.传入一个dict,比如train,dev,test不在同一个目录下,或者名称中不包含train, dev, test:
paths = {'train':"/path/to/tr.conll", 'dev':"/to/validate.conll", "test":"/to/te.conll"} data_bundle = xxxLoader().load(paths) # 返回的DataBundle中的dataset中包含"train", "dev", "test" dev_data = data_bundle.get_dataset('dev')
3.传入文件路径:
data_bundle = xxxLoader().load("/path/to/a/train.conll") # 返回DataBundle对象, datasets中仅包含'train' tr_data = data_bundle.get_dataset('train') # 取出DataSet
返回: 返回的 DataBundle
-
-
class
fastNLP.io.loader.
MNLILoader
[源代码]¶ -
别名
fastNLP.io.MNLILoader
fastNLP.io.loader.MNLILoader
读取的数据格式为:
Example:
index promptID pairID genre sentence1_binary_parse sentence2_binary_parse sentence1_parse sentence2_parse sentence1 sentence2 label1 gold_label 0 31193 31193n government ( ( Conceptually ( cream skimming ) ) ... 1 101457 101457e telephone ( you ( ( know ( during ( ( ( the season ) and ) ( i guess ) ) )... ...
读取MNLI任务的数据,读取之后的DataSet中包含以下的内容,words0是sentence1, words1是sentence2, target是gold_label, 测试集中没 有target列。
raw_words1 raw_words2 target Conceptually cream ... Product and geography... neutral you know during the ... You lose the things to the... entailment ... ... ... -
download
()[源代码]¶ 如果你使用了这个数据,请引用
https://www.nyu.edu/projects/bowman/multinli/paper.pdf :return:
-
-
class
fastNLP.io.loader.
QuoraLoader
[源代码]¶ -
别名
fastNLP.io.QuoraLoader
fastNLP.io.loader.QuoraLoader
Quora matching任务的数据集Loader
支持读取的文件中的内容,应该有以下的形式, 以制表符分隔,且前三列的内容必须是:第一列是label,第二列和第三列是句子
Example:
1 How do I get funding for my web based startup idea ? How do I get seed funding pre product ? 327970 0 Is honey a viable alternative to sugar for diabetics ? How would you compare the United States ' euthanasia laws to Denmark ? 90348 ...
加载的DataSet将具备以下的field
raw_words1 raw_words2 target How do I get funding for my web based... How do I get seed funding... 1 Is honey a viable alternative ... How would you compare the United... 0 ... ... ... -
download
()[源代码]¶ 由于版权限制,不能提供自动下载功能。可参考
https://www.kaggle.com/c/quora-question-pairs/data
返回:
-
load
(paths: Union[str, Dict[str, str]] = None) → fastNLP.io.data_bundle.DataBundle¶ 从指定一个或多个路径中的文件中读取数据,返回
DataBundle
。参数: Dict[str, str]] paths (Union[str,) -- 支持以下的几种输入方式:
0.如果为None,则先查看本地是否有缓存,如果没有则自动下载并缓存。
1.传入一个目录, 该目录下名称包含train的被认为是train,包含test的被认为是test,包含dev的被认为是dev,如果检测到多个文件名包含'train'、 'dev'、 'test'则会报错:
data_bundle = xxxLoader().load('/path/to/dir') # 返回的DataBundle中datasets根据目录下是否检测到train # dev、 test等有所变化,可以通过以下的方式取出DataSet tr_data = data_bundle.get_dataset('train') te_data = data_bundle.get_dataset('test') # 如果目录下有文件包含test这个字段
2.传入一个dict,比如train,dev,test不在同一个目录下,或者名称中不包含train, dev, test:
paths = {'train':"/path/to/tr.conll", 'dev':"/to/validate.conll", "test":"/to/te.conll"} data_bundle = xxxLoader().load(paths) # 返回的DataBundle中的dataset中包含"train", "dev", "test" dev_data = data_bundle.get_dataset('dev')
3.传入文件路径:
data_bundle = xxxLoader().load("/path/to/a/train.conll") # 返回DataBundle对象, datasets中仅包含'train' tr_data = data_bundle.get_dataset('train') # 取出DataSet
返回: 返回的 DataBundle
-
-
class
fastNLP.io.loader.
SNLILoader
[源代码]¶ -
别名
fastNLP.io.SNLILoader
fastNLP.io.loader.SNLILoader
文件每一行是一个sample,每一行都为一个json对象,其数据格式为:
Example:
{"annotator_labels": ["neutral", "entailment", "neutral", "neutral", "neutral"], "captionID": "4705552913.jpg#2", "gold_label": "neutral", "pairID": "4705552913.jpg#2r1n", "sentence1": "Two women are embracing while holding to go packages.", "sentence1_binary_parse": "( ( Two women ) ( ( are ( embracing ( while ( holding ( to ( go packages ) ) ) ) ) ) . ) )", "sentence1_parse": "(ROOT (S (NP (CD Two) (NNS women)) (VP (VBP are) (VP (VBG embracing) (SBAR (IN while) (S (NP (VBG holding)) (VP (TO to) (VP (VB go) (NP (NNS packages)))))))) (. .)))", "sentence2": "The sisters are hugging goodbye while holding to go packages after just eating lunch.", "sentence2_binary_parse": "( ( The sisters ) ( ( are ( ( hugging goodbye ) ( while ( holding ( to ( ( go packages ) ( after ( just ( eating lunch ) ) ) ) ) ) ) ) ) . ) )", "sentence2_parse": "(ROOT (S (NP (DT The) (NNS sisters)) (VP (VBP are) (VP (VBG hugging) (NP (UH goodbye)) (PP (IN while) (S (VP (VBG holding) (S (VP (TO to) (VP (VB go) (NP (NNS packages)) (PP (IN after) (S (ADVP (RB just)) (VP (VBG eating) (NP (NN lunch))))))))))))) (. .)))" }
读取之后的DataSet中的field情况为
¶ target raw_words1 raw_words2 neutral Two women are embracing while holding.. The sisters are hugging goodbye... entailment Two women are embracing while holding... Two woman are holding packages. ... ... ... -
download
()[源代码]¶ 如果您的文章使用了这份数据,请引用
http://nlp.stanford.edu/pubs/snli_paper.pdf
返回: str
-
load
(paths: Union[str, Dict[str, str]] = None) → fastNLP.io.data_bundle.DataBundle[源代码]¶ 从指定一个或多个路径中的文件中读取数据,返回
DataBundle
。读取的field根据Loader初始化时传入的field决定。
参数: paths (str) -- 传入一个目录, 将在该目录下寻找snli_1.0_train.jsonl, snli_1.0_dev.jsonl 和snli_1.0_test.jsonl三个文件。 返回: 返回的 DataBundle
-
-
class
fastNLP.io.loader.
QNLILoader
[源代码]¶ -
别名
fastNLP.io.QNLILoader
fastNLP.io.loader.QNLILoader
第一行为标题(具体内容会被忽略),之后每一行是一个sample,由index、问题、句子和标签构成(以制表符分割),数据结构如下:
Example:
index question sentence label 0 What came into force after the new constitution was herald? As of that day, the new constitution heralding the Second Republic came into force. entailment
QNLI数据集的Loader, 加载的DataSet将具备以下的field, raw_words1是question, raw_words2是sentence, target是label
raw_words1 raw_words2 target What came into force after the new... As of that day... entailment ... . test数据集没有target列
-
download
()[源代码]¶ 如果您的实验使用到了该数据,请引用
https://arxiv.org/pdf/1809.05053.pdf
返回:
-
load
(paths: Union[str, Dict[str, str]] = None) → fastNLP.io.data_bundle.DataBundle¶ 从指定一个或多个路径中的文件中读取数据,返回
DataBundle
。参数: Dict[str, str]] paths (Union[str,) -- 支持以下的几种输入方式:
0.如果为None,则先查看本地是否有缓存,如果没有则自动下载并缓存。
1.传入一个目录, 该目录下名称包含train的被认为是train,包含test的被认为是test,包含dev的被认为是dev,如果检测到多个文件名包含'train'、 'dev'、 'test'则会报错:
data_bundle = xxxLoader().load('/path/to/dir') # 返回的DataBundle中datasets根据目录下是否检测到train # dev、 test等有所变化,可以通过以下的方式取出DataSet tr_data = data_bundle.get_dataset('train') te_data = data_bundle.get_dataset('test') # 如果目录下有文件包含test这个字段
2.传入一个dict,比如train,dev,test不在同一个目录下,或者名称中不包含train, dev, test:
paths = {'train':"/path/to/tr.conll", 'dev':"/to/validate.conll", "test":"/to/te.conll"} data_bundle = xxxLoader().load(paths) # 返回的DataBundle中的dataset中包含"train", "dev", "test" dev_data = data_bundle.get_dataset('dev')
3.传入文件路径:
data_bundle = xxxLoader().load("/path/to/a/train.conll") # 返回DataBundle对象, datasets中仅包含'train' tr_data = data_bundle.get_dataset('train') # 取出DataSet
返回: 返回的 DataBundle
-
-
class
fastNLP.io.loader.
RTELoader
[源代码]¶ -
别名
fastNLP.io.RTELoader
fastNLP.io.loader.RTELoader
第一行为标题(具体内容会被忽略),之后每一行是一个sample,由index、句子1、句子2和标签构成(以制表符分割),数据结构如下:
Example:
index sentence1 sentence2 label 0 Dana Reeve, the widow of the actor Christopher Reeve, has died of lung cancer at age 44, according to the Christopher Reeve Foundation. Christopher Reeve had an accident. not_entailment
RTE数据的loader 加载的DataSet将具备以下的field, raw_words1是sentence0,raw_words2是sentence1, target是label
raw_words1 raw_words2 target Dana Reeve, the widow of the actor... Christopher Reeve had an... not_entailment ... ... test数据集没有target列
-
download
()[源代码]¶ 如果您的实验使用到了该数据,请引用GLUE Benchmark
https://openreview.net/pdf?id=rJ4km2R5t7
返回:
-
load
(paths: Union[str, Dict[str, str]] = None) → fastNLP.io.data_bundle.DataBundle¶ 从指定一个或多个路径中的文件中读取数据,返回
DataBundle
。参数: Dict[str, str]] paths (Union[str,) -- 支持以下的几种输入方式:
0.如果为None,则先查看本地是否有缓存,如果没有则自动下载并缓存。
1.传入一个目录, 该目录下名称包含train的被认为是train,包含test的被认为是test,包含dev的被认为是dev,如果检测到多个文件名包含'train'、 'dev'、 'test'则会报错:
data_bundle = xxxLoader().load('/path/to/dir') # 返回的DataBundle中datasets根据目录下是否检测到train # dev、 test等有所变化,可以通过以下的方式取出DataSet tr_data = data_bundle.get_dataset('train') te_data = data_bundle.get_dataset('test') # 如果目录下有文件包含test这个字段
2.传入一个dict,比如train,dev,test不在同一个目录下,或者名称中不包含train, dev, test:
paths = {'train':"/path/to/tr.conll", 'dev':"/to/validate.conll", "test":"/to/te.conll"} data_bundle = xxxLoader().load(paths) # 返回的DataBundle中的dataset中包含"train", "dev", "test" dev_data = data_bundle.get_dataset('dev')
3.传入文件路径:
data_bundle = xxxLoader().load("/path/to/a/train.conll") # 返回DataBundle对象, datasets中仅包含'train' tr_data = data_bundle.get_dataset('train') # 取出DataSet
返回: 返回的 DataBundle
-
-
class
fastNLP.io.loader.
CNXNLILoader
[源代码]¶ -
别名
fastNLP.io.CNXNLILoader
fastNLP.io.loader.CNXNLILoader
数据集简介:中文句对NLI(本为multi-lingual的数据集,但是这里只取了中文的数据集)。原句子已被MOSES tokenizer处理,这里我们将其还原并重新按字tokenize 原始数据数据为:
Example:
premise hypo label 我们 家里 有 一个 但 我 没 找到 我 可以 用 的 时间 我们 家里 有 一个 但 我 从来 没有 时间 使用 它 . entailment
dev和test中的数据为csv或json格式,包括十多个field,这里只取与以上三个field中的数据 读取后的Dataset将具有以下数据结构:
raw_chars1 raw_chars2 target 我们 家里 有 一个 但 我 没 找到 我 可以 用 的 时间 我们 家里 有 一个 但 我 从来 没有 时间 使用 它 . 0 ... ... ... -
download
() → str[源代码]¶ 自动下载数据,该数据取自 https://arxiv.org/abs/1809.05053 在 https://arxiv.org/pdf/1905.05526.pdf https://arxiv.org/pdf/1901.10125.pdf https://arxiv.org/pdf/1809.05053.pdf 有使用 :return:
-
-
class
fastNLP.io.loader.
BQCorpusLoader
[源代码]¶ -
别名
fastNLP.io.BQCorpusLoader
fastNLP.io.loader.BQCorpusLoader
别名: 数据集简介:句子对二分类任务(判断是否具有相同的语义) 原始数据结构为:
Example:
sentence1,sentence2,label 综合评分不足什么原因,综合评估的依据,0 什么时候我能使用微粒贷,你就赶快给我开通就行了,0
读取后的Dataset将具有以下数据结构:
raw_chars1 raw_chars2 target 综合评分不足什么原因 综合评估的依据 0 什么时候我能使用微粒贷 你就赶快给我开通就行了 0 ... ... ... -
download
()[源代码]¶ 由于版权限制,不能提供自动下载功能。可参考
https://github.com/ymcui/Chinese-BERT-wwm
返回:
-
load
(paths: Union[str, Dict[str, str]] = None) → fastNLP.io.data_bundle.DataBundle¶ 从指定一个或多个路径中的文件中读取数据,返回
DataBundle
。参数: Dict[str, str]] paths (Union[str,) -- 支持以下的几种输入方式:
0.如果为None,则先查看本地是否有缓存,如果没有则自动下载并缓存。
1.传入一个目录, 该目录下名称包含train的被认为是train,包含test的被认为是test,包含dev的被认为是dev,如果检测到多个文件名包含'train'、 'dev'、 'test'则会报错:
data_bundle = xxxLoader().load('/path/to/dir') # 返回的DataBundle中datasets根据目录下是否检测到train # dev、 test等有所变化,可以通过以下的方式取出DataSet tr_data = data_bundle.get_dataset('train') te_data = data_bundle.get_dataset('test') # 如果目录下有文件包含test这个字段
2.传入一个dict,比如train,dev,test不在同一个目录下,或者名称中不包含train, dev, test:
paths = {'train':"/path/to/tr.conll", 'dev':"/to/validate.conll", "test":"/to/te.conll"} data_bundle = xxxLoader().load(paths) # 返回的DataBundle中的dataset中包含"train", "dev", "test" dev_data = data_bundle.get_dataset('dev')
3.传入文件路径:
data_bundle = xxxLoader().load("/path/to/a/train.conll") # 返回DataBundle对象, datasets中仅包含'train' tr_data = data_bundle.get_dataset('train') # 取出DataSet
返回: 返回的 DataBundle
-
-
class
fastNLP.io.loader.
LCQMCLoader
[源代码]¶ -
别名
fastNLP.io.LCQMCLoader
fastNLP.io.loader.LCQMCLoader
数据集简介:句对匹配(question matching)
原始数据为:
Example:
喜欢打篮球的男生喜欢什么样的女生 爱打篮球的男生喜欢什么样的女生 1 你帮我设计小说的封面吧 谁能帮我给小说设计个封面? 0
读取后的Dataset将具有以下的数据结构
raw_chars1 raw_chars2 target 喜欢打篮球的男生喜欢什么样的女生 爱打篮球的男生喜欢什么样的女生 1 你帮我设计小说的封面吧 妇可以戴耳机听音乐吗? 0 ... ... ... -
download
()[源代码]¶ 由于版权限制,不能提供自动下载功能。可参考
https://github.com/ymcui/Chinese-BERT-wwm
返回:
-
load
(paths: Union[str, Dict[str, str]] = None) → fastNLP.io.data_bundle.DataBundle¶ 从指定一个或多个路径中的文件中读取数据,返回
DataBundle
。参数: Dict[str, str]] paths (Union[str,) -- 支持以下的几种输入方式:
0.如果为None,则先查看本地是否有缓存,如果没有则自动下载并缓存。
1.传入一个目录, 该目录下名称包含train的被认为是train,包含test的被认为是test,包含dev的被认为是dev,如果检测到多个文件名包含'train'、 'dev'、 'test'则会报错:
data_bundle = xxxLoader().load('/path/to/dir') # 返回的DataBundle中datasets根据目录下是否检测到train # dev、 test等有所变化,可以通过以下的方式取出DataSet tr_data = data_bundle.get_dataset('train') te_data = data_bundle.get_dataset('test') # 如果目录下有文件包含test这个字段
2.传入一个dict,比如train,dev,test不在同一个目录下,或者名称中不包含train, dev, test:
paths = {'train':"/path/to/tr.conll", 'dev':"/to/validate.conll", "test":"/to/te.conll"} data_bundle = xxxLoader().load(paths) # 返回的DataBundle中的dataset中包含"train", "dev", "test" dev_data = data_bundle.get_dataset('dev')
3.传入文件路径:
data_bundle = xxxLoader().load("/path/to/a/train.conll") # 返回DataBundle对象, datasets中仅包含'train' tr_data = data_bundle.get_dataset('train') # 取出DataSet
返回: 返回的 DataBundle
-
-
class
fastNLP.io.loader.
CoReferenceLoader
(fields=None, dropna=False)[源代码]¶ 基类
fastNLP.io.loader.JsonLoader
别名
fastNLP.io.CoReferenceLoader
fastNLP.io.loader.CoReferenceLoader
原始数据中内容应该为, 每一行为一个json对象,其中doc_key包含文章的种类信息,speakers包含每句话的说话者信息,cluster是指向现实中同一个事物的聚集,sentences是文本信息内容。
Example:
{"doc_key": "bc/cctv/00/cctv_0000_0", "speakers": [["Speaker#1", "Speaker#1", "Speaker#1", "Speaker#1", "Speaker#1", "Speaker#1", "Speaker#1", "Speaker#1", "Speaker#1", "Speaker#1", "Speaker#1", "Speaker#1", "Speaker#1", "Speaker#1", "Speaker#1", "Speaker#1", "Speaker#1", "Speaker#1", "Speaker#1", "Speaker#1", "Speaker#1", "Speaker#1", "Speaker#1", "Speaker#1", "Speaker#1", "Speaker#1", "Speaker#1"], ["Speaker#1", "Speaker#1", "Speaker#1", "Speaker#1", "Speaker#1", "Speaker#1", "Speaker#1", "Speaker#1", "Speaker#1", "Speaker#1", "Speaker#1", "Speaker#1", "Speaker#1", "Speaker#1", "Speaker#1", "Speaker#1", "Speaker#1", "Speaker#1", "Speaker#1", "Speaker#1", "Speaker#1", "Speaker#1", "Speaker#1", "Speaker#1"], ["Speaker#1", "Speaker#1", "Speaker#1", "Speaker#1", "Speaker#1", "Speaker#1", "Speaker#1", "Speaker#1", "Speaker#1", "Speaker#1", "Speaker#1", "Speaker#1", "Speaker#1", "Speaker#1"]], "clusters": [[[70, 70], [485, 486], [500, 500], [73, 73], [55, 55], [153, 154], [366, 366]]], "sentences": [["In", "the", "summer", "of", "2005", ",", "a", "picture", "that", "people", "have", "long", "been", "looking", "forward", "to", "started", "emerging", "with", "frequency", "in", "various", "major", "Hong", "Kong", "media", "."], ["With", "their", "unique", "charm", ",", "these", "well", "-", "known", "cartoon", "images", "once", "again", "caused", "Hong", "Kong", "to", "be", "a", "focus", "of", "worldwide", "attention", "."]] }
读取预处理好的Conll2012数据,数据结构如下:
raw_words1 raw_words2 raw_words3 raw_words4 bc/cctv/00/cctv_0000_0 [['Speaker#1', 'Speaker#1', 'Speaker#1... [[[70, 70], [485, 486], [500, 500], [7... [['In', 'the', 'summer', 'of', '2005',... ... ... ... ... -
download
()[源代码]¶ 由于版权限制,不能提供自动下载功能。可参考
https://www.aclweb.org/anthology/W12-4501
返回:
-
load
(paths: Union[str, Dict[str, str]] = None) → fastNLP.io.data_bundle.DataBundle¶ 从指定一个或多个路径中的文件中读取数据,返回
DataBundle
。参数: Dict[str, str]] paths (Union[str,) -- 支持以下的几种输入方式:
0.如果为None,则先查看本地是否有缓存,如果没有则自动下载并缓存。
1.传入一个目录, 该目录下名称包含train的被认为是train,包含test的被认为是test,包含dev的被认为是dev,如果检测到多个文件名包含'train'、 'dev'、 'test'则会报错:
data_bundle = xxxLoader().load('/path/to/dir') # 返回的DataBundle中datasets根据目录下是否检测到train # dev、 test等有所变化,可以通过以下的方式取出DataSet tr_data = data_bundle.get_dataset('train') te_data = data_bundle.get_dataset('test') # 如果目录下有文件包含test这个字段
2.传入一个dict,比如train,dev,test不在同一个目录下,或者名称中不包含train, dev, test:
paths = {'train':"/path/to/tr.conll", 'dev':"/to/validate.conll", "test":"/to/te.conll"} data_bundle = xxxLoader().load(paths) # 返回的DataBundle中的dataset中包含"train", "dev", "test" dev_data = data_bundle.get_dataset('dev')
3.传入文件路径:
data_bundle = xxxLoader().load("/path/to/a/train.conll") # 返回DataBundle对象, datasets中仅包含'train' tr_data = data_bundle.get_dataset('train') # 取出DataSet
返回: 返回的 DataBundle
-
-
class
fastNLP.io.loader.
CMRC2018Loader
[源代码]¶ -
别名
fastNLP.io.CMRC2018Loader
fastNLP.io.loader.qa.CMRC2018Loader
请直接使用从fastNLP下载的数据进行处理。该数据集未提供测试集,测试需要通过上传到对应的系统进行评测
读取之后训练集DataSet将具备以下的内容,每个问题的答案只有一个
¶ 范廷颂 范廷颂枢机(,),圣名保禄·若瑟()... 范廷颂是什么时候被任为主教的? ["1963年"] ["30"] TRAIN_186_QUERY_0 范廷颂 范廷颂枢机(,),圣名保禄·若瑟()... 1990年,范廷颂担任什么职务? ["1990年被擢升为天..."] ["41"] TRAIN_186_QUERY_1 ... ... ... ... . ... 其中title是文本的标题,多条记录可能是相同的title;id是该问题的id,具备唯一性
验证集DataSet将具备以下的内容,每个问题的答案可能有三个(有时候只是3个重复的答案)
title context question answers answer_starts id 战国无双3 《战国无双3》()是由光荣和ω-force开发... 《战国无双3》是由哪两个公司合作开发的? ['光荣和ω-force', '光荣和ω-force', '光荣和ω-force'] [30, 30, 30] DEV_0_QUERY_0 战国无双3 《战国无双3》()是由光荣和ω-force开发... 男女主角亦有专属声优这一模式是由谁改编的? ['村雨城', '村雨城', '任天堂游戏谜之村雨城'] [226, 226, 219] DEV_0_QUERY_1 ... ... ... ... . ... 其中answer_starts是从0开始的index。例如"我来自a复旦大学?",其中"复"的开始index为4。另外"Russell评价说"中的说的index为9, 因为 英文和数字都直接按照character计量的。
-
download
() → str[源代码]¶ 如果您使用了本数据,请引用A Span-Extraction Dataset for Chinese Machine Reading Comprehension. Yiming Cui, Ting Liu, etc.
返回:
-
load
(paths: Union[str, Dict[str, str]] = None) → fastNLP.io.data_bundle.DataBundle¶ 从指定一个或多个路径中的文件中读取数据,返回
DataBundle
。参数: Dict[str, str]] paths (Union[str,) -- 支持以下的几种输入方式:
0.如果为None,则先查看本地是否有缓存,如果没有则自动下载并缓存。
1.传入一个目录, 该目录下名称包含train的被认为是train,包含test的被认为是test,包含dev的被认为是dev,如果检测到多个文件名包含'train'、 'dev'、 'test'则会报错:
data_bundle = xxxLoader().load('/path/to/dir') # 返回的DataBundle中datasets根据目录下是否检测到train # dev、 test等有所变化,可以通过以下的方式取出DataSet tr_data = data_bundle.get_dataset('train') te_data = data_bundle.get_dataset('test') # 如果目录下有文件包含test这个字段
2.传入一个dict,比如train,dev,test不在同一个目录下,或者名称中不包含train, dev, test:
paths = {'train':"/path/to/tr.conll", 'dev':"/to/validate.conll", "test":"/to/te.conll"} data_bundle = xxxLoader().load(paths) # 返回的DataBundle中的dataset中包含"train", "dev", "test" dev_data = data_bundle.get_dataset('dev')
3.传入文件路径:
data_bundle = xxxLoader().load("/path/to/a/train.conll") # 返回DataBundle对象, datasets中仅包含'train' tr_data = data_bundle.get_dataset('train') # 取出DataSet
返回: 返回的 DataBundle
-