数据

子模块

数据集(Dataset)

class ltp.data.Example[source]

Bases: object

class ltp.data.dataset.Dataset(*args, **kwds)[source]

Bases: 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)[source]

一次创建多个数据集

Parameters
  • path – 数据集路径前缀

  • root – 根目录

  • train – 训练集文件名

  • validation – 验证集文件名

  • test – 测试集文件名

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

Returns

Tuple[Dataset] train, validation, test

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

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

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

  • stratified – 是否进行分层采样

  • strata_field – 分层采样的field

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

Returns

Tuple[Dataset] train, validation, test Dataset

filter_examples(field_names)[source]

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

Parameters

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)

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

Parameters

name – 注册的名字

Returns

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

Return type

class

Raises

RegistrationError – 如果 name 未被注册

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

使用 config 生成对象

Parameters
  • cls – 类型

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

  • *args – 直接传入的arg

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

  • **kwargs – 其他参数

Returns

根据参数生成的对象

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.

Parameters
  • name – 注册名

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

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

Raises

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

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

用于手动对子类进行注册

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

  • subclass – 子类类型

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

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

Raises

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

class ltp.data.dataset.LineDataset(*args, **kwds)[source]

Bases: ltp.data.dataset.dataset.Dataset

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

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

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

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

class ltp.data.dataset.CorpusDataset(*args, **kwds)[source]

Bases: 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 ltp.data.dataset.MixedDataset(*args, **kwds)[source]

Bases: ltp.data.dataset.dataset.Dataset

数据域(Field)

class ltp.data.fields.Field(name, preprocessing=None, postprocessing=None, is_target=False)[source]

Bases: 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)

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

Parameters

name – 注册的名字

Returns

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

Return type

class

Raises

RegistrationError – 如果 name 未被注册

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

使用 config 生成对象

Parameters
  • cls – 类型

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

  • *args – 直接传入的arg

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

  • **kwargs – 其他参数

Returns

根据参数生成的对象

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.

Parameters
  • name – 注册名

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

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

Raises

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

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

用于手动对子类进行注册

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

  • subclass – 子类类型

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

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

Raises

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

class ltp.data.fields.TextField(tokenizer, name='text', return_tokens=False, return_word_idn=False, return_length=True, word_info=True, is_target=False)[source]

Bases: ltp.data.fields.Field

文本域

Parameters
  • tokenizer – Tokenizer

  • name – Field Na,e

  • return_length – 是否同时返回 length

  • word_info – 是否返回 word index

  • is_target – 是否为目标域

tokenizer_cls

alias of transformers.tokenization_auto.AutoTokenizer

class ltp.data.fields.MixedTextField(tokenizer, name='text', return_tokens=False, return_word_idn=False, return_length=True, word_info=True, is_target=False)[source]

Bases: ltp.data.fields.text.TextField

class ltp.data.fields.LabelField(name, unk='<unk>', preprocessing=None, postprocessing=None, use_vocab=True, dtype=torch.int64, is_target=False)[source]

Bases: ltp.data.fields.Field

可以用于文本分类等领域

vocab_cls

alias of torchtext.vocab.Vocab

class ltp.data.fields.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)[source]

Bases: ltp.data.fields.Field

序列 Field,通常为target

Parameters
  • 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

alias of torchtext.vocab.Vocab

class ltp.data.fields.GraphField(name, edge_spliter, pad='<pad>', tag_spliter=None, use_vocab=True, **kwargs)[source]

Bases: ltp.data.fields.Field

vocab_cls

alias of torchtext.vocab.Vocab

class ltp.data.fields.BiaffineField(name, use_vocab=True, pad='O', labels=None, **kwargs)[source]

Bases: ltp.data.fields.Field

Biaffine 域

Parameters
  • name – label name

  • use_vocab – 是否使用词典

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

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

vocab_cls

alias of torchtext.vocab.Vocab

数据预处理(Processing)

class ltp.data.processing.Processing[source]

Bases: object

预/后处理基类

class ltp.data.processing.PreProcessing[source]

Bases: ltp.data.processing.Processing

预处理基类

classmethod by_name(name)

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

Parameters

name – 注册的名字

Returns

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

Return type

class

Raises

RegistrationError – 如果 name 未被注册

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

使用 config 生成对象

Parameters
  • cls – 类型

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

  • *args – 直接传入的arg

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

  • **kwargs – 其他参数

Returns

根据参数生成的对象

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.

Parameters
  • name – 注册名

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

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

Raises

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

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

用于手动对子类进行注册

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

  • subclass – 子类类型

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

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

Raises

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

class ltp.data.processing.PostProcessing[source]

Bases: ltp.data.processing.Processing

后处理基类

classmethod by_name(name)

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

Parameters

name – 注册的名字

Returns

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

Return type

class

Raises

RegistrationError – 如果 name 未被注册

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

使用 config 生成对象

Parameters
  • cls – 类型

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

  • *args – 直接传入的arg

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

  • **kwargs – 其他参数

Returns

根据参数生成的对象

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.

Parameters
  • name – 注册名

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

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

Raises

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

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

用于手动对子类进行注册

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

  • subclass – 子类类型

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

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

Raises

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

class ltp.data.processing.BioEncoder[source]

Bases: ltp.data.processing.PreProcessing

将词序列转换成BIO编码