Úvodní informace
V oboru automatického překladu je zásadní disponovat nástroji pro ověřování kvality vytvořených překladů. Jednou z nejvíce využívaných a rozšířených metrik pro posuzování strojového překladu je BLEU (Bilingual Evaluation Understudy). BLEU skóre udává míru podobnosti mezi textem přeloženým strojem a referenčním překladem, který byl vytvořen lidským překladatelem. Platí, že čím vyšší skóre BLEU, tím více se automatický překlad blíží překladu od člověka.
Ačkoliv výpočet BLEU skóre může působit složitě, s moderními nástroji a knihovnami v Pythonu je tento proces poměrně snadný. V tomto článku vám poskytneme podrobný návod, jak počítat BLEU skóre v Pythonu, a také objasníme základní principy, na kterých je tato metrika založena.
Co je to BLEU?
BLEU je metoda, která hodnotí kvalitu strojového překladu srovnáním s jedním nebo více referenčními překlady. Skóre BLEU se vypočítává na základě n-gramů, což jsou sekvence po sobě jdoucích n slov. Příkladem může být: “kočka” (1-gram), “kočka sedí” (2-gram) nebo “kočka sedí na střeše” (3-gram).
Jak probíhá výpočet BLEU skóre?
Výpočet BLEU skóre zahrnuje tyto kroky:
1. Extrakce n-gramů z referenčního překladu – Z referenčních překladů se vyjmou všechny n-gramy (nejčastěji do 4-gramů).
2. Určení shodných n-gramů – N-gramy ze strojového překladu se porovnají s n-gramy z referenčních překladů a spočítá se jejich počet.
3. Převod počtu shod na skóre – Poměr počtu shod k celkovému počtu n-gramů ve strojovém překladu poskytne skóre pro každý n-gram.
4. Zprůměrování skóre – Skóre získaná pro každý n-gram se zprůměrují, čímž se získá celkové BLEU skóre.
Hodnota BLEU skóre se pohybuje v rozmezí od 0 do 1, kde 1 značí dokonalou shodu s referenčním překladem.
Využití knihovny NLTK
Pro výpočet BLEU skóre v Pythonu je často využívána knihovna NLTK (Natural Language Toolkit). Tato knihovna nabízí mnoho funkcí pro zpracování přirozeného jazyka, včetně funkce pro výpočet BLEU skóre.
Ukázkový kód:
from nltk.translate.bleu_score import sentence_bleu
reference = ["Tato kočka je bílá.", "Kočka je bílá.", "Je to bílá kočka."]
candidate = "Kočka je bílé barvy."
score = sentence_bleu(reference, candidate)
print(f"Skóre BLEU: {score:.4f}")
V tomto příkladu definujeme referenční překlady jako seznam řetězců a kandidátskou větu jako samostatný řetězec. Funkce sentence_bleu
následně vypočítá BLEU skóre pro kandidátskou větu v porovnání s referenčními překlady. Skóre je zobrazeno s přesností na čtyři desetinná místa.
Výpočet BLEU pro více vět
Běžně se BLEU skóre počítá pro více vět najednou. Pro tento účel nabízí knihovna NLTK funkci corpus_bleu
.
Ukázkový kód:
from nltk.translate.bleu_score import corpus_bleu
references = [
["Tato kočka je bílá.", "Kočka je bílá.", "Je to bílá kočka."],
["Pes leží na zemi.", "Pes je na zemi."],
["Slunce svítí.", "Svítí slunce."],
]
candidates = ["Bílá kočka.", "Pes leží na zemi.", "Slunce svítí."]
score = corpus_bleu(references, candidates)
print(f"Skóre BLEU: {score:.4f}")
V tomto příkladu definujeme seznam referenčních překladů pro každou větu a seznam odpovídajících kandidátských vět. Funkce corpus_bleu
pak vypočítá BLEU skóre pro všechny kandidátské věty vzhledem k referenčním překladům.
Význam parametrů funkcí
Funkce sentence_bleu
a corpus_bleu
akceptují několik parametrů:
weights
: Určuje váhy pro různé n-gramy. Standardní hodnoty jsou[0.25, 0.25, 0.25, 0.25]
, což znamená, že všechny n-gramy (od 1-gramů do 4-gramů) mají stejnou váhu.smoothing_function
: Funkce, která zmírňuje problém s nulovými počty n-gramů. Výchozí funkcí jeSmoothingFunction().method1
, která k počtu shod přidává malé číslo.
Srovnání BLEU skóre s ostatními metrikami
BLEU skóre je pouze jedna z mnoha metrik, které se používají k hodnocení kvality strojového překladu. Mezi další běžně používané metriky patří:
- ROUGE (Recall-Oriented Understudy for Gisting Evaluation) – Metrika, která se zaměřuje na překryv klíčových slov mezi strojovým překladem a referenčním překladem.
- METEOR (Metric for Evaluation of Translation with Explicit Ordering) – Metrika, která zohledňuje pořadí slov a synonymní substituce.
- Přesnost a Vyvolání – Metriky, které měří, kolik slov je správně přeloženo a kolik slov je v překladu vynecháno.
Volba vhodné metriky závisí na konkrétním úkolu a požadovaných kritériích hodnocení.
Doporučení pro používání BLEU
- Využívejte referenční překlady od více překladatelů – Získáte tak přesnější BLEU skóre, protože zohledníte více pohledů na překlad.
- Nespokojte se pouze s BLEU skóre – BLEU skóre je jen jedním z indikátorů kvality překladu. Je důležité zohlednit také lidské hodnocení a subjektivní dojmy.
- Kombinujte BLEU skóre s dalšími metrikami – Získáte tak komplexnější pohled na kvalitu překladu.
Závěrečné shrnutí
BLEU skóre je významná metrika pro posuzování kvality strojového překladu. V tomto článku jsme si ukázali, jak vypočítat BLEU skóre v Pythonu pomocí knihovny NLTK a jak výsledky interpretovat.
Při hodnocení kvality strojového překladu je důležité brát v úvahu i další aspekty, jako je přirozenost jazyka, sémantická správnost a kontext překladu. BLEU skóre by nemělo být bráno jako jediné měřítko, ale spíše jako jeden z ukazatelů kvality překladu.
Často kladené dotazy
1. Jaký je rozdíl mezi funkcemi sentence_bleu a corpus_bleu?
sentence_bleu
vypočítává BLEU skóre pro jednu větu, zatímco corpus_bleu
pro více vět najednou.
2. Jaké jsou optimální hodnoty pro váhy n-gramů?
Optimální váhy n-gramů se liší v závislosti na konkrétní aplikaci.
3. Proč se používá zmírnění nulových počtů n-gramů?
Zmírnění nulových počtů n-gramů zabraňuje tomu, aby BLEU skóre bylo nulové, i když se v kandidátských větách nenacházejí některé n-gramy z referenčních překladů.
4. Existují i další implementace BLEU v Pythonu?
Ano, existují i alternativní implementace BLEU v Pythonu, například knihovna sacrebleu
.
5. Jak se BLEU liší od ROUGE?
BLEU se soustředí na přesnost překladu, zatímco ROUGE klade důraz na překryv klíčových slov.
6. Jak lze zlepšit BLEU skóre?
BLEU skóre lze zlepšit vylepšením modelu strojového překladu, přidáním více referenčních překladů nebo úpravou vah n-gramů.
7. Jak se BLEU používá v praxi?
BLEU skóre se uplatňuje při hodnocení strojového překladu v mnoha oblastech, od výzkumu až po automatizované hodnocení a benchmarkování.
8. Existují vizualizační nástroje pro BLEU skóre?
Ano, existují nástroje pro vizualizaci BLEU skóre, které usnadňují interpretaci výsledků.
9. Jaký je význam BLEU skóre v kontextu lidského hodnocení?
BLEU skóre je užitečné pro srovnávání modelů strojového překladu, avšak lidské hodnocení je stále klíčové pro konečné posouzení kvality překladu.
10. Jaké jsou limity BLEU skóre?
BLEU skóre nedokáže postihnout všechny aspekty kvality překladu, jako je přirozenost jazyka a sémantická přesnost.