数据

子模块

数据集(Dataset)

class Example[源代码]

基类:object

class Dataset(examples, fields, filter_pred=None)[源代码]

基类:torch.utils.data.dataset.Dataset

数据集抽象类,在配置文件中的配置项通常为:

[Dataset]
class = "CTB"

[Dataset.init]
path="data/postag"
train="train.txt"
validation="dev.txt"
test="test.txt"

定义一个由 Examples 和 Fields 组合成的 Dataset

sort_key

用于在生成Batch的是时候进行排序的函数

Type

callable

examples

数据集的 Examples

Type

List[Example]

fields

Fields,同一个 Field Object 会共享它们的 Vocab

Type

dict[str, Field]

classmethod splits(path=None, root='.data', train=None, validation=None, test=None, **kwargs)[源代码]

一次创建多个数据集

参数
  • path – 数据集路径前缀

  • root – 根目录

  • train – 训练集文件名

  • validation – 验证集文件名

  • test – 测试集文件名

  • **kwargs – 其他传给Dataset的参数

返回

Tuple[Dataset] train, validation, test

split(split_ratio=0.7, stratified=False, strata_field='label', random_state=None)[源代码]

通过切分当前数据集的Examples以获得多个数据集

参数
  • split_ratio (float/list(float)) – 切分比例(默认为0.7)

  • stratified – 是否进行分层采样

  • strata_field – 分层采样的field

  • random_state – 用于Shuffle的随机种子`random.getstate()`的返回值

返回

Tuple[Dataset] train, validation, test Dataset

filter_examples(field_names)[源代码]

Remove unknown words from dataset examples with respect to given field.

参数

field_names (list(str)) – Within example only the parts with field names in field_names will have their unknown words deleted.

classmethod by_name(name)

通过注册的名字取得实际的类型

参数

name – 注册的名字

返回

Type[T] 使用 name 注册的子类

返回类型

class

引发

RegistrationError – 如果 name 未被注册

classmethod from_params(__config, *args, extra=None, **kwargs)

使用 config 生成对象

参数
  • cls – 类型

  • __config – 配置项,通常为字典,形如 {‘class’:’ClassName’, ‘init’:{ ‘arg’: arg } }

  • *args – 直接传入的arg

  • extra – 根据需要传入的数据

  • **kwargs – 其他参数

返回

根据参数生成的对象

classmethod hook(hook)

函数装饰器,给某个类注册装饰器

classmethod is_registered(name)

如果 name 在类中已经注册,则返回 True

classmethod iter_registered()

迭代已经注册的名字和对象

classmethod list_available()

列出所有的注册子类

classmethod register(name, override=False, hooks=None)

装饰器 Class decorator for registering a subclass.

参数
  • name – 注册名

  • override (bool) – 当name已经注册时,是否进行覆盖

  • hooks (List[HookType]) – 在注册时会被执行的Hook函数

引发

RegistrationError – 如果 override 为 false 并且 name 已经被注册

classmethod weak_register(name, subclass, override=False, hooks=None)

用于手动对子类进行注册

参数
  • name (str) – 子类的引用名

  • subclass – 子类类型

  • override (bool) – 当name已经注册时,是否进行覆盖

  • hooks – 在注册时会被执行的Hook函数

引发

RegistrationError – 如果 override 为 false 并且 name 已经被注册

class LineDataset(path, file, fields, split='\x00', maxsplit=0, silent=True, proxy_property=None, line_split=None, line_strip=None, **kwargs)[源代码]

基类:ltp.data.dataset.dataset.Dataset

Dataset 注册名: line 每一行一个句子,词语之间按空格分割,下划线分割词语与词性,例子如下:

上海_NR   浦东_NR   开发_NN   与_CC    法制_NN   建设_NN   同步_VV

或者使用其他字符分割(由split参数控制)

上海/NR 浦东/NR 开发/NN 与/CC 法制/NN 建设/NN 同步/VV

class CorpusDataset(path, file, fields, multi_field=None, split=None, strip=None, proxy_property=None, **kwargs)[源代码]

基类:ltp.data.dataset.dataset.Dataset

Dataset 注册名: Corpus Conll 文本标准,不同Field之间使用 Tab 分割,不同句子之间有一空行,例子如下:

科学      _       O       B-ARG0  B-ARG0  O
发展观     _       O       I-ARG0  I-ARG0  O
绝对      _       O       B-ARGM-ADV      B-ARGM-ADV      O
       _       O       B-ARGM-ADV      B-ARGM-ADV      O
class MixedDataset(path, file, fields, text='text')[源代码]

基类:ltp.data.dataset.dataset.Dataset

数据域(Field)

class Field(name, preprocessing=None, postprocessing=None, is_target=False)[源代码]

基类:object

通用基础 Field 类型

每个数据集都会包含各种类型的数据,它们都可以被表示为Field,它描述了数据被处理的过程。

在配置文件中配置项为:

[[Fields]]
class = "BertField"
name = "text"
[Fields.init]
batch_first=true
pretrained="data/albert_g/vocab.txt"
config={"do_lower_case" = false}
include_lengths=false

[[Fields]]
class = "TagField"
name = "text_len"
[Fields.init]
is_target=false
use_vocab=false
属性:
is_target: 是否是目标域。

Default: False

classmethod by_name(name)

通过注册的名字取得实际的类型

参数

name – 注册的名字

返回

Type[T] 使用 name 注册的子类

返回类型

class

引发

RegistrationError – 如果 name 未被注册

classmethod from_params(__config, *args, extra=None, **kwargs)

使用 config 生成对象

参数
  • cls – 类型

  • __config – 配置项,通常为字典,形如 {‘class’:’ClassName’, ‘init’:{ ‘arg’: arg } }

  • *args – 直接传入的arg

  • extra – 根据需要传入的数据

  • **kwargs – 其他参数

返回

根据参数生成的对象

classmethod hook(hook)

函数装饰器,给某个类注册装饰器

classmethod is_registered(name)

如果 name 在类中已经注册,则返回 True

classmethod iter_registered()

迭代已经注册的名字和对象

classmethod list_available()

列出所有的注册子类

classmethod register(name, override=False, hooks=None)

装饰器 Class decorator for registering a subclass.

参数
  • name – 注册名

  • override (bool) – 当name已经注册时,是否进行覆盖

  • hooks (List[HookType]) – 在注册时会被执行的Hook函数

引发

RegistrationError – 如果 override 为 false 并且 name 已经被注册

classmethod weak_register(name, subclass, override=False, hooks=None)

用于手动对子类进行注册

参数
  • name (str) – 子类的引用名

  • subclass – 子类类型

  • override (bool) – 当name已经注册时,是否进行覆盖

  • hooks – 在注册时会被执行的Hook函数

引发

RegistrationError – 如果 override 为 false 并且 name 已经被注册

class TextField(tokenizer, name='text', return_tokens=False, return_word_idn=False, return_length=True, word_info=True, is_target=False)[源代码]

基类:ltp.data.fields.Field

文本域

参数
  • tokenizer – Tokenizer

  • name – Field Na,e

  • return_length – 是否同时返回 length

  • word_info – 是否返回 word index

  • is_target – 是否为目标域

tokenizer_cls

transformers.tokenization_auto.AutoTokenizer 的别名

class MixedTextField(tokenizer, name='text', return_tokens=False, return_word_idn=False, return_length=True, word_info=True, is_target=False)[源代码]

基类:ltp.data.fields.text.TextField

class LabelField(name, unk='<unk>', preprocessing=None, postprocessing=None, use_vocab=True, dtype=torch.int64, is_target=False)[源代码]

基类:ltp.data.fields.Field

可以用于文本分类等领域

vocab_cls

torchtext.vocab.Vocab 的别名

class SequenceField(name, bos=None, eos=None, unk=None, pad=None, dtype=torch.int64, pad_bias=True, preprocessing=None, postprocessing=None, max_length=None, include_lengths=False, labels=None, use_vocab=True, is_target=True, **kwargs)[源代码]

基类:ltp.data.fields.Field

序列 Field,通常为target

参数
  • name – Field name

  • bos – Begin Of Sentence,默认为空

  • eos – End Of Sentence,默认为空

  • unk – Unknown Tag, 默认为空

  • pad – 默认为 [PAD] 或 -1

  • dtype – torch.dtype,可以使用字符串

  • pad_bias – 做值域变换,将pad的值变到1,默认开启

  • preprocessing – 预处理

  • postprocessing – 后处理

  • max_length – 是否padding到最大长度,None即为不做特殊处理,默认为None

  • include_lengths – 是否返回 length,默认为False

  • use_vocab – 是否使用词表,默认为True

  • is_target – 是否为target,默认为True

vocab_cls

torchtext.vocab.Vocab 的别名

class GraphField(name, edge_spliter, pad='<pad>', tag_spliter=None, use_vocab=True, **kwargs)[源代码]

基类:ltp.data.fields.Field

vocab_cls

torchtext.vocab.Vocab 的别名

class BiaffineField(name, use_vocab=True, pad='O', labels=None, **kwargs)[源代码]

基类:ltp.data.fields.Field

Biaffine 域

参数
  • name – label name

  • use_vocab – 是否使用词典

  • pad – 无 label 的 label 位置使用 pad 填充

  • labels – 可以给定 label 而不是通过统计数据得到

vocab_cls

torchtext.vocab.Vocab 的别名

数据预处理(Processing)

class Processing[源代码]

基类:object

预/后处理基类

class PreProcessing[源代码]

基类:ltp.data.processing.Processing

预处理基类

classmethod by_name(name)

通过注册的名字取得实际的类型

参数

name – 注册的名字

返回

Type[T] 使用 name 注册的子类

返回类型

class

引发

RegistrationError – 如果 name 未被注册

classmethod from_params(__config, *args, extra=None, **kwargs)

使用 config 生成对象

参数
  • cls – 类型

  • __config – 配置项,通常为字典,形如 {‘class’:’ClassName’, ‘init’:{ ‘arg’: arg } }

  • *args – 直接传入的arg

  • extra – 根据需要传入的数据

  • **kwargs – 其他参数

返回

根据参数生成的对象

classmethod hook(hook)

函数装饰器,给某个类注册装饰器

classmethod is_registered(name)

如果 name 在类中已经注册,则返回 True

classmethod iter_registered()

迭代已经注册的名字和对象

classmethod list_available()

列出所有的注册子类

classmethod register(name, override=False, hooks=None)

装饰器 Class decorator for registering a subclass.

参数
  • name – 注册名

  • override (bool) – 当name已经注册时,是否进行覆盖

  • hooks (List[HookType]) – 在注册时会被执行的Hook函数

引发

RegistrationError – 如果 override 为 false 并且 name 已经被注册

classmethod weak_register(name, subclass, override=False, hooks=None)

用于手动对子类进行注册

参数
  • name (str) – 子类的引用名

  • subclass – 子类类型

  • override (bool) – 当name已经注册时,是否进行覆盖

  • hooks – 在注册时会被执行的Hook函数

引发

RegistrationError – 如果 override 为 false 并且 name 已经被注册

class PostProcessing[源代码]

基类:ltp.data.processing.Processing

后处理基类

classmethod by_name(name)

通过注册的名字取得实际的类型

参数

name – 注册的名字

返回

Type[T] 使用 name 注册的子类

返回类型

class

引发

RegistrationError – 如果 name 未被注册

classmethod from_params(__config, *args, extra=None, **kwargs)

使用 config 生成对象

参数
  • cls – 类型

  • __config – 配置项,通常为字典,形如 {‘class’:’ClassName’, ‘init’:{ ‘arg’: arg } }

  • *args – 直接传入的arg

  • extra – 根据需要传入的数据

  • **kwargs – 其他参数

返回

根据参数生成的对象

classmethod hook(hook)

函数装饰器,给某个类注册装饰器

classmethod is_registered(name)

如果 name 在类中已经注册,则返回 True

classmethod iter_registered()

迭代已经注册的名字和对象

classmethod list_available()

列出所有的注册子类

classmethod register(name, override=False, hooks=None)

装饰器 Class decorator for registering a subclass.

参数
  • name – 注册名

  • override (bool) – 当name已经注册时,是否进行覆盖

  • hooks (List[HookType]) – 在注册时会被执行的Hook函数

引发

RegistrationError – 如果 override 为 false 并且 name 已经被注册

classmethod weak_register(name, subclass, override=False, hooks=None)

用于手动对子类进行注册

参数
  • name (str) – 子类的引用名

  • subclass – 子类类型

  • override (bool) – 当name已经注册时,是否进行覆盖

  • hooks – 在注册时会被执行的Hook函数

引发

RegistrationError – 如果 override 为 false 并且 name 已经被注册

class BioEncoder[源代码]

基类:ltp.data.processing.PreProcessing

将词序列转换成BIO编码