stringtranslate.com

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

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

Модель «мешка слов» обычно используется в методах классификации документов , где, например, частота (употребления) каждого слова используется в качестве признака для обучения классификатора . [1] Она также использовалась для компьютерного зрения . [2]

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

Определение

Ниже приведены модели текстового документа с использованием мешка слов. Вот два простых текстовых документа:

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

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

«Джон» , «нравится» , « смотреть» , « фильмы» , «Мэри» , «нравится» , «фильмы» , «тоже»«Мэри» , «также» , «нравится» , « смотреть» , «футбол» , « игры»

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

BoW1 = { "Джон" : 1 , "нравится" : 2 , "на" : 1 , "смотреть" : 1 , "фильмы" : 2 , "Мэри" : 1 , "тоже" : 1 }; BoW2 = { "Мэри" : 1 , "также" : 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 };  

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

порядок слов

Представление BoW текста удаляет весь порядок слов. Например, представление BoW для " man bites dog " и "dog bites man" одинаково, поэтому любой алгоритм, работающий с представлением BoW текста, должен обрабатывать их одинаково. Несмотря на отсутствие синтаксиса или грамматики, представление BoW является быстрым и может быть достаточным для простых задач, не требующих порядка слов. Например, для классификации документов , если слова "stocks", "trade", "investors" встречаются несколько раз, то текст, скорее всего, является финансовым отчетом, даже если этого будет недостаточно, чтобы различить

Вчера инвесторы росли, но сегодня они отступают.

и

Вчера инвесторы отступали, но сегодня они растут.

и поэтому представление BoW будет недостаточным для определения подробного смысла документа.

Реализации

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

Реализация Python

# Сначала убедитесь, что установлены необходимые пакеты # pip install --upgrade pip # pip install tensorflow from  tensorflow  import  keras from  typing  import  List from  keras.preprocessing.text  import  Tokenizerпредложение  =  [ "Джон любит смотреть фильмы. Мэри тоже любит фильмы." ]def  print_bow ( предложение :  Список [ строка ])  ->  Нет :  токенизатор  =  Токенизатор ()  токенизатор . fit_on_texts ( предложение )  последовательности  =  токенизатор . texts_to_sequences ( предложение )  word_index  =  токенизатор . word_index  лук  =  {}  для  ключа  в  word_index :  лук [ ключ ]  =  последовательности [ 0 ] . count ( word_index [ ключ ]) print ( f "Предложение с набором слов 1: \n { bow } " )  print ( f "Мы нашли { len ( word_index ) } уникальных токенов." )print_bow ( предложение )

Трюк с хешированием

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

Смотрите также

Примечания

  1. ^ МакТир и др. 2016, стр. 167.
  2. ^ Сивич, Йозеф (апрель 2009 г.). «Эффективный визуальный поиск видео, представленный как поиск текста» (PDF) . IEEE TRANSACTIONS ON PATTERN ANALYSIS AND MACHINE INTELLIGENCE, VOL. 31, NO. 4. оппозиция. стр. 591–605.
  3. ^ Харрис, Зеллиг (1954). «Распределительная структура». Word . 10 (2/3): 146–62. doi :10.1080/00437956.1954.11659520. И этот запас комбинаций элементов становится фактором, определяющим способ, которым делается последующий выбор... поскольку язык — это не просто набор слов, а инструмент с определенными свойствами, которые были сформированы в ходе его использования.
  4. ^ Youngjoong Ko (2012). «Исследование схем взвешивания терминов с использованием информации о классах для классификации текстов». SIGIR'12 . ACM .
  5. ^ Weinberger, KQ; Dasgupta A.; Langford J.; Smola A.; Attenberg, J. (2009). "Хеширование признаков для крупномасштабного многозадачного обучения". Труды 26-й ежегодной международной конференции по машинному обучению . стр. 1113–1120. arXiv : 0902.2206 . Bibcode :2009arXiv0902.2206W. doi :10.1145/1553374.1553516. ISBN 9781605585161. S2CID  291713.

Ссылки