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

Tensorflow có thể được sử dụng như thế nào để xây dựng từ vựng từ các từ được mã hóa cho tập dữ liệu Illiad bằng Python?

Tensorflow là một khuôn khổ học máy được cung cấp bởi Google. Nó là một khung công tác mã nguồn mở được sử dụng kết hợp với Python để triển khai các thuật toán, ứng dụng học sâu và hơn thế nữa. Nó được sử dụng trong nghiên cứu và cho mục đích sản xuất. Nó có các kỹ thuật tối ưu hóa giúp thực hiện các phép toán phức tạp một cách nhanh chóng. Điều này là do nó sử dụng NumPy và các mảng đa chiều. Các mảng đa chiều này còn được gọi là 'tensors'. Khung hỗ trợ làm việc với các mạng thần kinh sâu.

Tensor là một cấu trúc dữ liệu được sử dụng trong TensorFlow. Nó giúp kết nối các cạnh trong một sơ đồ luồng. Sơ đồ luồng này được gọi là 'Biểu đồ luồng dữ liệu'. Tensors không là gì khác ngoài một mảng đa chiều hoặc một danh sách.

Chúng tôi sẽ sử dụng tập dữ liệu của Illiad, chứa dữ liệu văn bản của ba tác phẩm dịch của William Cowper, Edward (Earl of Derby) và Samuel Butler. Mô hình được đào tạo để xác định người dịch khi một dòng văn bản được đưa ra. Các tệp văn bản được sử dụng đã được xử lý trước. Điều này bao gồm việc xóa đầu trang và chân trang của tài liệu, số dòng và tiêu đề chương.

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.

Ví dụ

Sau đây là đoạn mã -

print("Build a vocabulary using the tokens")
tokenized_ds = configure_dataset(tokenized_ds)
vocab_dict = collections.defaultdict(lambda: 0)
for toks in tokenized_ds.as_numpy_iterator():
   for tok in toks:
   vocab_dict[tok] += 1
print("Sort the vocabulary")
vocab = sorted(vocab_dict.items(), key=lambda x: x[1], reverse=True)
vocab = [token for token, count in vocab]
vocab = vocab[:VOCAB_SIZE]
vocab_size = len(vocab)
print("The vocabulary size is : ", vocab_size)
print("First six vocabulary entries are :", vocab[:6])

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

Đầu ra

Build a vocabulary using the tokens
Sort the vocabulary
The vocabulary size is : 10000
First six vocabulary entries are : [b',', b'the', b'and', b"'", b'of', b'.']

Tiếp theo, bạn sẽ xây dựng vốn từ vựng bằng cách sắp xếp các mã thông báo theo tần suất và giữ các mã thông báo VOCAB_SIZE hàng đầu.

Giải thích

  • Từ vựng được xây dựng sau khi sắp xếp các mã thông báo dựa trên tần suất của chúng.

  • Một số mục từ vựng được hiển thị trên bảng điều khiển.