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

Làm cách nào văn bản Tensorflow có thể được sử dụng để chia chuỗi theo ký tự bằng cách sử dụng unicode_split () trong Python?

Văn bản dòng chảy có thể được sử dụng để chia các chuỗi theo ký tự bằng cách sử dụng phương thức ‘unicode_split’, trước tiên bằng cách mã hóa các chuỗi phân tách, sau đó gán lệnh gọi hàm cho một biến. Biến này giữ kết quả của lệnh gọi hàm.

Đọc thêm: TensorFlow là gì và cách Keras làm việc với TensorFlow để tạo Mạng thần kinh?

Chúng tôi sẽ sử dụng API tuần tự Keras, hữu ích trong việc xây dựng mô hình tuần tự được sử dụng để làm việc với một chồng lớp đơn giản, trong đó mỗi lớp có chính xác một tensor đầu vào và một tensor đầu ra.

Một mạng nơ-ron chứa ít nhất một lớp được gọi là lớp chập. Chúng ta có thể sử dụng Mạng nơron hợp lệ để xây dựng mô hình học tập.

TensorFlow Text chứa tập hợp các lớp và hoạt động liên quan đến văn bản có thể được sử dụng với TensorFlow 2.0. TensorFlow Text có thể được sử dụng để xử lý trước mô hình trình tự.

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.

Token hóa là phương pháp chia nhỏ một chuỗi thành các mã thông báo. Các mã thông báo này có thể là từ, số hoặc dấu chấm câu.

Các giao diện quan trọng bao gồm Tokenizer và TokenizerWithOffsets, mỗi giao diện có một phương thức duy nhất để mã hóa và tokenize_with_offsets tương ứng. Có nhiều tokenizer, mỗi tokenizer đều triển khai TokenizerWithOffsets (mở rộng lớp Tokenizer). Điều này bao gồm một tùy chọn để lấy hiệu số byte vào chuỗi ban đầu. Điều này giúp biết các byte trong chuỗi ban đầu mà mã thông báo được tạo từ đó.

Ví dụ

print("The encoded characters are split")
tokens = tf.strings.unicode_split([u"仅今年前".encode('UTF-8')], 'UTF-8')
print("The tokenized data is converted to a list")
print(tokens.to_list())

Mã tín dụng −https://www.tensorflow.org/tutorials/tensorflow_text/intro

Đầu ra

The encoded characters are split
The tokenized data is converted to a list
[[b'\xe4\xbb\x85', b'\xe4\xbb\x8a', b'\xe5\xb9\xb4', b'\xe5\x89\x8d']]

Giải thích

  • Tất cả các mã thông báo đều trả về RaggedTensors với kích thước bên trong nhất của mã thông báo được ánh xạ tới các chuỗi riêng lẻ ban đầu.

  • Xếp hạng của hình dạng kết quả tăng lên một.

  • Khi mã hóa các ngôn ngữ mà không sử dụng khoảng trắng để phân đoạn các từ, thông thường sẽ phân chia theo ký tự.

  • Điều này có thể được thực hiện bằng cách sử dụng op unicode_split có trong lõi Tensorflow.

  • Khi unicode_split được gọi, dữ liệu được mã hóa sẽ được thêm vào danh sách.