यूनिकोड स्ट्रिंग्स डिफ़ॉल्ट रूप से utf-8 एन्कोडेड होती हैं। यूनिकोड स्ट्रिंग को TensorFlow मॉड्यूल में constant मेथड का उपयोग करके UTF-8 एन्कोडेड स्केलर वैल्यूज के रूप में दर्शाया जा सकता है। यूनिकोड स्ट्रिंग को TensorFlow मॉड्यूल में मौजूद encode मेथड का उपयोग करके UTF-16 एन्कोडेड स्केलर के रूप में दर्शाया जा सकता है।
और पढ़ें: TensorFlow क्या है और Keras, TensorFlow के साथ मिलकर न्यूरल नेटवर्क कैसे बनाता है?
प्राकृतिक भाषा को प्रोसेस करने वाले मॉडल विभिन्न भाषाओं को संभालते हैं जिनके अलग-अलग कैरेक्टर सेट होते हैं। यूनिकोड को स्टैंडर्ड एन्कोडिंग सिस्टम माना जाता है जिसका उपयोग लगभग सभी भाषाओं के कैरेक्टर्स को दर्शाने के लिए किया जाता है। प्रत्येक कैरेक्टर को 0 और 0x10FFFF के बीच एक अद्वितीय इंटीजर कोड पॉइंट की मदद से एन्कोड किया जाता है। एक यूनिकोड स्ट्रिंग शून्य या अधिक कोड वैल्यूज का एक क्रम है।
आइए समझते हैं कि Python का उपयोग करके यूनिकोड स्ट्रिंग्स को कैसे दर्शाया जाए, और यूनिकोड समकक्षों का उपयोग करके उनमें हेरफेर किया जाए। सबसे पहले, हम स्टैंडर्ड स्ट्रिंग ऑप्स के यूनिकोड समकक्षों की मदद से स्क्रिप्ट डिटेक्शन के आधार पर यूनिकोड स्ट्रिंग्स को टोकन में अलग करते हैं।
हम नीचे दिए गए कोड को चलाने के लिए Google Colaboratory का उपयोग कर रहे हैं। Google Colab या Colaboratory ब्राउज़र पर Python कोड चलाने में मदद करता है और इसके लिए शून्य कॉन्फ़िगरेशन और GPUs (ग्राफ़िकल प्रोसेसिंग यूनिट्स) तक मुफ्त पहुंच की आवश्यकता होती है। Colaboratory को Jupyter Notebook के ऊपर बनाया गया है।
import tensorflow as tf
print("एक कॉन्स्टेंट परिभाषित किया गया है")
tf.constant(u"Thanks 😊")
print("टेंसर का आकार है")
tf.constant([u"You are", u"welcome!"]).shape
print("यूनिकोड स्ट्रिंग को UTF-8 एन्कोडेड स्केलर के रूप में दर्शाया गया")
text_utf8 = tf.constant(u"语言处理")
print(text_utf8)
print("यूनिकोड स्ट्रिंग को UTF-16 एन्कोडेड स्केलर के रूप में दर्शाया गया")
text_utf16be = tf.constant(u"语言处理".encode("UTF-16-BE"))
print(text_utf16be)
print("यूनिकोड स्ट्रिंग को यूनिकोड कोड पॉइंट्स के वेक्टर के रूप में दर्शाया गया")
text_chars = tf.constant([ord(char) for char in u"语言处理"])
print(text_chars)
कोड क्रेडिट: https://www.tensorflow.org/tutorials/load_data/unicode
आउटपुट
एक कॉन्स्टेंट परिभाषित किया गया है
टेंसर का आकार है
यूनिकोड स्ट्रिंग को UTF-8 एन्कोडेड स्केलर के रूप में दर्शाया गया
tf.Tensor(b'\xe8\xaf\xad\xe8\xa8\x80\xe5\xa4\x84\xe7\x90\x86', shape=(), dtype=string)
यूनिकोड स्ट्रिंग को UTF-16 एन्कोडेड स्केलर के रूप में दर्शाया गया
tf.Tensor(b'\x8b\xed\x8a\x00Y\x04t\x06', shape=(), dtype=string)
यूनिकोड स्ट्रिंग को यूनिकोड कोड पॉइंट्स के वेक्टर के रूप में दर्शाया गया
tf.Tensor([35821 35328 22788 29702], shape=(4,), dtype=int32)
व्याख्या
- TensorFlow tf.string एक बेसिक dtype है।
- यह उपयोगकर्ता को बाइट स्ट्रिंग्स के टेंसर्स बनाने की अनुमति देता है।
- यूनिकोड स्ट्रिंग्स डिफ़ॉल्ट रूप से utf-8 एन्कोडेड होती हैं।
- एक tf.string टेंसर में बाइट स्ट्रिंग्स की अलग-अलग लंबाई रखने की क्षमता होती है क्योंकि बाइट स्ट्रिंग्स को परमाणु इकाइयों के रूप में माना जाता है।
- स्ट्रिंग की लंबाई टेंसर आयामों में शामिल नहीं होती है।
- जब Python का उपयोग करके स्ट्रिंग्स का निर्माण किया जाता है, तो v2 और v3 के बीच यूनिकोड हैंडलिंग बदल जाती है। v2 में, यूनिकोड स्ट्रिंग्स को "u" प्रीफिक्स द्वारा दर्शाया जाता है।
- v3 में, स्ट्रिंग्स डिफ़ॉल्ट रूप से यूनिकोड-एन्कोडेड होती हैं।
- TensorFlow में यूनिकोड स्ट्रिंग को दर्शाने के दो मानक तरीके हैं:
- स्ट्रिंग स्केलर: कोड पॉइंट्स के एक क्रम को एक ज्ञात कैरेक्टर एन्कोडिंग के साथ एन्कोड किया जाता है।
- int32 वेक्टर: एक विधि जहां प्रत्येक स्थिति एक सिंगल कोड पॉइंट रखती है।