banner

Новости

Jul 09, 2023

Объяснение модели мешка слов в НЛП

Модель «мешок слов» — это один особенно простой способ представить документ в числовой форме, прежде чем мы сможем передать его в алгоритм машинного обучения. Для любой задачи обработки естественного языка нам нужен способ выполнить это перед дальнейшей обработкой. Алгоритмы машинного обучения не могут работать с необработанным текстом; нам нужно преобразовать текст в какое-то числовое представление. Этот процесс также известен как встраивание текста.

Существует два основных подхода к внедрению текста: векторы слов и векторы документов. С помощью векторов слов мы представляем каждое отдельное слово в тексте как вектор (т. е. последовательность чисел). Затем мы преобразуем весь документ в последовательность этих векторов слов. С другой стороны, векторы документа встраивают весь документ как один вектор. На самом деле это намного проще, чем вставлять каждое слово по отдельности. Это также позволяет встраивать все наши документы одного размера, что удобно, поскольку многие алгоритмы машинного обучения требуют ввода фиксированного размера.

Модель «мешок слов» — это простой способ преобразования слов в числовое представление при обработке естественного языка. Эта модель представляет собой простой метод встраивания документов, основанный на частоте слов. Концептуально мы думаем о всем документе как о «мешке» слов, а не как о последовательности. Мы представляем документ просто по частоте каждого слова. Используя этот метод, мы можем встроить целый набор документов и передать их в различные алгоритмы машинного обучения.

Модель «мешок слов» — это простой метод встраивания документов, основанный на частоте слов. Концептуально мы думаем о всем документе как о «мешке» слов, а не как о последовательности. Мы представляем документ просто по частоте каждого слова. Например, если у нас есть словарь из 1000 слов, то весь документ будет представлен 1000-мерным вектором, где i-я запись вектора представляет частоту i-го словарного слова в документе.

Используя этот метод, мы можем встроить целый набор документов и передать их в различные алгоритмы машинного обучения. Поскольку это встраивание настолько простое, оно не очень хорошо работает для сложных задач. Но он подходит для простых задач классификации, а его простота и удобство использования делают его привлекательным выбором. Давайте разберемся в деталях.

Еще от Ноя TopperSigmoid Функция активации: введение

В качестве игрушечного примера предположим, что наши документы имеют небольшой словарный запас. Например, в книге доктора Сьюза «Зеленые яйца и ветчина» всего пятьдесят уникальных слов. В алфавитном порядке это: а, я и где угодно находятся, быть, лодка, ящик, машина, мог бы, темно, делать, есть, яйца, лиса, коза, хорошо, зеленый, ветчина, здесь, дом, я. , если, в, пусть, типа, может, я, мышь, не, в дождь, Сэм, скажем, увидишь, так что, поблагодари, что, их, там, они, поезд, дерево, попробуют, будут , причём, бы и ты.

Если мы будем рассматривать каждую страницу книги как отдельный документ, мы сможем встроить каждую из них как 50-мерный вектор. Рассмотрим страницу, на которой написано:

Я бы не хотел, чтобы они были здесь или там.

Я бы не хотел их нигде.

Я не люблю зеленые яйца и ветчину.

Они мне не нравятся, Сэм-я-есть.

Первым шагом является подсчет частоты каждого словарного слова. «ам» появляется один раз, «и» один раз, «где угодно» один раз, «до» два раза, «яйца» один раз, «зеленый» один раз, «ветчина» один раз, «здесь» один раз, « Я» пять раз, «нравится» четыре раза, «не» четыре раза, «или» один раз, «Сэм» один раз, «они» три раза, «там» один раз и «хотел бы» два раза. Любое другое словарное слово встречается ноль раз.

Чтобы превратить это в 50-мерный вектор, мы устанавливаем i-ю запись равной частоте i-го словарного слова. Например, «am» является вторым словарным словом и встречается в документе один раз, поэтому вторая запись будет одной. С другой стороны, «а» — это первое словарное слово, и оно здесь вообще не встречается, поэтому первая запись будет равна нулю. Вся страница в векторной форме становится: [0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 1, 1, 1, 0. , 5, 0, 0, 0, 4, 0, 0, 0, 4, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0 , 0, 0, 2, 0].

ДЕЛИТЬСЯ