Một tập hợp các chuỗi Unicode có thể được biểu diễn dưới dạng chuỗi được mã hóa UTF8 bằng phương pháp "encode".
Đọc thêm:TensorFlow là gì và cách Keras làm việc với TensorFlow để tạo Mạng thần kinh?
Các mô hình xử lý ngôn ngữ tự nhiên xử lý các ngôn ngữ khác nhau có các bộ ký tự khác nhau. Unicode được coi là hệ thống mã hóa tiêu chuẩn được sử dụng để biểu thị ký tự từ hầu hết các ngôn ngữ. Mọi ký tự được mã hóa với sự trợ giúp của một điểm mã số nguyên duy nhất nằm trong khoảng từ 0 đến 0x10FFFF. Chuỗi Unicode là một chuỗi không hoặc nhiều giá trị mã.
Hãy để chúng tôi hiểu cách biểu diễn chuỗi Unicode bằng Python và thao tác với những chuỗi sử dụng Unicode tương đương. Đầu tiên, chúng tôi tách các chuỗi Unicode thành các mã thông báo dựa trên việc phát hiện tập lệnh với sự trợ giúp của các mã Unicode tương đương của các mã chuỗi chuẩn.
Chúng tôi đang sử dụng Google Colaboratory để chạy đoạn mã dưới đây. Google Colab hoặc Colaboratory giúp chạy mã Python qua trình duyệt và không yêu cầu cấu hình cũng như quyền truy cập miễn phí vào GPU (Đơn vị xử lý đồ họa). Colaboratory đã được xây dựng trên Jupyter Notebook.
print("A set of Unicode strings which is represented as a UTF8-encoded string") batch_utf8 = [s.encode('UTF-8') for s in[u'hÃllo', u'What is the weather tomorrow',u'Göödnight', 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("Dense tensor with padding are printed") batch_chars_padded = batch_chars_ragged.to_tensor(default_value=-1) print(batch_chars_padded.numpy()) print("Converting to sparse matrix") batch_chars_sparse = batch_chars_ragged.to_sparse()
Mã tín dụng:https://www.tensorflow.org/tutorials/load_data/unicode
Đầu ra
A set of Unicode strings which is represented as a UTF8-encoded string [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] Dense tensor with padding are printed [[ 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] [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] [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]] Converting to sparse matrix
Giải thích
- Khi nhiều chuỗi được giải mã, số ký tự trong mỗi chuỗi có thể không bằng nhau.
- Kết quả sẽ là tf.RaggedTensor, trong đó độ dài của thứ nguyên trong cùng thay đổi và biến thể này phụ thuộc vào số lượng ký tự trong mỗi chuỗi.
- Tf.RaggedTensor này có thể được sử dụng trực tiếp hoặc nó có thể được chuyển đổi thành tf.Tensor dày đặc có đệm bằng cách sử dụng các phương thức tf.RaggedTensor.to_tensor hoặc tf.SparseTensor bằng cách sử dụng tf.RaggedTensor.to_sparse.