TF টেক্সট মেট্রিক্স

TensorFlow.org এ দেখুন Google Colab-এ চালান GitHub এ দেখুন নোটবুক ডাউনলোড করুন

ওভারভিউ

টেনসরফ্লো টেক্সট টেন্সরফ্লো 2.0-এর সাথে ব্যবহারের জন্য প্রস্তুত পাঠ্য-মেট্রিক্স-সম্পর্কিত ক্লাস এবং অপারেশনগুলির একটি সংগ্রহ সরবরাহ করে। লাইব্রেরিতে পাঠ্য-সাদৃশ্য মেট্রিক্সের বাস্তবায়ন রয়েছে যেমন ROUGE-L, পাঠ্য প্রজন্মের মডেলগুলির স্বয়ংক্রিয় মূল্যায়নের জন্য প্রয়োজনীয়।

আপনার মডেলগুলিকে মূল্যায়ন করার জন্য এই অপ্সগুলি ব্যবহার করার সুবিধা হল যে তারা TPU মূল্যায়নের সাথে সামঞ্জস্যপূর্ণ এবং TF স্ট্রিমিং মেট্রিক APIগুলির সাথে সুন্দরভাবে কাজ করে৷

সেটআপ

pip install -q tensorflow-text
import tensorflow as tf
import tensorflow_text as text

রুজ-এল

Rouge-L মেট্রিক হল 0 থেকে 1 পর্যন্ত একটি স্কোর যা নির্দেশ করে যে দুটি সিকোয়েন্স কতটা একই রকম, লংটেস্ট কমন সিকোয়েন্স (LCS) এর দৈর্ঘ্যের উপর ভিত্তি করে। বিশেষ করে, Rouge-L হল ওজনযুক্ত হারমোনিক গড় (বা f-পরিমাপ) যা LCS নির্ভুলতা (এলসিএস দ্বারা আচ্ছাদিত অনুমান অনুক্রমের শতাংশ) এবং এলসিএস প্রত্যাহার (এলসিএস দ্বারা আচ্ছাদিত রেফারেন্স সিকোয়েন্সের শতাংশ) একত্রিত করে।

উত্স: https://www.microsoft.com/en-us/research/publication/rouge-a-package-for-automatic-evaluation-of-summaries/

TF.Text বাস্তবায়ন প্রতিটি (অনুমান, রেফারেন্স) জোড়ার জন্য F- পরিমাপ, যথার্থতা এবং স্মরণ ফেরত দেয়।

নিম্নলিখিত অনুমান/রেফারেন্স জোড়া বিবেচনা করুন:

hypotheses = tf.ragged.constant([['captain', 'of', 'the', 'delta', 'flight'],
                                 ['the', '1990', 'transcript']])
references = tf.ragged.constant([['delta', 'air', 'lines', 'flight'],
                                 ['this', 'concludes', 'the', 'transcript']])

অনুমান এবং রেফারেন্স টোকেনের tf.RaggedTensors হবে বলে আশা করা হচ্ছে। কাঁচা বাক্যের পরিবর্তে টোকেন প্রয়োজন কারণ কোনো একক টোকেনাইজেশন কৌশল সব কাজের জন্য উপযুক্ত নয়।

এখন আমরা text.metrics.rouge_l কল করতে পারি এবং আমাদের ফলাফল ফিরে পেতে পারি:

result = text.metrics.rouge_l(hypotheses, references)
print('F-Measure: %s' % result.f_measure)
print('P-Measure: %s' % result.p_measure)
print('R-Measure: %s' % result.r_measure)
F-Measure: tf.Tensor([0.44444448 0.57142854], shape=(2,), dtype=float32)
P-Measure: tf.Tensor([0.4       0.6666667], shape=(2,), dtype=float32)
R-Measure: tf.Tensor([0.5 0.5], shape=(2,), dtype=float32)

ROUGE-L-এর একটি অতিরিক্ত হাইপারপ্যারামিটার, আলফা রয়েছে, যা F-মেজার গণনার জন্য ব্যবহৃত হারমোনিক গড়ের ওজন নির্ধারণ করে। 0-এর কাছাকাছি মানগুলি স্মরণকে আরও গুরুত্বপূর্ণ হিসাবে বিবেচনা করে এবং 1-এর কাছাকাছি মানগুলি যথার্থতাকে আরও গুরুত্বপূর্ণ হিসাবে বিবেচনা করে। আলফা ডিফল্ট .5, যা যথার্থতা এবং স্মরণের জন্য সমান ওজনের সাথে মিলে যায়।

# Compute ROUGE-L with alpha=0
result = text.metrics.rouge_l(hypotheses, references, alpha=0)
print('F-Measure (alpha=0): %s' % result.f_measure)
print('P-Measure (alpha=0): %s' % result.p_measure)
print('R-Measure (alpha=0): %s' % result.r_measure)
F-Measure (alpha=0): tf.Tensor([0.5 0.5], shape=(2,), dtype=float32)
P-Measure (alpha=0): tf.Tensor([0.4       0.6666667], shape=(2,), dtype=float32)
R-Measure (alpha=0): tf.Tensor([0.5 0.5], shape=(2,), dtype=float32)
# Compute ROUGE-L with alpha=1
result = text.metrics.rouge_l(hypotheses, references, alpha=1)
print('F-Measure (alpha=1): %s' % result.f_measure)
print('P-Measure (alpha=1): %s' % result.p_measure)
print('R-Measure (alpha=1): %s' % result.r_measure)
F-Measure (alpha=1): tf.Tensor([0.4       0.6666667], shape=(2,), dtype=float32)
P-Measure (alpha=1): tf.Tensor([0.4       0.6666667], shape=(2,), dtype=float32)
R-Measure (alpha=1): tf.Tensor([0.5 0.5], shape=(2,), dtype=float32)