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

Tensorflow và Python có thể được sử dụng như thế nào để lấy điểm mã của mỗi từ trong câu?

Để có được điểm mã của mỗi từ trong một câu, trước tiên bạn phải kiểm tra xem câu có phải là phần bắt đầu của từ đó hay không. Sau đó, nó được kiểm tra để xem liệu chỉ mục của ký tự có bắt đầu từ chỉ mục cụ thể của từ trong danh sách các ký tự được làm phẳng từ tất cả các câu hay không. Sau khi điều này được xác minh, điểm mã của mọi ký tự trong mỗi từ sẽ được lấy bằng cách sử dụng phương pháp dưới đây.

Các mã định danh tập lệnh giúp xác định ranh giới từ và vị trí cần thêm vào. Ranh giới từ được thêm vào ở đầu câu và cho mỗi ký tự có chữ viết khác với ký tự trước đó. Các hiệu số bắt đầu có thể được sử dụng để tạo RaggedTensor. RaggedTensor này sẽ chứa danh sách các từ từ tất cả các lô

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

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 phát hiện tập lệnh với sự trợ giúp của các mã Unicode tương đương với 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("Check if sentence is the start of the word")
sentence_char_starts_word = tf.concat(
   [tf.fill([sentence_char_script.nrows(), 1], True),
    tf.not_equal(sentence_char_script[:, 1:], sentence_char_script[:, :-1])],
   axis=1)
print("Check if index of character starts from specific index of word in flattened list of characters from all sentences")
word_starts = tf.squeeze(tf.where(sentence_char_starts_word.values), axis=1)
print(word_starts)
print("Get the code point of every character in every word")
word_char_codepoint = tf.RaggedTensor.from_row_starts(
   values=sentence_char_codepoint.values,
   row_starts=word_starts)
print(word_char_codepoint)

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

Đầu ra

Check if sentence is the start of the word
Check if index of character starts from specific index of word in flattened list of characters from all sentences
tf.Tensor([ 0   5   7 12 13 15], shape=(6,), dtype=int64)
Get the code point of every character in every word
<tf.RaggedTensor [[72, 101, 108, 108, 111], [44, 32], [116, 104, 101, 114, 101], [46], [19990, 30028], [12371, 12435, 12395, 12385, 12399]]>

Giải thích

  • Các số nhận dạng tập lệnh giúp xác định vị trí các ranh giới từ sẽ được thêm vào.
  • Ranh giới từ được thêm vào đầu mỗi câu và cho mỗi ký tự có chữ viết khác với ký tự trước đó.
  • Tiếp theo, những hiệu số bắt đầu này có thể được sử dụng để tạo RaggedTensor.
  • RaggedTensor này chứa danh sách các từ từ tất cả các lô