fastNLP.io.pipe.classification module

undocumented

class fastNLP.io.pipe.classification.AGsNewsPipe(lower: bool = False, tokenizer: str = 'spacy')[源代码]

基类:fastNLP.io.pipe.classification.CLSBasePipe

基类 fastNLP.io.CLSBasePipe

别名 fastNLP.io.AGsNewsPipe fastNLP.io.pipe.AGsNewsPipe

处理AG’s News的数据, 处理之后DataSet中的内容如下

下面是使用AGsNewsPipe处理后的DataSet所具备的field

raw_words

target

words

seq_len

I got ‘new’ tires from them and within…

0

[7, 110, 22, 107, 22, 499, 59, 140, 3,…]

160

Don’t waste your time. We had two dif…

0

[277, 17, 278, 38, 30, 112, 24, 85, 27…

40

.

[…]

.

dataset的print_field_meta()函数输出的各个field的被设置成input和target的情况为:

+-------------+-----------+--------+-------+---------+
| field_names | raw_words | target | words | seq_len |
+-------------+-----------+--------+-------+---------+
|   is_input  |   False   | False  |  True |   True  |
|  is_target  |   False   |  True  | False |  False  |
| ignore_type |           | False  | False |  False  |
|  pad_value  |           |   0    |   0   |    0    |
+-------------+-----------+--------+-------+---------+
__init__(lower: bool = False, tokenizer: str = 'spacy')[源代码]
参数
  • lower (bool) – 是否对输入进行小写化。

  • tokenizer (str) – 使用哪种tokenize方式将数据切成单词。支持’spacy’和’raw’。raw使用空格作为切分。

process_from_file(paths=None)[源代码]
参数

paths (str) –

返回

DataBundle

class fastNLP.io.pipe.classification.DBPediaPipe(lower: bool = False, tokenizer: str = 'spacy')[源代码]

基类:fastNLP.io.pipe.classification.CLSBasePipe

基类 fastNLP.io.CLSBasePipe

别名 fastNLP.io.DBPediaPipe fastNLP.io.pipe.DBPediaPipe

处理DBPedia的数据, 处理之后DataSet中的内容如下

下面是使用DBPediaPipe处理后的DataSet所具备的field

raw_words

target

words

seq_len

I got ‘new’ tires from them and within…

0

[7, 110, 22, 107, 22, 499, 59, 140, 3,…]

160

Don’t waste your time. We had two dif…

0

[277, 17, 278, 38, 30, 112, 24, 85, 27…

40

.

[…]

.

dataset的print_field_meta()函数输出的各个field的被设置成input和target的情况为:

+-------------+-----------+--------+-------+---------+
| field_names | raw_words | target | words | seq_len |
+-------------+-----------+--------+-------+---------+
|   is_input  |   False   | False  |  True |   True  |
|  is_target  |   False   |  True  | False |  False  |
| ignore_type |           | False  | False |  False  |
|  pad_value  |           |   0    |   0   |    0    |
+-------------+-----------+--------+-------+---------+
__init__(lower: bool = False, tokenizer: str = 'spacy')[源代码]
参数
  • lower (bool) – 是否对输入进行小写化。

  • tokenizer (str) – 使用哪种tokenize方式将数据切成单词。支持’spacy’和’raw’。raw使用空格作为切分。

process_from_file(paths=None)[源代码]
参数

paths (str) –

返回

DataBundle

class fastNLP.io.pipe.classification.YelpFullPipe(lower: bool = False, granularity=5, tokenizer: str = 'spacy')[源代码]

基类:fastNLP.io.pipe.classification.CLSBasePipe

基类 fastNLP.io.CLSBasePipe

别名 fastNLP.io.YelpFullPipe fastNLP.io.pipe.YelpFullPipe

处理YelpFull的数据, 处理之后DataSet中的内容如下

下面是使用YelpFullPipe处理后的DataSet所具备的field

raw_words

target

words

seq_len

I got ‘new’ tires from them and within…

0

[7, 110, 22, 107, 22, 499, 59, 140, 3,…]

160

Don’t waste your time. We had two dif…

0

[277, 17, 278, 38, 30, 112, 24, 85, 27…

40

.

[…]

.

dataset的print_field_meta()函数输出的各个field的被设置成input和target的情况为:

+-------------+-----------+--------+-------+---------+
| field_names | raw_words | target | words | seq_len |
+-------------+-----------+--------+-------+---------+
|   is_input  |   False   | False  |  True |   True  |
|  is_target  |   False   |  True  | False |  False  |
| ignore_type |           | False  | False |  False  |
|  pad_value  |           |   0    |   0   |    0    |
+-------------+-----------+--------+-------+---------+
__init__(lower: bool = False, granularity=5, tokenizer: str = 'spacy')[源代码]
参数
  • lower (bool) – 是否对输入进行小写化。

  • granularity (int) – 支持2, 3, 5。若为2, 则认为是2分类问题,将1、2归为1类,4、5归为一类,丢掉2;若为3, 则有3分类问题,将 1、2归为1类,3归为1类,4、5归为1类;若为5, 则有5分类问题。

  • tokenizer (str) – 使用哪种tokenize方式将数据切成单词。支持’spacy’和’raw’。raw使用空格作为切分。

process(data_bundle)[源代码]

传入的DataSet应该具备如下的结构

raw_words

target

I got ‘new’ tires from them and…

1

Don’t waste your time. We had two…

1

参数

data_bundle

返回

process_from_file(paths=None)[源代码]
参数

paths

返回

DataBundle

class fastNLP.io.pipe.classification.YelpPolarityPipe(lower: bool = False, tokenizer: str = 'spacy')[源代码]

基类:fastNLP.io.pipe.classification.CLSBasePipe

基类 fastNLP.io.CLSBasePipe

别名 fastNLP.io.YelpPolarityPipe fastNLP.io.pipe.YelpPolarityPipe

处理YelpPolarity的数据, 处理之后DataSet中的内容如下

下面是使用YelpFullPipe处理后的DataSet所具备的field

raw_words

target

words

seq_len

I got ‘new’ tires from them and within…

0

[7, 110, 22, 107, 22, 499, 59, 140, 3,…]

160

Don’t waste your time. We had two dif…

0

[277, 17, 278, 38, 30, 112, 24, 85, 27…

40

.

[…]

.

dataset的print_field_meta()函数输出的各个field的被设置成input和target的情况为:

+-------------+-----------+--------+-------+---------+
| field_names | raw_words | target | words | seq_len |
+-------------+-----------+--------+-------+---------+
|   is_input  |   False   | False  |  True |   True  |
|  is_target  |   False   |  True  | False |  False  |
| ignore_type |           | False  | False |  False  |
|  pad_value  |           |   0    |   0   |    0    |
+-------------+-----------+--------+-------+---------+
__init__(lower: bool = False, tokenizer: str = 'spacy')[源代码]
参数
  • lower (bool) – 是否对输入进行小写化。

  • tokenizer (str) – 使用哪种tokenize方式将数据切成单词。支持’spacy’和’raw’。raw使用空格作为切分。

process_from_file(paths=None)[源代码]
参数

paths (str) –

返回

DataBundle

class fastNLP.io.pipe.classification.SSTPipe(subtree=False, train_subtree=True, lower=False, granularity=5, tokenizer='spacy')[源代码]

基类:fastNLP.io.pipe.classification.CLSBasePipe

基类 fastNLP.io.CLSBasePipe

别名 fastNLP.io.SSTPipe fastNLP.io.pipe.SSTPipe

经过该Pipe之后,DataSet中具备的field如下所示

下面是使用SSTPipe处理后的DataSet所具备的field

raw_words

words

target

seq_len

It ‘s a lovely film with lovely perfor…

1

[187, 6, 5, 132, 120, 70, 132, 188, 25…

13

No one goes unindicted here , which is…

0

[191, 126, 192, 193, 194, 4, 195, 17, …

13

.

[…]

.

dataset的print_field_meta()函数输出的各个field的被设置成input和target的情况为:

+-------------+-----------+--------+-------+---------+
| field_names | raw_words | target | words | seq_len |
+-------------+-----------+--------+-------+---------+
|   is_input  |   False   | False  |  True |   True  |
|  is_target  |   False   |  True  | False |  False  |
| ignore_type |           | False  | False |  False  |
|  pad_value  |           |   0    |   0   |    0    |
+-------------+-----------+--------+-------+---------+
__init__(subtree=False, train_subtree=True, lower=False, granularity=5, tokenizer='spacy')[源代码]
参数
  • subtree (bool) – 是否将train, test, dev数据展开为子树,扩充数据量。 Default: False

  • train_subtree (bool) – 是否将train集通过子树扩展数据。

  • lower (bool) – 是否对输入进行小写化。

  • granularity (int) – 支持2, 3, 5。若为2, 则认为是2分类问题,将0、1归为1类,3、4归为一类,丢掉2;若为3, 则有3分类问题,将 0、1归为1类,2归为1类,3、4归为1类;若为5, 则有5分类问题。

  • tokenizer (str) – 使用哪种tokenize方式将数据切成单词。支持’spacy’和’raw’。raw使用空格作为切分。

process(data_bundle: fastNLP.io.data_bundle.DataBundle)[源代码]

对DataBundle中的数据进行预处理。输入的DataSet应该至少拥有raw_words这一列,且内容类似与

下面是使用SSTLoader读取的DataSet所具备的field

raw_words

(2 (3 (3 Effective) (2 but)) (1 (1 too-tepid)…

(3 (3 (2 If) (3 (2 you) (3 (2 sometimes) …

参数

data_bundle (DataBundle) – 需要处理的DataBundle对象

返回

class fastNLP.io.pipe.classification.SST2Pipe(lower=False, tokenizer='spacy')[源代码]

基类:fastNLP.io.pipe.classification.CLSBasePipe

基类 fastNLP.io.CLSBasePipe

别名 fastNLP.io.SST2Pipe fastNLP.io.pipe.SST2Pipe

加载SST2的数据, 处理完成之后DataSet将拥有以下的field

raw_words

target

words

seq_len

it ‘s a charming and often affecting j…

1

[19, 9, 6, 111, 5, 112, 113, 114, 3]

9

unflinchingly bleak and desperate

0

[115, 116, 5, 117]

4

.

.

dataset的print_field_meta()函数输出的各个field的被设置成input和target的情况为:

+-------------+-----------+--------+-------+---------+
| field_names | raw_words | target | words | seq_len |
+-------------+-----------+--------+-------+---------+
|   is_input  |   False   | False  |  True |   True  |
|  is_target  |   False   |  True  | False |  False  |
| ignore_type |           | False  | False |  False  |
|  pad_value  |           |   0    |   0   |    0    |
+-------------+-----------+--------+-------+---------+
__init__(lower=False, tokenizer='spacy')[源代码]
参数
  • lower (bool) – 是否对输入进行小写化。

  • tokenizer (str) – 使用哪种tokenize方式将数据切成单词。支持’spacy’和’raw’。raw使用空格作为切分。

process_from_file(paths=None)[源代码]
参数

paths (str) – 如果为None,则自动下载并缓存到fastNLP的缓存地址。

返回

DataBundle

class fastNLP.io.pipe.classification.IMDBPipe(lower: bool = False, tokenizer: str = 'spacy')[源代码]

基类:fastNLP.io.pipe.classification.CLSBasePipe

基类 fastNLP.io.CLSBasePipe

别名 fastNLP.io.IMDBPipe fastNLP.io.pipe.IMDBPipe

经过本Pipe处理后DataSet将如下

输出DataSet的field

raw_words

target

words

seq_len

Bromwell High is a cartoon …

0

[3, 5, 6, 9, …]

20

Story of a man who has …

1

[20, 43, 9, 10, …]

31

.

[…]

.

其中raw_words为str类型,是原文; words是转换为index的输入; target是转换为index的目标值; words列被设置为input; target列被设置为target。

dataset的print_field_meta()函数输出的各个field的被设置成input和target的情况为:

+-------------+-----------+--------+-------+---------+
| field_names | raw_words | target | words | seq_len |
+-------------+-----------+--------+-------+---------+
|   is_input  |   False   | False  |  True |   True  |
|  is_target  |   False   |  True  | False |  False  |
| ignore_type |           | False  | False |  False  |
|  pad_value  |           |   0    |   0   |    0    |
+-------------+-----------+--------+-------+---------+
__init__(lower: bool = False, tokenizer: str = 'spacy')[源代码]
参数
  • lower (bool) – 是否将words列的数据小写。

  • tokenizer (str) – 使用什么tokenizer来将句子切分为words. 支持spacy, raw两种。raw即使用空格拆分。

process(data_bundle: fastNLP.io.data_bundle.DataBundle)[源代码]

期待的DataBunlde中输入的DataSet应该类似于如下,有两个field,raw_words和target,且均为str类型

输入DataSet的field

raw_words

target

Bromwell High is a cartoon …

pos

Story of a man who has …

neg

参数

data_bundle (DataBunlde) – 传入的DataBundle中的DataSet必须包含raw_words和target两个field,且raw_words列应该为str, target列应该为str。

返回

DataBundle

process_from_file(paths=None)[源代码]
参数

paths – 支持路径类型参见 fastNLP.io.loader.Loader 的load函数。

返回

DataBundle

class fastNLP.io.pipe.classification.ChnSentiCorpPipe(bigrams=False, trigrams=False)[源代码]

基类:fastNLP.io.pipe.pipe.Pipe

基类 fastNLP.io.Pipe

别名 fastNLP.io.ChnSentiCorpPipe fastNLP.io.pipe.ChnSentiCorpPipe

处理之后的DataSet有以下的结构

raw_chars

target

chars

seq_len

這間酒店環境和服務態度亦算不錯,但房間空間太小~~

1

[2, 3, 4, 5, …]

31

<荐书> 推荐所有喜欢<红楼>…

1

[10, 21, ….]

25

其中chars, seq_len是input,target是target dataset的print_field_meta()函数输出的各个field的被设置成input和target的情况为:

+-------------+-----------+--------+-------+---------+
| field_names | raw_chars | target | chars | seq_len |
+-------------+-----------+--------+-------+---------+
|   is_input  |   False   |  True  |  True |   True  |
|  is_target  |   False   |  True  | False |  False  |
| ignore_type |           | False  | False |  False  |
|  pad_value  |           |   0    |   0   |    0    |
+-------------+-----------+--------+-------+---------+
__init__(bigrams=False, trigrams=False)[源代码]
参数
  • bigrams (bool) – 是否增加一列bigrams. bigrams的构成是[‘复’, ‘旦’, ‘大’, ‘学’, …]->[“复旦”, “旦大”, …]。如果 设置为True,返回的DataSet将有一列名为bigrams, 且已经转换为了index并设置为input,对应的vocab可以通过 data_bundle.get_vocab(‘bigrams’)获取.

  • trigrams (bool) – 是否增加一列trigrams. trigrams的构成是 [‘复’, ‘旦’, ‘大’, ‘学’, …]->[“复旦大”, “旦大学”, …] 。如果设置为True,返回的DataSet将有一列名为trigrams, 且已经转换为了index并设置为input,对应的vocab可以通过 data_bundle.get_vocab(‘trigrams’)获取.

process(data_bundle: fastNLP.io.data_bundle.DataBundle)[源代码]

可以处理的DataSet应该具备以下的field

raw_chars

target

這間酒店環境和服務態度亦算不錯,但房間空間太小~~

1

<荐书> 推荐所有喜欢<红楼>…

1

参数

data_bundle

返回

process_from_file(paths=None)[源代码]
参数

paths – 支持路径类型参见 fastNLP.io.loader.Loader 的load函数。

返回

DataBundle

class fastNLP.io.pipe.classification.THUCNewsPipe(bigrams=False, trigrams=False)[源代码]

基类:fastNLP.io.pipe.classification.CLSBasePipe

基类 fastNLP.io.CLSBasePipe

别名 fastNLP.io.THUCNewsPipe fastNLP.io.pipe.THUCNewsPipe

处理之后的DataSet有以下的结构

raw_chars

target

chars

seq_len

马晓旭意外受伤让国奥警惕 无奈大雨格外青睐殷家军记者傅亚雨沈阳报道…

0

[409, 1197, 2146, 213, …]

746

其中chars, seq_len是input,target是target dataset的print_field_meta()函数输出的各个field的被设置成input和target的情况为:

+-------------+-----------+--------+-------+---------+
| field_names | raw_chars | target | chars | seq_len |
+-------------+-----------+--------+-------+---------+
|   is_input  |   False   |  True  |  True |   True  |
|  is_target  |   False   |  True  | False |  False  |
| ignore_type |           | False  | False |  False  |
|  pad_value  |           |   0    |   0   |    0    |
+-------------+-----------+--------+-------+---------+
param bool bigrams

是否增加一列bigrams. bigrams的构成是[‘复’, ‘旦’, ‘大’, ‘学’, …]->[“复旦”, “旦大”, …]。如果 设置为True,返回的DataSet将有一列名为bigrams, 且已经转换为了index并设置为input,对应的vocab可以通过 data_bundle.get_vocab(‘bigrams’)获取.

param bool trigrams

是否增加一列trigrams. trigrams的构成是 [‘复’, ‘旦’, ‘大’, ‘学’, …]->[“复旦大”, “旦大学”, …] 。如果设置为True,返回的DataSet将有一列名为trigrams, 且已经转换为了index并设置为input,对应的vocab可以通过 data_bundle.get_vocab(‘trigrams’)获取.

process(data_bundle: fastNLP.io.data_bundle.DataBundle)[源代码]

可处理的DataSet应具备如下的field

raw_words

target

马晓旭意外受伤让国奥警惕 无奈大雨格外青睐殷家军记者傅亚雨沈阳报道 …

体育

参数

data_bundle

返回

process_from_file(paths=None)[源代码]
参数

paths – 支持路径类型参见 fastNLP.io.loader.Loader 的load函数。

返回

DataBundle

class fastNLP.io.pipe.classification.WeiboSenti100kPipe(bigrams=False, trigrams=False)[源代码]

基类:fastNLP.io.pipe.classification.CLSBasePipe

基类 fastNLP.io.CLSBasePipe

别名 fastNLP.io.WeiboSenti100kPipe fastNLP.io.pipe.WeiboSenti100kPipe

处理之后的DataSet有以下的结构

raw_chars

target

chars

seq_len

六一出生的?好讽刺…… //@祭春姬:他爸爸是外星人吧 //@面孔小高:现在的孩子都怎么了 [怒][怒][怒]

0

[0, 690, 18, …]

56

其中chars, seq_len是input,target是target dataset的print_field_meta()函数输出的各个field的被设置成input和target的情况为:

+-------------+-----------+--------+-------+---------+
| field_names | raw_chars | target | chars | seq_len |
+-------------+-----------+--------+-------+---------+
|   is_input  |   False   |  True  |  True |   True  |
|  is_target  |   False   |  True  | False |  False  |
| ignore_type |           | False  | False |  False  |
|  pad_value  |           |   0    |   0   |    0    |
+-------------+-----------+--------+-------+---------+
param bool bigrams

是否增加一列bigrams. bigrams的构成是[‘复’, ‘旦’, ‘大’, ‘学’, …]->[“复旦”, “旦大”, …]。如果 设置为True,返回的DataSet将有一列名为bigrams, 且已经转换为了index并设置为input,对应的vocab可以通过 data_bundle.get_vocab(‘bigrams’)获取.

param bool trigrams

是否增加一列trigrams. trigrams的构成是 [‘复’, ‘旦’, ‘大’, ‘学’, …]->[“复旦大”, “旦大学”, …] 。如果设置为True,返回的DataSet将有一列名为trigrams, 且已经转换为了index并设置为input,对应的vocab可以通过 data_bundle.get_vocab(‘trigrams’)获取.

process(data_bundle: fastNLP.io.data_bundle.DataBundle)[源代码]

可处理的DataSet应具备以下的field

raw_chars

target

六一出生的?好讽刺…… //@祭春姬:他爸爸是外星人吧 //@面孔小高:现在的孩子都怎么了 [怒][怒][怒]

0

参数

data_bundle

返回

process_from_file(paths=None)[源代码]
参数

paths – 支持路径类型参见 fastNLP.io.loader.Loader 的load函数。

返回

DataBundle