В современном мире для нас уже привычно общение с нейронными сетями в самых разных сферах. Мы пишем промпт (текст запроса в нейросеть) и получаем ответ. Но вам никогда не было интересно как именно нейронные сети понимают наш “естественный язык”?
Очевидно, компьютер не может понять наш язык, так же как и любой другой, кроме цифрового. Таким образом, чтобы достичь “взаимопонимания” с ЭВМ, первым делом необходимо преобразовать текст в численный вид.
Токенизация
Первый этап работы с текстом — токенизация. Токенизация преобразует строку из букв и пробелов в последовательность токенов — базовых единиц текста. Стоит заметить, что токен — минимальная единица текста, которую модель может обработать; он не атомарен и часто состоит из подтокенов.
Проще всего организовать токенизацию с помощью словаря, где каждому слову соответствует уникальное число — индекс.
Однако, перед тем как разбить текст на токены токенизатор выполняет нормализацию.
Предположим, мы токенизируем предложение “The cat loves cats”. Без нормализатора токенизатор воспримет слова “cat” и “cats” как отдельные токены, что не будет верным. А благодаря нормализатору, мы приводим слова в их начальные формы, удаляем ненужные пробельные символы и понижаем регистр.
Кроме того, в текст часто добавляют специальные токены — например, чтобы отметить начало или конец предложения, выделить вопрос или обозначить пропуски. Эти маркеры помогают модели лучше понять структуру и смысл текста.
Итак, мы с вами получили список токенов. Следующий шаг — преобразовать в численный формат — векторизовать. Под вектором будем подразумевать упорядоченную строку чисел (одномерный массив)
Векторизация
Рассмотрим несколько наиболее популярных методов векторизации: One-hot encoding, Bag of words, TF-IDF
One-hot encoding — самый просто и примитивный метод, результатом которого является матрица с единицами и нулями внутри. 1 говорит о том, что какой-то текстовый элемент встречается в предложении (или документе). 0 говорит о том, что элемент не встречается в предложении. Однако, этот метод имеет существенный минус — при большом количестве токенов (сотни или тысячи), это приведёт к так называемому «проклятию размерности» — резкому увеличению числа признаков, что может значительно ухудшить качество модели
Bag of Words (мешок слов) формирует вектор на основе частоты вхождения слов в текст. Каждому слову из словаря соответствует значение — количество появлений данного слова в документе или предложении. BoW учитывает только частоту слов, но не порядок и контекст, поэтому данный метод и называется “мешок слов”
Наиболее продвинутый метод для анализа — TF-IDF. TF отражает частоту слова в одном документе, а IDF уменьшает вес часто встречающихся слов, чтобы выделить более значимые и редкие слова. Этот метод помогает модели лучше различать ключевые слова в тексте.
Векторизация и токенизация служат для преобразования слов и текстов в численные векторы, которые нейронные сети могут обрабатывать.В нейронных сетях этот метод используется для предобработки текста перед его передаче нейронной сети, в частности, например архитектуре RNN, в которой мы подробно расскажем в следующей статье.
Автор:
#Алексеенко_Недышилова
Редактор:
#Сабуров
#Ершов
#Заметка
#IT
Post #1075
173

- ❤ 3
- 🍾 1