Text Extraction Evaluation Metrics: WER, CER, MER, Levensthein Distance
Untuk mengukur seberapa jauh kualitas model teks ekstraksi entah berupa speech-to-text atau image-to-text. Kita dapat menerapkan beberapa evaluation metrics yang sudah umum digunakan: Levensthein Distance, Word Error Rate (WER), Character Error Rate (CER), dan Match Error Rate (MER). Tulisan ini merupakan kliping dari eksplorasi yang saya temukan dari beberapa sumber di internet.
Berhubung saya hanya akan “memasak” data berbentuk teks, maka bahan yang diperlukan hanya 2:
- teks reference yang dibuat oleh manusia berperan sebagai ground truth; dan
- teks hypothesis yaitu hasil ekstraksi oleh model.
Konsep dari evaluation metrics ini dengan mencari seberapa banyak karakter yang berbeda atau salah atau bisa kita sebut “error” antara teks reference dengan teks hypothesis. Perbedaan atau error tersebut dapat dibagi menjadi 3 tipe:
-
Substitution (S): apabila terdapat perubahan karakter/kata pada teks hypothesis
-
Insertion (I): apabila ditemukan tambahan karakter/kata pada teks hypothesis
-
Deletion (D): apabila terjadi hilang/berkurangnya karakter/kata pada teks hypothesis
Substitution | Insertion | Deletion | |||||
---|---|---|---|---|---|---|---|
Reference | Pak | Budi | makan | bakso | malang | enak | |
Hypothesis | Dek | Budi | belum | makan | bakso | malang |
Pada contoh di atas dapat dilihat terdapat total 3 perubahan pada teks hypothesis:
S: Pak => Dek
I: => belum
D: enak =>
Levensthein Distance
Levensthein distance termasuk ke dalam kategori edit distance yang merupakan sebuah cara untuk mengetahui perbedaan antara 2 teks/string dengan melihat jumlah perubahan (edit) karakter yang terjadi.
Di mana:
S = Jumlah substitution
I = Jumlah insertion
D = Jumlah deletion
Jadi:
LD = 1 + 1 + 1
LD = 3
Character Error Rate (CER)
CER memiliki konsep yang cukup mirip dengan levensthein distance yang sama-sama memanfaatkan karakter sebagai pembanding. Namun, motivasi CER tidak hanya menghitung jumlah perubahan karakter saja, lebih jaun CER menghitung peluang terjadinya perubahan karakter pada teks hypothesis terhadap teks reference.
Di mana:
S = Jumlah substitution
I = Jumlah insertion
D = Jumlah deletion
n Reference = Jumlah karakter dari keseluruhan kalimat
Jadi:
CER = (1 + 1 + 1) / 32
CER = 0.09375
Word Error Rate (WER)
Berbeda dengan metrics sebelumnya yang berfokus pada karakter, WER cenderung melihat dalam jangkauan yang lebar dengan melihat berdasarkan perubahan kata.
Di mana:
S = Jumlah substitution
I = Jumlah insertion
D = Jumlah deletion
n Reference = Jumlah kata dari keseluruhan kalimat
Jadi:
WER = (1 + 1 + 1) / 6
WER = 0.5
Match Error Rate (MER)
MER merupakan keterbalikan dari WER. MER bertujuan untuk menghitung seberapa banyak kata yang sama atau sesuai dengan teks reference.
Di mana:
S = Jumlah substitution
I = Jumlah insertion
D = Jumlah deletion
n Correct = Jumlah kata benar dari keseluruhan kalimat hypothesis
Jadi:
MER = (1 + 1 + 1) / (1 + 1 + 1) + 4
MER = 3 / 3 + 4
MER = 3 / 7
MER = 0.428571
Catatan Kaki:
Tulisan ini sebagai awal untuk mengenal salah sekian evaluation metrics yang cukup sering ditemui pada pembahasan NLP. Tentu penjelasan di atas terlalu singkat dan mudah, di balik sederhananya konsep di atas terdapat logika matriks dalam melakukan perbandingan antar teks.
Apabila pembaca hendak mengetahui lebih lanjut saya sudah cantumkan sumber referensi di bawah, yang sekiranya dapat dikunjungi setelah membaca tulisan ini.
Referensi:
- WER, CER, and MER
- Deciphering Accuracy: Evaluation Metrics in NLP and OCR- A Comparison of Character Error Rate (CER) and Word Error Rate (WER)
- How to calculate the Word Error Rate in Python
- Word Error Rate in Python
- Evaluate OCR Output Quality with Character Error Rate (CER) and Word Error Rate (WER)
- Text Similarity w/ Levenshtein Distance in Python
- Understanding the Levenshtein Distance Equation for Beginners
- A Beginner’s Guide to the Levenshtein Distance Algorithm (Part 1)