Computer >> Máy Tính >  >> Lập trình >> Python

Làm cách nào để biểu diễn và thao tác các chuỗi Unicode trong Tensorflow?

Các chuỗi Unicode được mã hóa utf-8 theo mặc định. Chuỗi Unicode có thể được biểu diễn dưới dạng các giá trị vô hướng được mã hóa UTF-8 bằng cách sử dụng phương thức ‘hằng số’ trong mô-đun Tensorflow. Các chuỗi Unicode có thể được biểu diễn dưới dạng vô hướng được mã hóa UTF-16 bằng cách sử dụng phương pháp "encode" có trong mô-đun Tensorflow.

Đọ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 các chuỗi Unicode bằng Python và thao tác với các chuỗi sử dụng Unicode tương đương. Đầu tiên, chúng tôi phân tách các chuỗi Unicode thành các mã thông báo dựa trên 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.

import tensorflow as tf
print("A constant is defined")
tf.constant(u"Thanks 😊")
print("The shape of the tensor is")
tf.constant([u"You are", u"welcome!"]).shape
print("Unicode string represented as UTF-8 encoded scalar")
text_utf8 = tf.constant(u"语言处理")
print(text_utf8)
print("Unicode string represented as UTF-16 encoded scalar")
text_utf16be = tf.constant(u"语言处理".encode("UTF-16-BE"))
print(text_utf16be)
print("Unicode string represented as a vector of Unicode code points")
text_chars = tf.constant([ord(char) for char in u"语言处理"])
print(text_chars)

Tín dụng mã:https://www.tensorflow.org/tutorials/load_data/unicode

Đầu ra

A constant is defined
The shape of the tensor is
Unicode string represented as UTF-8 encoded scalar
tf.Tensor(b'\xe8\xaf\xad\xe8\xa8\x80\xe5\xa4\x84\xe7\x90\x86', shape=(), dtype=string)
Unicode string represented as UTF-16 encoded scalar
tf.Tensor(b'\x8b\xed\x8a\x00Y\x04t\x06', shape=(), dtype=string)
Unicode string represented as a vector of Unicode code points
tf.Tensor([35821 35328 22788 29702], shape=(4,), dtype=int32)

Giải thích

  • TensorFlow tf.string là một loại dtype cơ bản.
  • Nó cho phép người dùng tạo các chuỗi byte.
  • Các chuỗi Unicode được mã hóa utf-8 theo mặc định.
  • Một tensor tf.string có khả năng giữ các chuỗi byte có độ dài khác nhau vì các chuỗi byte được coi là đơn vị nguyên tử.
  • Chiều dài chuỗi không được bao gồm trong kích thước tensor.
  • Khi Python được sử dụng để tạo chuỗi, việc xử lý unicode sẽ thay đổi giữa phiên bản v2 và v3. Trong v2, chuỗi unicode được biểu thị bằng tiền tố "u".
  • Trong v3, các chuỗi được mã hóa unicode theo mặc định.
  • Có hai cách tiêu chuẩn để biểu diễn chuỗi Unicode trong TensorFlow:
  • chuỗi vô hướng:Một chuỗi các điểm mã được mã hóa bằng một bảng mã ký tự đã biết.
  • int32 vectơ:Một phương thức trong đó mọi vị trí đều chứa một điểm mã.