数据¶
子模块¶
数据集(Dataset)¶
-
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
-
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
数据域(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)[源代码]¶ -
文本域
- 参数
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)[源代码]¶ -
可以用于文本分类等领域
-
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)[源代码]¶ -
序列 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)[源代码]¶ -
-
vocab_cls
¶ torchtext.vocab.Vocab
的别名
-
数据预处理(Processing)¶
-
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 已经被注册
-
classmethod
-
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 已经被注册
-
classmethod
-
class
BioEncoder
[源代码]¶ 基类:
ltp.data.processing.PreProcessing
将词序列转换成BIO编码