数据¶
子模块¶
数据集(Dataset)¶
-
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
-
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
数据域(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.
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 已经被注册
-
classmethod
-
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 已经被注册
-
classmethod
-
class
ltp.data.processing.
BioEncoder
[source]¶ Bases:
ltp.data.processing.PreProcessing
将词序列转换成BIO编码