Jump to content

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

(Перенаправлено с «Мешок слов» )

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

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

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

Определение

[ редактировать ]

Следующее моделирует текстовый документ с использованием набора слов. Вот два простых текстовых документа:

(1) John likes to watch movies. Mary likes movies too.
(2) Mary also likes to watch football games.

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

"John","likes","to","watch","movies","Mary","likes","movies","too"

"Mary","also","likes","to","watch","football","games"

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

BoW1 = {"John":1,"likes":2,"to":1,"watch":1,"movies":2,"Mary":1,"too":1};
BoW2 = {"Mary":1,"also":1,"likes":1,"to":1,"watch":1,"football":1,"games":1};

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

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

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

(3) John likes to watch movies. Mary likes movies too. Mary also likes to watch football games.

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

BoW3 = {"John":1,"likes":3,"to":2,"watch":2,"movies":2,"Mary":2,"too":1,"also":1,"football":1,"games":1};

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

Порядок слов

[ редактировать ]

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

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

и

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

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

Реализации

[ редактировать ]

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

Реализация Python

[ редактировать ]
# Make sure to install the necessary packages first
# pip install --upgrade pip
# pip install tensorflow
from tensorflow import keras
from typing import List
from keras.preprocessing.text import Tokenizer

sentence = ["John likes to watch movies. Mary likes movies too."]

def print_bow(sentence: List[str]) -> None:
    tokenizer = Tokenizer()
    tokenizer.fit_on_texts(sentence)
    sequences = tokenizer.texts_to_sequences(sentence)
    word_index = tokenizer.word_index 
    bow = {}
    for key in word_index:
        bow[key] = sequences[0].count(word_index[key])

    print(f"Bag of word sentence 1:\n{bow}")
    print(f"We found {len(word_index)} unique tokens.")

print_bow(sentence)

Хеш-трюк

[ редактировать ]

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

См. также

[ редактировать ]

Примечания

[ редактировать ]
  1. ^ МакТир и др. 2016, стр. 167
  2. ^ Сивич, Йозеф (апрель 2009 г.). «Эффективный визуальный поиск видео в виде текстового поиска» (PDF) . ТРАНЗАКЦИИ IEEE ПО АНАЛИЗУ ШАБЛЕН И МАШИННОМУ ИНТЕЛЛЕКТУ, VOL. 31, НЕТ. 4 . оппозиция. стр. 591–605.
  3. ^ Харрис, Зеллиг (1954). «Структура распределения». Слово . 10 (2/3): 146–62. дои : 10.1080/00437956.1954.11659520 . И этот запас комбинаций элементов становится фактором, повлиявшим на последующий выбор... ибо язык — это не просто мешок слов, а инструмент с особыми свойствами, которые сформировались в ходе его использования.
  4. ^ Ёнджун Ко (2012). «Исследование схем взвешивания терминов с использованием информации о классах для классификации текста». СИГИР'12 . АКМ .
  5. ^ Вайнбергер, КК; Дасгупта А.; Лэнгфорд Дж.; Смола А.; Аттенберг, Дж. (2009). «Хеширование функций для крупномасштабного многозадачного обучения». Материалы 26-й ежегодной международной конференции по машинному обучению . стр. 1113–1120. arXiv : 0902.2206 . Бибкод : 2009arXiv0902.2206W . дои : 10.1145/1553374.1553516 . ISBN  9781605585161 . S2CID   291713 .
  • Мактир, Майкл (и др.) (2016). Разговорный интерфейс . Международное издательство Спрингер.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 1621ea6fc27efbee59c66dfb41cfdf3c__1722019200
URL1:https://arc.ask3.ru/arc/aa/16/3c/1621ea6fc27efbee59c66dfb41cfdf3c.html
Заголовок, (Title) документа по адресу, URL1:
Bag-of-words model - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)