Evaluation API Reference¶
Quality Estimators¶
vietquill.evaluation.estimators.neural_est.EnsembleModelForParaphraseQualityEstimation(hub_id: str = None, device: str = None, **kwargs)
¶
Bases: BaseEstimator
Ensemble Quality Estimator that uses two specialized Sequence Classification models (Regression) for declarative sentences and questions, loaded from subfolders ('sentence' and 'question') of a unified Hugging Face repository.
Initializes the Ensemble Quality Estimation Model.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
hub_id
|
str
|
Path or HF name for the unified model repo. |
None
|
device
|
str
|
Device to run the models on ('cuda' or 'cpu'). |
None
|
**kwargs
|
Additional keyword arguments passed to AutoModelForSequenceClassification.from_pretrained. |
{}
|
Source code in src/vietquill/evaluation/estimators/neural_est.py
estimate(sentence1: str, sentence2: str) -> Dict[str, float]
¶
Estimate lexical, syntactic, and semantic scores using the appropriate trained model. Automatically detects if sentence1 is a question.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
sentence1
|
str
|
The source sentence. |
required |
sentence2
|
str
|
The target (paraphrase) sentence. |
required |
Returns:
| Type | Description |
|---|---|
Dict[str, float]
|
Dictionary containing predicted scores (lexical_score, syntactic_score, semantic_score). |
Source code in src/vietquill/evaluation/estimators/neural_est.py
vietquill.evaluation.estimators.neural_est.AutoModelForQualityEstimation(hub_id: str = None, device: str = None, **kwargs)
¶
Bases: BaseEstimator
Quality Estimator using a single trained Sequence Classification model (Regression) directly loaded from Hugging Face Hub or a local path, without sentence/question splitting.
Initializes the Quality Estimation Model with a single specified model.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
hub_id
|
str
|
Path or HF repo ID for the model repository or checkpoint. |
None
|
device
|
str
|
Device to run the model on ('cuda' or 'cpu'). |
None
|
**kwargs
|
Additional keyword arguments passed to AutoModelForSequenceClassification.from_pretrained. |
{}
|
Source code in src/vietquill/evaluation/estimators/neural_est.py
estimate(sentence1: str, sentence2: str) -> Dict[str, float]
¶
Estimate lexical, syntactic, and semantic scores using the loaded model.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
sentence1
|
str
|
The source sentence. |
required |
sentence2
|
str
|
The target (paraphrase) sentence. |
required |
Returns:
| Type | Description |
|---|---|
Dict[str, float]
|
Dictionary containing predicted scores (lexical_score, syntactic_score, semantic_score). |
Source code in src/vietquill/evaluation/estimators/neural_est.py
vietquill.evaluation.estimators.lexical_est.LexicalEstimator(model=None, tokenizer='whitespace', **kwargs)
¶
Bases: BaseEstimator
Estimator for lexical similarity between Vietnamese sentences using Jaccard similarity.
Source code in src/vietquill/evaluation/estimators/lexical_est.py
estimate(sentence1, sentence2)
¶
Estimate the lexical structure similarity of the given sentences.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
sentence1
|
str
|
The first sentence to compare. |
required |
sentence2
|
str
|
The second sentence to compare. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
dict |
A dictionary containing the estimated lexical score. |
Source code in src/vietquill/evaluation/estimators/lexical_est.py
vietquill.evaluation.estimators.syntactic_est.SyntacticEstimator(model=None, max_depth=3, **kwargs)
¶
Bases: BaseEstimator
Estimator for syntactic structure similarity between Vietnamese sentences using TED (Tree Edit Distance).
Source code in src/vietquill/evaluation/estimators/syntactic_est.py
estimate(sentence1, sentence2)
¶
Estimate the syntactic structure similarity of the given sentences.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
sentence1
|
str
|
The first sentence to compare. |
required |
sentence2
|
str
|
The second sentence to compare. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
dict |
A dictionary containing the estimated syntactic score. |
Source code in src/vietquill/evaluation/estimators/syntactic_est.py
vietquill.evaluation.estimators.semantic_est.SemanticEstimator(model_type=None, device=None, num_layers=None, **kwargs)
¶
Bases: BaseEstimator
Estimator for semantic similarity between Vietnamese sentences using BERTScore.
Source code in src/vietquill/evaluation/estimators/semantic_est.py
estimate(sentence1, sentence2)
¶
Estimate the semantic similarity score between two Vietnamese sentences.
The returned score is the F1 score from BERTScore scaled to [0, 100].
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
sentence1
|
str
|
The first Vietnamese sentence. |
required |
sentence2
|
str
|
The second Vietnamese sentence. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
dict |
A dictionary containing the semantic score. |
Source code in src/vietquill/evaluation/estimators/semantic_est.py
Evaluation Metrics¶
vietquill.evaluation.metrics.bleu_metric.BLEUMetric(tokenizer='whitespace', lowercase=True)
¶
Bases: BaseMetric
BLEU metric for Vietnamese paraphrase evaluation.
Source code in src/vietquill/evaluation/metrics/bleu_metric.py
compute()
¶
reset()
¶
score(y_true, y_pred)
¶
Compute BLEU-4 for a single sentence pair.
Source code in src/vietquill/evaluation/metrics/bleu_metric.py
vietquill.evaluation.metrics.bertscore_metric.BERTScoreMetric(model_type=None, lang=None, device=None, num_layers=None)
¶
Bases: BaseMetric
BERTScore metric for semantic similarity using PhoBERT.
Source code in src/vietquill/evaluation/metrics/bertscore_metric.py
vietquill.evaluation.metrics.parascore_metric.ParaScoreMetric(lang=None, model_type=None, batch_size=None, num_layers=None)
¶
Bases: BaseMetric
ParaScore metric for paraphrase evaluation.
Supports
- ParaScore (reference-based)
- ParaScore.Free (reference-free)
Source code in src/vietquill/evaluation/metrics/parascore_metric.py
compute()
¶
Return average scores.
Source code in src/vietquill/evaluation/metrics/parascore_metric.py
score(source, candidate, reference)
¶
Compute ParaScore.
score_free(source, candidate)
¶
Compute ParaScore.Free.
update(source, candidate, reference)
¶
Update running state.
Source code in src/vietquill/evaluation/metrics/parascore_metric.py
vietquill.evaluation.metrics.ted_metric.TEDMetric(max_depth: int = 3)
¶
Bases: BaseMetric
Compute a normalized Tree Edit Distance (TED) similarity over bracket trees.
Source code in src/vietquill/evaluation/metrics/ted_metric.py
normalize_tree(tree_string: str) -> str
¶
Convert a standard bracket tree to a '{' '}' style with depth truncation.
Source code in src/vietquill/evaluation/metrics/ted_metric.py
score(sentence1, sentence2)
¶
Compute syntactic similarity score in [0, 1].
Source code in src/vietquill/evaluation/metrics/ted_metric.py
tree_edit_distance(lintree1: str, lintree2: str) -> float
¶
Return normalized TED: raw_edit_distance / (nodes1 + nodes2).
Source code in src/vietquill/evaluation/metrics/ted_metric.py
vietquill.evaluation.metrics.jaccard_metric.JaccardMetric(tokenizer='whitespace', lowercase=True)
¶
Bases: BaseMetric
Jaccard similarity for sentence overlap.
Supported tokenizers
- whitespace
- underthesea
- pyvi