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

Phân đoạn đối với dữ liệu văn bản trong Tensorflow là gì?

Phân đoạn đề cập đến hành động tách văn bản thành các đơn vị giống như từ. Điều này được sử dụng trong trường hợp các ký tự khoảng trắng được sử dụng để phân tách các từ, nhưng một số ngôn ngữ như tiếng Trung và tiếng Nhật không sử dụng dấu cách. Một số ngôn ngữ như tiếng Đức chứa các hợp chất dài cần được tách ra để phân tích ý nghĩa của chúng.

Đọ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("Below is the sentence that is processed")
sentence_texts = [u'Hello, there.', u'世界こんにちは']
print("The code point values for characters in the sentence")
sentence_char_codepoint = tf.strings.unicode_decode(sentence_texts, 'UTF-8')
print(sentence_char_codepoint)
print("The unicode script values for characters in the sentence")
sentence_char_script = tf.strings.unicode_script(sentence_char_codepoint)
print(sentence_char_script)

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

Đầu ra

Below is the sentence that is processed
The code point values for characters in the sentence

The unicode script values for characters in the sentence
<tf.RaggedTensor [[25, 25, 25, 25, 25, 0, 0, 25, 25, 25, 25, 25, 0], [17, 17, 20, 20, 20, 20, 20]]>

Giải thích

  • Phân đoạn đề cập đến nhiệm vụ tách văn bản thành các đơn vị giống như từ.
  • Điều này được sử dụng khi các ký tự khoảng trắng được sử dụng để phân tách các từ, nhưng một số ngôn ngữ như tiếng Trung và tiếng Nhật không sử dụng dấu cách.
  • Một số ngôn ngữ như tiếng Đức chứa các hợp chất dài cần được chia nhỏ để phân tích ý nghĩa của chúng.
  • Đối với văn bản trên web, các ngôn ngữ và chữ viết khác nhau thường được kết hợp với nhau, như trong "NY 株 価" (Sở giao dịch chứng khoán New York).
  • Có thể thực hiện phân đoạn thô mà không cần sử dụng mô hình ML bằng cách thay đổi tập lệnh thành các ranh giới từ gần đúng.
  • Điều này sẽ hoạt động đối với các chuỗi chẳng hạn như "NY 株 価". Nó hoạt động với hầu hết các ngôn ngữ sử dụng khoảng trắng, vì các ký tự khoảng trắng của các tập lệnh khác nhau được phân loại là USCRIPT_COMMON, đây là một mã tập lệnh đặc biệt khác với mã của bất kỳ văn bản thực tế nào.
  • Trong đoạn mã trên, mã điểm cho mọi ký tự trong mỗi câu được tạo.
  • Tiếp theo, tập lệnh Unicode của mọi ký tự trong mọi thời điểm được tạo.