Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

Модель мешка слов

Лекция



Привет, Вы узнаете о том , что такое модель мешка слов, Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое модель мешка слов, мешок слов , настоятельно рекомендую прочитать все из категории Обработка естественного языка.

Модель набора слов - это упрощенное представление, используемое при обработке естественного языка и поиске информации (IR). В этой модели текст (например, предложение или документ) представлен как мешок (мультимножество) своих слов, без учета грамматики и даже порядка слов, но с сохранением множественности . модель мешка слов также использовалась для компьютерного зрения .

Модель набора слов обычно используется в методах классификации документов, где (частота) появления каждого слова используется в качестве признака для обучения классификатора .

Раннее упоминание «мешка слов» в лингвистическом контексте можно найти в статье Зеллига Харриса 1954 года о структуре распределения .

Модель мешка слов - это способ представления текстовых данных при моделировании текста с помощью алгоритмов машинного обучения.

Модель « мешок слов » проста для понимания и реализации и имеет большой успех в таких проблемах, как моделирование языка и классификация документов.

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

После завершения этого урока вы узнаете:

  • Что такое модель мешка слов и почему она нужна для представления текста.
  • Как разработать модель пакета слов для коллекции документов.
  • Как использовать разные техники для подготовки словарного запаса и оценки слов.

Проблема с текстом

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

Алгоритмы машинного обучения не могут работать с необработанным текстом напрямую; текст должен быть преобразован в числа. Конкретно векторы чисел.

При обработке языка векторы x извлекаются из текстовых данных, чтобы отражать различные лингвистические свойства текста.

- Страница 65,Методы нейронной сети в обработке естественного языка, 2017

Это называется извлечением или кодированием объектов.

Популярный и простой метод извлечения признаков из текстовых данных называется текстовой моделью мешка слов.

Что такое мешок слов?

Модель мешка слов, или сокращенно BoW, - это способ извлечения особенностей из текста для использования в моделировании, например, в алгоритмах машинного обучения.

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

Мешок слов - это представление текста, который описывает вхождение слов в документ. Это включает в себя две вещи:

  1. Словарь известных слов.
  2. Мера наличия известных слов.

Это называется «мешокСлов, потому что любая информация о порядке или структуре слов в документе отбрасывается. Модель касается только того, встречаются ли в документе известные слова, а не где в документе.

Очень распространенная процедура извлечения предложений и документов - это метод «мешка слов» (BOW). При таком подходе мы смотрим на гистограмму слов в тексте, то есть рассматриваем каждое слово как особенность.

- Страница 69,Методы нейронной сети в обработке естественного языка, 2017

Интуиция заключается в том, что документы похожи, если они имеют похожее содержание. Далее, что из одного только содержания мы можем узнать кое-что о значении документа.

Мешок слов может быть простым или сложным, как вам нравится. Сложность заключается как в определении словарного запаса известных слов (или токенов), так и в том, как оценивать наличие известных слов.

Мы подробнее рассмотрим обе эти проблемы.

Пример модели мешка слов

Давайте сделаем модель мешка слов конкретной с проработанным примером.

Шаг 1: Сбор данных

Ниже приведен фрагмент первых нескольких строк текста из книги «Повесть о двух городахЧарльза Диккенса, взято из проекта Гутенберга.

Это были лучшие времена,
это было худшее время,
это был век мудрости,
это был век глупости,

Для этого небольшого примера давайте рассмотрим каждую строку как отдельный «документ», а 4 строки - как весь наш набор документов.

Шаг 2. Составьте словарь

Теперь мы можем составить список всех слов в нашем модельном словаре.

Уникальные слова здесь (игнорируя регистр и знаки препинания):

  • "Это"
  • "было"
  • «»
  • "Лучший"
  • «Из»
  • «времена»
  • "наихудший"
  • "возраст"
  • «Мудрость»
  • «Глупость»

Это словарь из 10 слов из корпуса, содержащего 24 слова.

Шаг 3. Создание векторов документов

Следующим шагом является оценка слов в каждом документе.

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

Поскольку мы знаем, что в словаре 10 слов, мы можем использовать представление документа фиксированной длины, равное 10, с одной позицией в векторе для оценки каждого слова.

Самый простой метод оценки - пометить присутствие слов как логическое значение, 0 для отсутствия, 1 для настоящего.

Используя произвольный порядок слов, перечисленных выше в нашем словаре, мы можем пройти первый документ («Это были лучшие времена«) И преобразовать его в двоичный вектор

Оценка документа будет выглядеть следующим образом:

  • «Это» = 1
  • «Был» = 1
  • «The» = 1
  • «Лучший» = 1
  • «Из» = 1
  • «Времена» = 1
  • «Худший» = 0
  • «Возраст» = 0
  • «Мудрость» = 0
  • «Глупость» = 0

В качестве двоичного вектора это будет выглядеть следующим образом:

[1, 1, 1, 1, 1, 1, 0, 0, 0, 0]

Остальные три документа будут выглядеть следующим образом:

"it was the worst of times" = [1, 1, 1, 0, 1, 1, 1, 0, 0, 0]
"it was the age of wisdom" = [1, 1, 1, 0, 1, 0, 0, 1, 1, 0]
"it was the age of foolishness" = [1, 1, 1, 0, 1, 0, 0, 1, 0, 1]

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

Новые документы, которые пересекаются со словарем известных слов, но могут содержать слова вне словаря, все еще могут быть закодированы, где только вхождение известных слов оценивается, а неизвестные слова игнорируются.

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

Пример реализации

Следующее моделирует текстовый документ с использованием набора слов. Об этом говорит сайт https://intellect.icu . Вот два простых текстовых документа:

(1) Джон любит смотреть фильмы. Мэри тоже любит фильмы.
(2) Мэри также любит смотреть футбольные матчи.

На основе этих двух текстовых документов для каждого документа составляется список следующим образом:

"Джон" , "любит" , "смотреть" , "фильмы" , "Мэри" , "любит" , "фильмы" , "тоже"

«Мэри» , «также» , «любит» , «на» , «смотреть» , «футбол» , матчи»

Представление каждого пакета слов как объект JSON и присвоение соответствующей переменной JavaScript :

BoW1  =  { "Джон" : 1 , "нравится" : 2 , " кому " : 1 , "смотреть" : 1 , "фильмы" : 2 , "Мэри" : 1 , "тоже" : 1 }; 
BoW2  =  { "Мэри" : 1 , "также" : 1 , "нравится" : 1 , " кому " : 1 , "смотреть" :: 1 , «игры» : 1 };

Каждый ключ - это слово, а каждое значение - это количество вхождений этого слова в данный текстовый документ.

Порядок элементов свободный, поэтому, например {"too":1,"Mary":1,"movies":2,"John":1,"watch":1,"likes":2,"to":1}, также эквивалентен BoW1 . Это то, чего мы ожидаем от строгого представления объекта JSON .

Примечание: если другой документ подобен объединению этих двух,

(3) Джон любит смотреть фильмы. Мэри тоже любит фильмы. Еще Мэри любит смотреть футбольные матчи.

его представление в JavaScript будет:

BoW3  =  { "Джон" : 1 , "нравится" : 3 , " кому " : 2 , "смотреть" : 2 , "фильмы" : 2 , "Мэри" : 2 , "тоже" : 1 , "также" : 1 , "футбол" : 1 , "игры" : 1 };

Итак, как мы видим в алгебре мешков , «объединение» двух документов в представлении мешков слов формально является несвязным объединением , суммирующим кратности каждого элемента.


Модель мешка слов.

Управляющий словарь

По мере увеличения словарного запаса увеличивается и векторное представление документов.

В предыдущем примере длина вектора документа равна количеству известных слов.

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

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

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

Таким образом, существует необходимость уменьшить размер словарного запаса при использовании модели с набором слов.

В качестве первого шага можно использовать простые методы очистки текста, такие как:

  • Игнорирование дела
  • Игнорирование знаков препинания
  • Игнорирование частых слов, которые не содержат много информации, называемых стоп-словами, такими как «а», «из» и т. Д.
  • Исправление слов с ошибками.
  • Сокращение слов до их основы (например, «игра» от «игра») с использованием алгоритмов

Более сложный подход заключается в создании словаря сгруппированных слов. Это одновременно изменяет объем словарного запаса и позволяет сумме слов захватить немного больше смысла из документа.

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

N-грамм - это последовательность из N-токенов слов: 2-грамм (чаще называемый биграммой) - это последовательность из двух слов, таких как «пожалуйста, включите», «переверните» или «домашнее задание» и 3 грамма (чаще называемый триграммой) - это последовательность из трех слов, например «пожалуйста, включите свою работу» или «включите свою домашнюю работу».

- страница 85,Обработка речи и языка, 2009.

Например, биграммы в первой строке текста предыдущего раздела: «Это были лучшие времена»:

  • "это было"
  • "был"
  • "лучшее"
  • "лучшее из"
  • «Времен»

Затем словарь отслеживает триплеты слов, называется моделью триграмм, а общий подход называется моделью n-граммы, где n относится к числу сгруппированных слов.

Часто простой биграмный подход лучше, чем 1-граммовая модель мешка слов для таких задач, как классификация документации.

представление о мешке с биграммами намного мощнее, чем орудие слова, и во многих случаях оказывается очень трудно победить.

- страница 75,Методы нейронной сети в обработке естественного языка, 2017

Подсчет слов

После того, как словарь был выбран, необходимо оценивать вхождение слов в пример документов.

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

Некоторые дополнительные простые методы оценки включают в себя:

  • Графы, Подсчитайте, сколько раз каждое слово появляется в документе.
  • частоты, Вычислите частоту появления каждого слова в документе среди всех слов в документе.

Хеширование слов

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

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

Мы можем использовать хэш-представление известных слов в нашем словаре. Это решает проблему наличия очень большого словарного запаса для большого текстового корпуса, потому что мы можем выбрать размер хеш-пространства, который, в свою очередь, равен размеру векторного представления документа.

Слова хешируются детерминистически в один и тот же целочисленный индекс в целевом хэш-пространстве Затем для оценки слова можно использовать двоичную оценку или счет.

Это называется «хэш трюк" или же "функция хеширования«.

Задача состоит в том, чтобы выбрать хеш-пространство для размещения выбранного размера словаря, чтобы минимизировать вероятность коллизий и компромисса.

TF-IDF

Проблема с оценкой частоты слов заключается в том, что в документе начинают доминировать очень часто встречающиеся слова (например, большее количество баллов), но они могут содержать не столько «информационное содержание» модели, сколько более редкие, но, возможно, специфичные для предметной области слова.

Один из подходов заключается в том, чтобы изменить частоту слов по частоте их появления во всех документах, чтобы штрафы за такие частые слова, как «the», которые также встречаются во всех документах.

Этот подход к скорингу называется Term Frequency - Inverse Document Frequency, или сокращенно TF-IDF, где:

  • Срок Частота: оценка частоты появления слова в текущем документе.
  • Частота обратных документов: оценка того, насколько редко это слово встречается в документах.

Баллы - это вес, в котором не все слова одинаково важны или интересны.

Баллы имеют эффект выделения слов, которые отличаются (содержат полезную информацию) в данном документе.

Таким образом, idf редкого термина является высоким, тогда как idf частого термина, вероятно, будет низким.

- страница 118,Введение в поиск информации, 2008.

Ограничения Мешка Слова

Модель пакета слов очень проста для понимания и реализации и предлагает большую гибкость для настройки ваших конкретных текстовых данных.

Он с большим успехом использовался для задач прогнозирования, таких как моделирование языка и классификация документации.

Тем не менее, он страдает некоторыми недостатками, такими как:

  • Запас слов: Словарь требует тщательного проектирования, особенно для того, чтобы управлять размером, что влияет на разреженность представлений документа.
  • разреженность: Разреженные представления сложнее моделировать как по вычислительным причинам (пространственная и временная сложность), так и по информационным причинам, где задача состоит в том, чтобы модели использовали так мало информации в таком большом репрезентативном пространстве.
  • Имея в виду: При отбрасывании порядка слов игнорируется контекст и, в свою очередь, значение слов в документе (семантика). Контекст и значение могут многое предложить модели: если смоделированный может сказать разницу между одними и теми же словами, расположенными по-разному («это интересно» против «это интересно»), синонимами («старый велосипед» против «подержанный велосипед») , и многое другое.

Приложение

На практике модель набора слов в основном используется как инструмент для создания признаков. После преобразования текста в «мешок слов» мы можем вычислить различные меры для характеристики текста. Наиболее распространенным типом характеристик или характеристик, рассчитываемых по модели «мешка слов», является частота термина, а именно, сколько раз термин встречается в тексте. В приведенном выше примере мы можем построить следующие два списка для записи частот терминов всех отдельных слов (BoW1 и BoW2, упорядоченные, как в BoW3):

( 1 )  [ 1 ,  2 ,  1 ,  1 ,  2 ,  1 ,  1 ,  0 ,  0 ,  0 ] 
( 2 )  [ 0 ,  1 ,  1 ,  1 ,  0 ,  1 ,  0 ,  1 ,  1 ,  1 ]

Каждая запись в списках относится к количеству соответствующей записи в списке (это также представление гистограммы). Например, в первом списке (который представляет документ 1) первые две записи - «1,2»:

  • Первая запись соответствует слову «Джон», которое является первым словом в списке, и его значение равно «1», поскольку «Джон» появляется в первом документе один раз.
  • Вторая запись соответствует слову «нравится», которое является вторым словом в списке, и его значение равно «2», потому что «нравится» встречается в первом документе дважды.

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

Однако частота терминов не обязательно является лучшим представлением текста. Общие слова, такие как «the», «a», «to», почти всегда являются терминами, наиболее часто встречающимися в тексте. Таким образом, наличие большого количества необработанных данных не обязательно означает, что соответствующее слово более важно. Чтобы решить эту проблему, один из самых популярных способов «нормализовать» частоту терминов - это взвесить член по величине, обратной частоте документа, или tf – idf . Кроме того, для конкретной цели классификации были разработаны контролируемые альтернативы для учета метки класса документа. Наконец, для некоторых задач вместо частот используется двоичное (присутствие / отсутствие или 1/0) взвешивание (например, программная система машинного обучения).

n -граммная модель

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

[ 
    «Джон любит» , 
    «любит» , 
    «смотреть» , 
    «смотреть фильмы» , 
    «Мэри любит» , 
    «любит фильмы» , 
    «фильмы тоже» , 
]

Концептуально мы можем рассматривать модель мешка слов как частный случай модели n-грамм с n = 1. Для n> 1 модель называется w-shingling (где w эквивалентно n, обозначающему количество сгруппированных слов). См. Языковую модель для более подробного обсуждения.

Реализация Python

  Модель мешка слов

Уловка хеширования

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

Пример использования: фильтрация спама

При байесовской фильтрации спама сообщение электронной почты моделируется как неупорядоченный набор слов, выбранных из одного из двух распределений вероятностей: одно представляет спам, а другое представляет законную электронную почту («ветчина»). Представьте, что есть два буквальных мешка, наполненных словами. Один пакет заполнен словами, найденными в спам-сообщениях, а другой - словами, найденными в законных сообщениях электронной почты. Хотя любое данное слово, вероятно, находится где-то в обоих пакетах, пакет «спам» будет содержать слова, связанные со спамом, такие как «акции», «Виагра» и «купить», значительно чаще, а пакет «ветчина» будет содержать больше слов, связанных с друзьями или работой пользователя.

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

См. Также

  • Аддитивное разглаживание
  • Модель мешка слов в компьютерном зрении
  • Классификация документов
  • Матрица документов-терминов
  • Извлечение признаков
  • Уловка хеширования
  • Машинное обучение
  • MinHash
  • н-грамм
  • Обработка естественного языка
  • Векторная модель пространства
  • шинглинг
  • tf-idf

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

создано: 2020-10-10
обновлено: 2021-01-11
132265



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей



Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Обработка естественного языка

Термины: Обработка естественного языка