Инструменты обработки текста для TensorFlow

TensorFlow предоставляет две библиотеки для обработки текста и естественного языка: KerasNLP и TensorFlow Text. KerasNLP — это высокоуровневая библиотека обработки естественного языка (NLP), которая включает в себя современные модели на основе преобразователя, а также утилиты токенизации более низкого уровня. Это рекомендуемое решение для большинства случаев использования НЛП. Построенный на TensorFlow Text, KerasNLP абстрагирует низкоуровневые операции обработки текста в API, разработанный для простоты использования. Но если вы предпочитаете не работать с Keras API или вам нужен доступ к операциям обработки текста более низкого уровня, вы можете напрямую использовать TensorFlow Text.

КерасНЛП

import keras_nlp
import tensorflow_datasets as tfds

imdb_train, imdb_test = tfds.load(
  "imdb_reviews",
  split=["train", "test"],
  as_supervised=True,
  batch_size=16,
)
# Load a BERT model.
classifier = keras_nlp.models.BertClassifier.from_preset("bert_base_en_uncased")
# Fine-tune on IMDb movie reviews.
classifier.fit(imdb_train, validation_data=imdb_test)
# Predict two new examples.
classifier.predict(["What an amazing movie!", "A total waste of my time."])
См. краткое руководство на GitHub.

Самый простой способ начать обработку текста в TensorFlow — использовать KerasNLP. KerasNLP — это библиотека обработки естественного языка, которая поддерживает рабочие процессы, построенные из модульных компонентов с современными предустановленными весами и архитектурами. Вы можете использовать компоненты KerasNLP с их готовой конфигурацией. Если вам нужно больше контроля, вы можете легко настроить компоненты. KerasNLP уделяет особое внимание вычислениям в графе для всех рабочих процессов, поэтому вы можете рассчитывать на простоту производства с использованием экосистемы TensorFlow.

KerasNLP является расширением основного API Keras, и все высокоуровневые модули KerasNLP являются слоями или моделями. Если вы знакомы с Keras, вы уже понимаете большую часть KerasNLP.

Чтобы узнать больше, см. KerasNLP .

Текст TensorFlow

import tensorflow as tf
import tensorflow_text as tf_text

def preprocess(vocab_lookup_table, example_text):

  # Normalize text
  tf_text.normalize_utf8(example_text)

  # Tokenize into words
  word_tokenizer = tf_text.WhitespaceTokenizer()
  tokens = word_tokenizer.tokenize(example_text)

  # Tokenize into subwords
  subword_tokenizer = tf_text.WordpieceTokenizer(
       vocab_lookup_table, token_out_type=tf.int64)
  subtokens = subword_tokenizer.tokenize(tokens).merge_dims(1, -1)

  # Apply padding
  padded_inputs = tf_text.pad_model_inputs(subtokens, max_seq_length=16)
  return padded_inputs
Запуск в

KerasNLP предоставляет высокоуровневые модули обработки текста, которые доступны в виде слоев или моделей. Если вам нужен доступ к инструментам более низкого уровня, вы можете использовать TensorFlow Text. TensorFlow Text предоставляет вам богатую коллекцию операций и библиотек, которые помогут вам работать с вводом в текстовой форме, такой как необработанные текстовые строки или документы. Эти библиотеки могут выполнять предварительную обработку, обычно необходимую для текстовых моделей, и включают другие функции, полезные для моделирования последовательностей.

Вы можете извлекать мощные синтаксические и семантические функции текста из графа TensorFlow в качестве входных данных для вашей нейронной сети.

Интеграция предварительной обработки с графом TensorFlow дает следующие преимущества:

  • Облегчает большой набор инструментов для работы с текстом
  • Обеспечивает интеграцию с большим набором инструментов TensorFlow для поддержки проектов от определения проблемы до обучения, оценки и запуска.
  • Снижает сложность подачи времени и предотвращает перекос между обучением и обслуживанием.

В дополнение к вышесказанному вам не нужно беспокоиться о том, что токенизация при обучении отличается от токенизации при выводе или управлении сценариями предварительной обработки.

Архитектуры моделей
Узнайте, как выполнить сквозную предварительную обработку BERT для текста.
Узнайте, как создавать словари подслов из текста.
Узнайте, как классифицировать текст с помощью модели BERT.
Классифицируйте текст с помощью рекуррентных нейронных сетей.
Используйте модели Transformer для перевода текста.
Узнайте, как переводить текст с помощью моделей последовательностей.