यूनिकोड स्ट्रिंग्स के एक सेट को encode मेथड का उपयोग करके UTF8-एन्कोडेड स्ट्रिंग के रूप में दर्शाया जा सकता है।
और पढ़ें: TensorFlow क्या है और Keras, TensorFlow के साथ मिलकर न्यूरल नेटवर्क कैसे बनाता है?
प्राकृतिक भाषा को प्रोसेस करने वाले मॉडल विभिन्न भाषाओं को संभालते हैं जिनके अलग-अलग कैरेक्टर सेट होते हैं। यूनिकोड को स्टैंडर्ड एन्कोडिंग सिस्टम माना जाता है जिसका उपयोग लगभग सभी भाषाओं के कैरेक्टर्स को दर्शाने के लिए किया जाता है। प्रत्येक कैरेक्टर को 0 और 0x10FFFF के बीच एक अद्वितीय इंटीजर कोड पॉइंट की मदद से एन्कोड किया जाता है। एक यूनिकोड स्ट्रिंग शून्य या अधिक कोड वैल्यूज का एक क्रम है।
आइए समझते हैं कि Python का उपयोग करके यूनिकोड स्ट्रिंग्स को कैसे दर्शाया जाए, और यूनिकोड समकक्षों का उपयोग करके उनमें हेरफेर किया जाए। सबसे पहले, हम स्टैंडर्ड स्ट्रिंग ऑप्स के यूनिकोड समकक्षों की मदद से स्क्रिप्ट डिटेक्शन के आधार पर यूनिकोड स्ट्रिंग्स को टोकन में अलग करते हैं।
हम नीचे दिए गए कोड को चलाने के लिए Google Colaboratory का उपयोग कर रहे हैं। Google Colab या Colaboratory ब्राउज़र पर Python कोड चलाने में मदद करता है और इसके लिए शून्य कॉन्फ़िगरेशन और GPUs (ग्राफ़िकल प्रोसेसिंग यूनिट्स) तक मुफ्त पहुंच की आवश्यकता होती है। Colaboratory को Jupyter Notebook के ऊपर बनाया गया है।
print("एक यूनिकोड स्ट्रिंग्स का सेट जिसे UTF8-एन्कोडेड स्ट्रिंग के रूप में दर्शाया गया है")
batch_utf8 = [s.encode('UTF-8') for s in[u'h\u00e3llo', u'What is the weather tomorrow', u'G\u00f6\u00f6dnight', u'😊']]
batch_chars_ragged = tf.strings.unicode_decode(batch_utf8, input_encoding='UTF-8')
for sentence_chars in batch_chars_ragged.to_list():
print(sentence_chars)
print("पैडिंग के साथ डेंस टेंसर प्रिंट किए जाते हैं")
batch_chars_padded = batch_chars_ragged.to_tensor(default_value=-1)
print(batch_chars_padded.numpy())
print("स्पार्स मैट्रिक्स में परिवर्तित करना")
batch_chars_sparse = batch_chars_ragged.to_sparse()
कोड क्रेडिट: https://www.tensorflow.org/tutorials/load_data/unicode
आउटपुट
एक यूनिकोड स्ट्रिंग्स का सेट जिसे UTF8-एन्कोडेड स्ट्रिंग के रूप में दर्शाया गया है
[104, 195, 108, 108, 111]
[87, 104, 97, 116, 32, 105, 115, 32, 116, 104, 101, 32, 119, 101, 97, 116, 104, 101, 114, 32, 116, 111, 109, 111, 114, 114, 111, 119]
[71, 246, 246, 100, 110, 105, 103, 104, 116]
[128522]
पैडिंग के साथ डेंस टेंसर प्रिंट किए जाते हैं
[[ 104 195 108 108 111 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1]
[ 87 104 97 116 32 105 115 32 116 104 101 32 119 101 97 116 104 101 114 32 116 111 109 111 114 114 111 119]
[ 71 246 246 100 110 105 103 104 116 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1]
[128522 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1]]
स्पार्स मैट्रिक्स में परिवर्तित करना
व्याख्या
- जब कई स्ट्रिंग्स को डीकोड किया जाता है, तो प्रत्येक स्ट्रिंग में कैरेक्टर्स की संख्या समान नहीं हो सकती है।
- परिणाम एक tf.RaggedTensor होगा, जहां सबसे आंतरिक आयाम की लंबाई भिन्न होती है और यह भिन्नता प्रत्येक स्ट्रिंग में कैरेक्टर्स की संख्या पर निर्भर करती है।
- इस tf.RaggedTensor को सीधे उपयोग किया जा सकता है, या इसे tf.RaggedTensor.to_tensor मेथड्स का उपयोग करके पैडिंग के साथ एक डेंस tf.Tensor में या tf.RaggedTensor.to_sparse का उपयोग करके tf.SparseTensor में परिवर्तित किया जा सकता है।