Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Cách phân đoạn mã điểm từ ragged tensor về câu với TensorFlow

Phân đoạn (segmentation) là việc tách văn bản thành các đơn vị giống từ. Điều này cần thiết khi ngôn ngữ không dùng dấu cách (như tiếng Trung, tiếng Nhật) hoặc có từ ghép dài (tiếng Đức).

Quy trình phân đoạn và mã hóa ngược

  1. Phân đoạn mã điểm từ (word code points) về câu.
  2. Kiểm tra xem mã điểm của ký tự trong từ có xuất hiện trong câu hay không.
  3. Nếu có, tạo RaggedTensor và mã hóa ngược về định dạng chuẩn (UTF-8).

Mã ví dụ

print("Phân đoạn mã điểm từ về câu")
print("Kiểm tra mã điểm ký tự có trong câu")
sentence_word_char_codepoint = tf.RaggedTensor.from_row_lengths(
    values=word_char_codepoint,
    row_lengths=sentence_num_words)
print(sentence_word_char_codepoint)

print("Mã hóa ngược về UTF-8")
tf.strings.unicode_encode(sentence_word_char_codepoint, 'UTF-8').to_list()

Nguồn mã: TensorFlow Unicode Tutorial

Đầu ra

Phân đoạn mã điểm từ về câu
Kiểm tra mã điểm ký tự có trong câu
<tf.RaggedTensor [[[72, 101, 108, 108, 111], [44, 32], [116, 104, 101, 114, 101], [46]], [[19990, 30028], [12371, 12435, 12395, 12385, 12399]]]>
Mã hóa ngược về UTF-8
[[b'Hello', b', ', b'there', b'.'], [b'\xe4\xb8\x96\xe7\x95\x8c', b'\xe3\x81\x93\xe3\x82\x93\xe3\x81\xab\xe3\x81\xa1\xe3\x81\xaf']]

Giải thích

  • Mã điểm được phân đoạn thành câu.
  • Xác định mã điểm ký tự có mặt trong câu.
  • Dữ liệu giải mã được mã hóa ngược về UTF-8.