Dependency parsing.

class hanlp.components.mtl.tasks.dep.BiaffineDependencyParsing(trn: str = None, dev: str = None, tst: str = None, sampler_builder: hanlp.common.dataset.SamplerBuilder = None, dependencies: str = None, scalar_mix: hanlp.layers.scalar_mix.ScalarMixWithDropoutBuilder = None, use_raw_hidden_states=False, lr=0.002, separate_optimizer=False, cls_is_bos=True, sep_is_eos=False, punct=False, tree=False, proj=False, n_mlp_arc=500, n_mlp_rel=100, mlp_dropout=0.33, mu=0.9, nu=0.9, epsilon=1e-12, decay=0.75, decay_steps=5000, use_pos=False, max_seq_len=None, **kwargs)[source]

Biaffine dependency parsing (Dozat & Manning 2017).

  • trn – Path to training set.

  • dev – Path to dev set.

  • tst – Path to test set.

  • sampler_builder – A builder which builds a sampler.

  • dependencies – Its dependencies on other tasks.

  • scalar_mix – A builder which builds a ScalarMixWithDropout object.

  • use_raw_hidden_states – Whether to use raw hidden states from transformer without any pooling.

  • lr – Learning rate for this task.

  • separate_optimizer – Use customized separate optimizer for this task.

  • cls_is_bosTrue to treat the first token as BOS.

  • sep_is_eosTrue to treat the last token as EOS.

  • punctTrue to include punctuations in evaluation.

  • treeTrue to enforce tree constraint.

  • projTrue for projective parsing.

  • n_mlp_arc – Number of features for arc representation.

  • n_mlp_rel – Number of features for rel representation.

  • mlp_dropout – Dropout applied to MLPs.

  • mu – First coefficient used for computing running averages of gradient and its square in Adam.

  • nu – Second coefficient used for computing running averages of gradient and its square in Adam.

  • epsilon – Term added to the denominator to improve numerical stability

  • decay – Decay rate for exceptional lr scheduler.

  • decay_steps – Decay every decay_steps steps.

  • use_pos – Use pos feature.

  • max_seq_len – Prune samples longer than this length.

  • **kwargs – Not used.

build_dataloader(data, transform: hanlp.common.transform.TransformList = None, training=False, device=None, logger: logging.Logger = None, gradient_accumulation=1, **kwargs) →[source]

Build a dataloader for training or evaluation.

  • data – Either a path or a list of samples.

  • transform – The transform from MTL, which is usually [TransformerSequenceTokenizer, FieldLength(‘token’)]

  • training – Whether this method is called on training set.

  • device – The device dataloader is intended to work with.

  • logger – Logger for printing message indicating progress.

  • cache – Whether the dataloader should be cached.

  • gradient_accumulation – Gradient accumulation to be passed to sampler builder.

  • **kwargs – Additional experimental arguments.


Implement this to build metric(s).


**kwargs – The subclass decides the method signature.

build_model(encoder_size, training=True, **kwargs) → torch.nn.modules.module.Module[source]

Build model.

  • trainingTrue if called during training.

  • **kwargs**self.config.

build_optimizer(decoder: torch.nn.modules.module.Module, **kwargs)[source]

Implement this method to build an optimizer.


**kwargs – The subclass decides the method signature.

build_samples(inputs, cls_is_bos=False, sep_is_eos=False)[source]

Build samples for this task. Called when this task is the first task. Default behaviour is to take inputs as list of tokens and put these tokens into a dict per sample.

  • inputs – Inputs from users, usually a list of lists of tokens.

  • cls_is_bos – Insert BOS to the head of each sentence.

  • sep_is_eos – Append EOS to the tail of each sentence.


List of samples.


Check whether the data is flat (meaning that it’s only a single sample, not even batched).


True to indicate the input data is flat.

Return type