Skip to content

Fluency Evaluation

Evaluate how naturally and idiomatic a translation reads in the target language across three complementary methods: single-item dimension scoring, batch processing, and MQM-style error evaluation.

Evaluates the fluency of a translation across five linguistic dimensions and provides improvement feedback.

Endpoint: POST /translation/fluency-score

Sent as JSON.

Field Type Required Description
sourceLang string yes Source language code
targetLang string yes Target language code
sourceText string yes The original text in the source language
translatedText string yes The translated text to evaluate

Success Response (200)

{
"status": "ok",
"timestamp": "2025-01-12T22:31:48.856Z",
"data": {
"fluency": 6.4,
"idiomatic": 7,
"collocational": 6,
"discourse": 7,
"pragmatic": 6,
"calque": 6,
"issue_type": "collocation",
"severity": "minor",
"problematic_phrase": "macht Sinn",
"suggested_fix": "ergibt Sinn",
"main_issue": "The phrase is a calque from English and unnatural in German."
}
}

fluency is the mean of the five dimensions (idiomatic, collocational, discourse, pragmatic, calque), each scored 1-10. issue_type is one of calque, collocation, idiom_literal, discourse_marker, register_mismatch, false_friend, or none. severity is one of critical, major, minor, or cosmetic.

Terminal window
curl -X POST "https://platform.algebras.ai/api/v1/translation/fluency-score" \
-H "X-Api-Key: your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"sourceLang": "en",
"targetLang": "de",
"sourceText": "That makes sense.",
"translatedText": "Das macht Sinn."
}'

Evaluates the fluency of up to 20 source/translation pairs concurrently. Individual item failures do not abort the whole batch.

Endpoint: POST /translation/fluency-batch

Sent as JSON.

Field Type Required Description
sourceLang string yes Source language code
targetLang string yes Target language code
items array of objects yes Pairs to evaluate (max 20)
items[].sourceText string yes The original text in the source language
items[].translatedText string yes The translated text to evaluate

Success Response (200)

{
"status": "ok",
"timestamp": "2025-01-12T22:31:48.856Z",
"data": {
"evaluations": [
{
"index": 0,
"fluency": 9.2,
"idiomatic": 9,
"collocational": 9,
"discourse": 9,
"pragmatic": 10,
"calque": 9,
"issue_type": "none",
"severity": null,
"problematic_phrase": null,
"suggested_fix": null,
"main_issue": null
},
{
"index": 1,
"fluency": 6.4,
"idiomatic": 7,
"collocational": 6,
"discourse": 7,
"pragmatic": 6,
"calque": 6,
"issue_type": "collocation",
"severity": "minor",
"problematic_phrase": "macht Sinn",
"suggested_fix": "ergibt Sinn",
"main_issue": "The phrase is a calque from English and unnatural in German."
}
],
"batch_summary": {
"total": 2,
"successful": 2,
"failed": 0
}
}
}
Terminal window
curl -X POST "https://platform.algebras.ai/api/v1/translation/fluency-batch" \
-H "X-Api-Key: your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"sourceLang": "en",
"targetLang": "de",
"items": [
{ "sourceText": "Hello, World!", "translatedText": "Hallo, Welt!" },
{ "sourceText": "That makes sense.", "translatedText": "Das macht Sinn." }
]
}'

Evaluates translation naturalness using Multidimensional Quality Metrics (MQM) style, scoring on a 0–100 scale where errors are penalized: critical errors subtract 25, major errors subtract 5, and minor errors subtract 1. Returns a detailed breakdown of all errors found across five linguistic dimensions.

Endpoint: POST /translation/fluency-mqm

Sent as JSON.

Field Type Required Description
sourceLang string yes Source language code
targetLang string yes Target language code
sourceText string yes The original text in the source language
translatedText string yes The translated text to evaluate

Success Response (200)

{
"status": "ok",
"timestamp": "2025-01-12T22:31:48.856Z",
"data": {
"score": 95,
"idiomatic": 100,
"collocational": 100,
"discourse": 100,
"pragmatic": 100,
"calque": 95,
"errors": [
{
"dimension": "calque",
"severity": "major",
"phrase": "macht Sinn",
"explanation": "Literal mirror of 'makes sense'; German prefers 'ergibt Sinn'."
}
],
"main_issue": "The phrase 'macht Sinn' is a calque from English.",
"issue_type": "calque",
"severity": "major"
}
}

score ranges from 0 (many errors) to 100 (no errors). Each dimension (idiomatic, collocational, discourse, pragmatic, calque) shows the score for that category alone: 100 minus penalties for errors in that dimension. errors is a list of all issues found, each with dimension, severity (critical, major, or minor), the problematic phrase, and an explanation. issue_type is one of calque, collocation, idiom_literal, discourse_marker, register_mismatch, false_friend, or none.

Terminal window
curl -X POST "https://platform.algebras.ai/api/v1/translation/fluency-mqm" \
-H "X-Api-Key: your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"sourceLang": "en",
"targetLang": "de",
"sourceText": "That makes sense.",
"translatedText": "Das macht Sinn."
}'