مقدمة حول حساب قيم التقييم ثنائي اللغة للنصوص وفق المعيار “بلو” BLUE باستخدام لغة البرمجة بايثون

معيار التقييم ثنائي اللغة “بلو” Bilingual Evaluation Understudy BLEU هو معيار عددي للحصول على قيم لتقييم نتيجة مقارنة الترجمة المرشّحة للنص مع ترجمة مرجعية واحدة أو أكثر، طوِّر هذا المعيار من أجل تقييم نتائج الترجمة الآلية إلا أنه يُستخدم في تقييم النص الذي يتم توليده في مجموعة أخرى من مهام معالجة اللغات الطبيعية.

سنتعلم في هذا البرنامج التعليمي كيفية استخدام المعيار “بلو” في تقييم النص المرشّح باستخدام مكتبة “أدوات معالجة اللغات الطبيعية” Natural Language Toolkit Library NLTK في لغة البرمجة “بايثون” python، وبعد إنهاء البرنامج التعليمي معنا ستكون لديك معرفة بالأمور التالية:

  • مقدمة عن معيار التقييم “بلو” ولماذا يتم حسابه
  • كيف تحسب نقاط التقييم للجمل والمستندات وفق المعيار”بلو”
  • كيف يمكنك استخدام مجموعة من الأمثلة الصغيرة لتطوير ملاحظتك حول تأثير الاختلاف بين النص المرشّح والنص المرجعي على النتيجة النهائية لحساب قيم التقييم وفق المعيار”بلو” 

هل أنت مستعد ؟ فلنبدأ معاً.

معيار التقييم ثنائي اللغة Bilingual Evaluation Understudy

هو معيار عددي لتقييم نتيجة تطابق جملة مولّدة مع جملة مرجعية، تتراوح قيمة المعيار بين القيمتين 0 و 1 بحيث تكون قيمة المعيار مساوية الواحد في حالة التطابق التام بين الجملة المولّدة والجملة المرجعية، وتكون القيمة مساوية الصفر في حالة عدم التطابق التام بينهما.

طوِّر هذا المعيار من قبل الباحث “كيشور بابينيني” Kishore Papineni ورفاقه  في الورقة البحثية [1] عام 2002 لتقييم التنبؤ في أنظمة الترجمة الآلية، ولا يعتبر هذا المعيار مثالياً إلا أنه يتصف بخمس مزايا هامة وهي:

  •  السرعة وانخفاض كلفة الحساب
  •  سهولة الفهم
  • استقلالية عن اللغة
  •  ارتباط وثيق بالتقييم البشري
  •  شائع الاستخدام

يعتمد هذا المعيار على عدد مرات التطابق بين مجموعات n واحدة تعداد n-gram من الكلمات في الترجمة المرشّحة مع مجموعات n واحدة تعداد من الكلمات في الجملة المرجعية، وتكون  الجملة المرشّحة التي تحقق عدد تطابقات أكبر هي الجملة الأفضل.

يتم استخدام مفهوم دقة n واحدة تعداد المعدّلة modified n-gram precision وهو عدد مرات تطابق المجموعات n واحدة تعداد في النص المرشّح نسبة إلى عدد المجموعات الكلي للتأكيد على عدد مرات حدوث مجموعات n واحدة تعداد من الكلمات في النص المرجعي وليس مقدار توفرها فقط، كما أن استخدام دقة n واحدة تعداد المعدلة تكون أفضل من أجل تقييم كتل النصوص المؤلفة من مجموعة من الجمل.

حيث تدل مقارنة المجموعات أحادية الكلمة 1-gram أو unigram على التطابق من أجل كلمة واحدة و تدل مقارنة مجموعات الكلمات ثنائية الكلمة 2-gram أو bigram على تطابق زوج من الكلمات وهكذا من أجل مجموعات الكلمات n واحدة تعداد  لعدد n من الكلمات. ويتم عد مرات التطابق بشكل مستقل عن موقع الكلمة.

مثال توضيحي:

الجملة المرشّحة:  the teacher comes quickly 

الجملة المرجعية: the teacher speaks quickly

3-gram 2-gram 1-gram  

the teacher comes

teacher comes quickly

the teacher

teacher comes

comes quickly

the

teacher

comes

quickly

 

0

1

3

n-gram matches

0/2

1/3

3/4 modified n-gram precision

من أجل مجموعات الكلمات أحادية الكلمة تطابق 3 كلمات من الجملة المرشّحة مع 3 كلمات من الجملة المرجعية ومن أجل مجموعات ثنائية الكلمة فقد تطابق مجموعة واحدة من الجملة المرشّحة مع الجملة المرجعية ولم تتطابق أي مجموعة ثلاثية الكلمة بين الجملة المرشّحة والجملة المرجعية وبالتالي فإن دقة n واحدة تعداد المعدلة تكون 3/4 ، 1/3، 0/2 من أجل مجموعات الكلمات الأحادية والثنائية والثلاثية على التوالي.

إن القيمة المثالية لقيمة المعيار”بلو” غير ممكنة عمليا حيث لا يمكن تطابق الترجمة المرشّحة مع النص المرجعي بشكل تام وهذا لا يمكن حدوثه أيضا من قبل المترجمين البشر.

يتم استخدام عدد من النصوص المرجعية المختلفة في حساب قيمة المعيار”بلو” مما يجعل مقارنة قيم التقييم من أجل مجموعات البيانات مزعجة. فمثلاً من أجل تقييم مجموعة بيانات ثنائية تتألف من 500 جملة مأخوذة من 40 قصة أخبار عامة فإن تقييم الترجمة البشرية يكون 0.3468 من أجل اربعة نصوص مرجعية ويكون 0.2571 من أجل نصين مرجعيين[1].

يتم استخدام المعيار “بلو” في تقييم أنظمة الترجمة الآلية بشكل أساسي، وفي المسائل التي يتم فيها توليد اللغات باستخدام طرق التعلّم العميق كتوليد عناوين الصور Image caption generation وتلخيص النصوص Text summarization والتعرف على الكلام المنطوق Speech recognition  وغيرها.

حساب قيم المعيار “بلو” BLEU

تؤمّن مكتبة أدوات معالجة اللغات الطبيعية NLTK في لغة البرمجة “بايثون” تطبيق المعيار “بلو” لتقييم النص المولَّد مقارنة مع نص مرجعي من خلال مستويين:

  • تقييم على مستوى الجملة: 

تؤمن مكتبة أدوات معالجة اللغات الطبيعية التابع sentence_bleu() function لتقييم جملة مرشّحة نسبة إلى جملة مرجعية أو أكثر.

يجب تقديم الجمل المرجعية كقائمة من الجمل بحيث كل جملة مرجعية تكون كقائمة من الوحدات اللفظية الممثلة بكلمات. وتقدم الجملة المرشّحة كقائمة من الوحدات اللفظية الممثلة بكلمات كما هو موضح في المثال التوضيحي التالي: 

مثال توضيحي:

from nltk.translate.bleu_score import sentence_bleu
reference = [['this', 'is', 'a', 'test'], ['this', 'is', 'test']]
candidate = ['this', 'is', 'a', 'test']
score = sentence_bleu(reference, candidate)
print("Sentence Bleu Score=",score)

يتم تنفيذ المثال وطباعة قيمة التقييم وفق المعيار”بلو” فتكون مساوية للقيمة التامة وتساوي الواحد لأن الجملة المرشحة تطابق واحدة من الجمل المرجعية بشكل تام.

Sentence Bleu Score= 1.0

وبما أن معيار “بلو” مستقل عن اللغة فنحصل على نتيجة مماثلة عند تقييم جملة مرشحة مكتوبة باللغة العربية كما هو موضح في المثال التالي. 

مثال توضيحي:

from nltk.translate.bleu_score import sentence_bleu
reference = [['يأكل', 'العصفور', 'المبكر', 'الدود'], ['يأكل', 'العصفور', 'الدود'],['يأكل', 'القط', 'الخبيث', 'العصفور','المبكر']]
candidate = ['يأكل', 'العصفور', 'المبكر', 'الدود']
score = sentence_bleu(reference, candidate)
print("Sentence Bleu Score=",score)

بتنفيذ المثال تكون النتيجة:

Sentence Bleu Score= 1.0

  • تقييم على مستوى مجموعة البيانات: 

تؤمن مكتبة أدوات معالجة اللغات الطبيعية التابع corpus_bleu() function لتقييم عدة جمل كفقرة أو مستند مع مستند مرجعي أو أكثر. يجب تقديم النص المرشّح كقائمة من المستندات بحيث كل مستند هو قائمة من الجمل المرجعية وكل جملة مرجعية هي قائمة من الوحدات اللفظية الممثلة بكلمات،أي يصبح النص المرجعي قائمة من قائمة من قائمة من الكلمات ، أما النص المرجعي فيكون قائمة من الجمل بحيث تكون الجملة على شكل قائمة من الكلمات أي يكون النص المرجعي قائمة من قائمة من الكلمات كما هو موضح في المثال التوضيحي التالي:

# two references for one document
from nltk.translate.bleu_score import corpus_bleu
references = [[['this', 'is', 'a', 'test'], ['this', 'is' 'test']]]
candidates = [['this', 'is', 'a', 'test']]
score = corpus_bleu(references, candidates)
print("Corpus Bleu Score=",score)

بتنفيذ المثال نحصل على نتيجة التقييم بمقدار القيمة التامة المساوية لقيمة الواحد لأن النص المرشّح يتطابق تماما مع أحد النصوص المرجعية. 

Corpus Bleu Score= 1.0

قيم المعيار”بلو” المستقلة والتراكمية

تسمح مكتبة أدوات معالجة اللغات الطبيعية بإعطاء ترجيح لمجموعات n واحدة تعداد المختلفة عند حساب قيم المعيار”بلو” مما يعطي مرونة في حساب أنواع مختلفة من قيم المعيار”بلو” مثل قيم n واحدة تعداد المستقلة individual n-gram scores أو قيم n واحدة تعداد التراكمية cumulative n-gram scores.

  • قيم n واحدة تعداد المستقلة individual n-gram scores:

هي حساب قيم تطابق الكلمات ذات النظام المخصص كتطابق المجموعات أحادية الكلمات unigram أو تطابق المجموعات ثنائية الكلمات bigram وهكذا من أجل تطابق المجموعات ذات n كلمة، ويتم تحديد الأوزان على شكل مصفوفة أحادية يشير دليلها إلى نوع ترتيب الكلمات في التطابقات المدروسة فمثلا لحساب قيم تطابق المجموعات أحادية الكلمة، يتم تحديد الأوزان بالمصفوفة (0 ، 0 ، 0 ، 1)، ومن أجل حساب قيم تطابق مجموعات ثنائية الكلمة يتم تحديد الأوزان بالمصفوفة
(0 ، 0 ، 1 ، 0).

مثال توضيحي:

# 1-gram individual BLEU
from nltk.translate.bleu_score import sentence_bleu
reference = [['this', 'is', 'small', 'test']]
candidate = ['this', 'is', 'a', 'test']
score = sentence_bleu(reference, candidate, weights=(1, 0, 0, 0))
print("1-gram individual BLEU:",score)

بتنفيذ المثال يتم طباعة قيمة نتيجة التقييم وفق المعيار بلو بمقدار 0.75.

1-gram individual BLEU: 0.75

بإعادة المثال من أجل حساب قيم n واحدة تعداد المستقلة من أجل n= 1 to 4 كما يلي:

# n-gram individual BLEU
from nltk.translate.bleu_score import sentence_bleu
reference = [['this', 'is', 'a', 'test']]
candidate = ['this', 'is', 'a', 'test']
print('Individual 1-gram: %f' % sentence_bleu(reference, candidate, weights=(1, 0, 0, 0)))
print('Individual 2-gram: %f' % sentence_bleu(reference, candidate, weights=(0, 1, 0, 0)))
print('Individual 3-gram: %f' % sentence_bleu(reference, candidate, weights=(0, 0, 1, 0)))
print('Individual 4-gram: %f' % sentence_bleu(reference, candidate, weights=(0, 0, 0, 1)))

بتنفيذ المثال نحصل على النتائج التالية:

Individual 1-gram: 1.000000
Individual 2-gram: 1.000000
Individual 3-gram: 1.000000
Individual 4-gram: 1.000000

إن التقييم وفق المعيار “بلو” باستخدام طريقة حساب قيم n واحدة تعداد المستقلة لا تحمل معنى ولا يمكن تفسير النتائج وتكون أقل دقة في تقييم الترجمة.

  • قيم n واحدة تعداد التراكمية cumulative n-gram scores:

يتم حساب قيم “بلو” المستقلة لجميع أنظمة مجموعات الكلمات وحساب المتوسط الحسابي بعد تثقيله.
بشكل افتراضي، يستخدم التابعان sentence_bleu  وcorpus_bleu  طريقة حساب n واحدة تعداد التراكمية من أجل n=4 وتسمى BLEU-4،  بحيث تكون قيم n واحدة تعداد التراكمية cumulative 4-gram BLEU score هي مزيج من 25% من قيم 1-gram و25%  من قيم 2-gram و25% من قيم 3-gram و25%  من قيم 4-gram وتكون  هذه الطريقة أكثر تعبيراً عن دقة الترجمة.

مثال توضيحي: 

# 4-gram cumulative BLEU
from nltk.translate.bleu_score import sentence_bleu
reference = [['this', 'is', 'small','good', 'test']]
candidate = ['this', 'is', 'small', 'good','exam']
score = sentence_bleu(reference, candidate, weights=(0.25, 0.25, 0.25, 0.25))
score1 = sentence_bleu(reference, candidate)
print(" Cumulative BLEU-4 :",score)
print(" Default Cumulative BLEU:",score1)

بتنفيذ المثال تكون النتيجة كما يلي:

Cumulative BLEU-4 : 0.668740304976422
Default Cumulative BLEU: 0.668740304976422

تكون الأوزان نفسها عند حساب قيم المعيار”بلو” باستخدام طريقة unigram المستقلة والتراكمية وهي 1,0,0,0 وتسمى BLEU-1، ويتم تعيين القيمة 50%  لكل من 1-gram و 2-gram عند حساب استخدام طريقة 2-gram التراكمي وتسمى BLEU-2، وتعيين 33% لكل 1-gram و 2-gram و 3- gram عند استخدام طريقة 3-gram التراكمية وتسمى BLEU-3.
يتضح حساب BLEU-1 و BLEU-2 و BLEU-3 و BLEU-4 في المثال التالي:

# cumulative BLEU scores
from nltk.translate.bleu_score import sentence_bleu
reference = [['this', 'is', 'small','good' ,'test']]
candidate = ['this', 'is', 'small', 'good','exam']
print('Cumulative 1-gram: %f' % sentence_bleu(reference, candidate, weights=(1, 0, 0, 0)))
print('Cumulative 2-gram: %f' % sentence_bleu(reference, candidate, weights=(0.5, 0.5, 0, 0)))
print('Cumulative 3-gram: %f' % sentence_bleu(reference, candidate, weights=(0.33, 0.33,0.33, 0)))
print('Cumulative 4-gram: %f' % sentence_bleu(reference, candidate, weights=(0.25, 0.25, 0.25, 0.25)))

بتنفيذ المثال تكون النتائج أكثر تعبيراً عن التقييم من قيم n-gram المستقلة.

Cumulative 1-gram: 0.800000
Cumulative 2-gram: 0.774597
Cumulative 3-gram: 0.739060
Cumulative 4-gram: 0.668740

 من الشائع تسجيل القيم من BLEU-1 إلى BLEU-4 عند وصف مهارة أنظمة توليد النصوص.

مثال تدريبي

سيتم تقديم مثال تدريبي لتطوير فهم استخدام المعيار “بلو” في تقييم النصوص المولّدة، حيث سيتم العمل على مستوى الجملة لتقييم الجملة المرشّحة بالنسبة لجملة مرجعية واحدة فقط.

الجملة المرجعية: the quick brown fox jumped over the lazy dog

أولاً: حالة التطابق التام بين الجملة المرشّحة والجملة المرجعية
الجملة المرشّحة: the quick brown fox jumped over the lazy dog

# perfect match
from nltk.translate.bleu_score import sentence_bleu
reference = [['the', 'quick', 'brown', 'fox', 'jumped', 'over', 'the', 'lazy', 'dog']]
candidate = ['the', 'quick', 'brown', 'fox', 'jumped', 'over', 'the', 'lazy', 'dog']
score = sentence_bleu(reference, candidate)
print("BLUE-4 Score with perfect match:",score)

بطباعة النتيجة نحصل على مايلي:

BLUE-4 Score with perfect match: 1.0

ثانياً: حالة اختلاف الجملة المرشّحة عن الجملة المرجعية في كلمة واحدة
الجملة المرشّحة: the fast brown fox jumped over the lazy dog

# one word different
from nltk.translate.bleu_score import sentence_bleu
reference = [['the', 'quick', 'brown', 'fox', 'jumped', 'over', 'the', 'lazy', 'dog']]
candidate = ['the', 'fast', 'brown', 'fox', 'jumped', 'over', 'the', 'lazy', 'dog']
score = sentence_bleu(reference, candidate)
print("BLUE-4 Score with one word different:",score)

بتنفيذ المثال نلاحظ انخفاض قيمة التقييم بشكل طفيف.

BLUE-4 Score with one word different: 0.7506238537503395

ثالثاً: حالة اختلاف الجملة المرشّحة عن الجملة المرجعية في كلمتين
الجملة المرشّحة: the fast brown fox jumped over the sleepy dog

# two words different
from nltk.translate.bleu_score import sentence_bleu
reference = [['the', 'quick', 'brown', 'fox', 'jumped', 'over', 'the', 'lazy', 'dog']]
candidate = ['the', 'fast', 'brown', 'fox', 'jumped', 'over', 'the', 'sleepy', 'dog']
score = sentence_bleu(reference, candidate)
print("BLUE-4 Score with two word different:",score)

بطباعة النتيجة نجد أن هناك انخفاض خطي في التقييم.

BLUE-4 Score with two word different: 0.4854917717073234

رابعاً: حالة اختلاف جميع كلمات الجملة المرشّحة عن الجملة المرجعية
الجملة المرشّحة: a  b  c  d  e  f  g  h  i

# all words different
from nltk.translate.bleu_score import sentence_bleu
reference = [['the', 'quick', 'brown', 'fox', 'jumped', 'over', 'the', 'lazy', 'dog']]
candidate = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i']
score = sentence_bleu(reference, candidate)
print("BLUE-4 Score with all words different:",score)

بطباعة نتيجة التقييم نجد أن القيمة هي صفر وهي أسوأ قيمة يمكن الحصول عليها وفق المعيار “بلو”.

BLUE-4 Score with all words different: 0

خامساً: حالة طول الجملة المرشّحة أقل من طول الجملة المرجعية – حذف كلمتين –
الجملة المرشّحة: the quick brown fox jumped over the

# shorter candidate
from nltk.translate.bleu_score import sentence_bleu
reference = [['the', 'quick', 'brown', 'fox', 'jumped', 'over', 'the', 'lazy', 'dog']]
candidate = ['the', 'quick', 'brown', 'fox', 'jumped', 'over', 'the']
score = sentence_bleu(reference, candidate)
print("BLUE-4 Score with shorter candidate sentence,removing the last two words:",score)

يتم تنفيذ المثال وطباعة نتيجة التقييم بين القيمتين 0 و 1.

BLUE-4 Score with shorter candidate sentence,removing the last two words: 0.7514772930752859

سادساً: حالة الجملة المرشّحة أطول من الجملة المرجعية -إضافة كلمتين-
الجملة المرشّحة: the quick brown fox jumped over the lazy dog from space

# longer candidate
from nltk.translate.bleu_score import sentence_bleu
reference = [['the', 'quick', 'brown', 'fox', 'jumped', 'over', 'the', 'lazy', 'dog']]
candidate = ['the', 'quick', 'brown', 'fox', 'jumped', 'over', 'the', 'lazy', 'dog', 'from', 'space']
score = sentence_bleu(reference, candidate)
print("BLUE-4 Score with longer candidate sentence,adding  two words:",score)

يتم تنفيذ المثال والحصول على نتيجة قريبة من حالات التغيير في كلمتين بين الجملة المرشّحة والجملة المرجعية عن طريق الحذف أو الاختلاف.

BLUE-4 Score with longer candidate sentence,adding  two words: 0.7860753021519787

سابعاً: حالة الجملة المرشّحة قصيرة جداً 
الجملة المرشّحة: the quick 

# very short
from nltk.translate.bleu_score import sentence_bleu
reference = [['the', 'quick', 'brown', 'fox', 'jumped', 'over', 'the', 'lazy', 'dog']]
candidate = ['the', 'quick']
score = sentence_bleu(reference, candidate)
print("BLUE-4 Score with very short sentence- only two words:",score)

تنفيذ المثال تظهر رسالة تحذير للمستخدم بأنه لا يمكن إنجاز تقييم 3-gram و 4-gram وهذا صحيح حيث لا يوجد سوى كلمتين في الجملة المرشّحة فيتم حساب عدد مرات التطابق لمجموعات الكلمات الأحادية والثنائية فقط. 

ويتم طباعة نتيجة تقييم منخفضة جداً ومحسوبة من إنجاز تقييم 1-gram و2-gram فقط.

BLUE-4 Score with very short sentence- only two words: 0.0301973834223185
/usr/local/lib/python3.6/dist-packages/nltk/translate/bleu_score.py:490: UserWarning: 
Corpus/Sentence contains 0 counts of 3-gram overlaps.
BLEU scores might be undesirable; use SmoothingFunction().
warnings.warn(_msg)

كما تظهر رسالة التحذير عندما يكون تقييم إحدى المجموعات n واحدة تعداد مساوياً الصفر بسبب عدم تطابق أي مجموعة من الكلمات في الجملة المرشّحة مع الجملة المرجعية مما يؤثر على النتيجة النهائية لتقييم n واحدة تعداد التراكمية.

ثامناً: حالة عدم وجود تطابق لمجموعات ثنائية الكلمة في الجملة المرشّحة مع الجملة المرجعية

# 4-gram cumulative BLEU and one of 2-gram=0
from nltk.translate.bleu_score import sentence_bleu
reference = [['this', 'is', 'a','test']]
candidate = ['this', 'was', 'the', 'test']
score1 = sentence_bleu(reference, candidate)
print("BLUE-4 Score with one of n-gram=0",score)

تكون نتيجة التقييم منخفضة لأنها محسوبة من تطابق 1-gram فقط وتظهر رسالة تحذير للمستخدم كما يلي:

BLUE-4 Score with one of n-gram=0 0.8408964152537145
/usr/local/lib/python3.6/dist-packages/nltk/translate/bleu_score.py:490: UserWarning: 
Corpus/Sentence contains 0 counts of 2-gram overlaps.
BLEU scores might be undesirable; use SmoothingFunction().
warnings.warn(_msg))

تاسعاً: حالة عدم وجود تطابق لمجموعات ثلاثية الكلمة في الجملة المرشّحة مع الجملة المرجعية

# 4-gram cumulative BLEU and one of 3-gram=0
from nltk.translate.bleu_score import sentence_bleu
reference = [['this', 'is', 'a','test']]
candidate = ['this', 'is', 'the', 'test']
score1 = sentence_bleu(reference, candidate)
print("BLUE-4 Score with one of n-gram=0",score)

تكون نتيجة التقييم منخفضة لأنها محسوبة من تطابق 1-gram و 2-gram فقط وتظهر رسالة تحذير للمستخدم كما يلي:

BLUE-4 Score with one of n-gram=0 0.7071067811865475
/usr/local/lib/python3.6/dist-packages/nltk/translate/bleu_score.py:490: UserWarning: 
Corpus/Sentence contains 0 counts of 3-gram overlaps.
BLEU scores might be undesirable; use SmoothingFunction().
warnings.warn(_msg)

إن استخدام المعادلات الرياضية التي يتم من خلالها حساب قيمة المعيار “بلو” بسيطة وتساعدك في فهم كيفية الحصول على القيم دون استخدام مكتبة أدوات معالجة اللغات الطبيعية، وسيتم شرح هذه المعادلات في برامج تعليمية أخرى لاحقاً.

الخلاصة

في هذا البرنامج التعليمي، اكتشفت عزيزي القارئ المعيار “بلو” لتقييم النص المرشّح بالنسبة لنص مرجعي في الترجمة الآلية ومهام توليد لغات طبيعية أخرى.

وبشكل خاص:

  • تعرّفت على معيار التقييم العددي ثنائي اللغة “بلو”  وفهمت لماذا يتم استخدامه.
  • تعلّمت استخدام مكتبة أدوات معالجة اللغات الطبيعية في لغة البرمجة “بايثون” لحساب قيم المعيار “بلو” من أجل تقييم الجمل والمستندات.
  • تعلّمت كيفية استخدام مجموعة من الأمثلة الصغيرة لفهم تأثير الاختلافات بين النص المرشّح والنص المرجعي على قيمة النتيجة النهائية للمعيار “بلو” .

المراجع

[1]       Papineni, K., Roukos, S., Ward, T. and Zhu, W.J., 2002, July. BLEU: a method for automatic evaluation of machine translation. In Proceedings of the 40th annual meeting on association for computational linguistics (pp. 311-318). Association for Computational Linguistics.

[2]       Brownlee, J., 2017. A Gentle Introduction to Calculating the BLEU Score for Text in Python, Develop Deep Learning Models for your Natural Language Problems. Machine Learning Mastery.

0 Shares:
4 تعليقات
  1. شكرا على الموضوع الراقي صراحة طريقة تقديم الموضوع ممتازة جدا
    سؤال لم سمحتم
    اين يمكن وضع الترجمة للتقييم؟ هل يوجد موقع ا
    أو رابط اة برنامج تنصيب؟ كيف يمكن التجربة عليه؟
    شكرا جزيلا و بورك فيكم.

  2. أشكرك دكتورة / سوسن على هذا اللشرح الوافي والراقي جزاك الله خيرا، مع تمنياتنا لكم بمزيد من التقدم والنجاح

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

You May Also Like