Давайте возьмем пример Amazon. У него много обзоров каждый день, и если они хотят проверить, доволен ли их покупатель после покупки определенного продукта, им нужно увидеть рейтинг и отзыв, данные покупателем. Если они начинают это делать вручную, это требует много времени и рабочей силы, что будет очень дорого для них. Итак, есть ли способ, с помощью которого мы можем сделать это автоматически, поэтому ответ — машинное обучение.

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

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

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

  1. Мешок слов
  2. Tf-idf
  3. Ворд2век и др.

Мешок слов:

Возьмем игрушечный пример:

Предположим, у нас есть четыре обзора следующим образом

  1. Эта пицца очень вкусная и недорогая.
  2. Эта пицца не вкусная и доступная.
  3. эта пицца вкусная и дешевая.
  4. Пицца вкусная и пицца хорошая.

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

Шаги в BOW

  1. Создание словаря (D), содержащего набор всех уникальных слов в нашем корпусе (все обзоры).

D ={Это, пицца, ,очень ,вкусная ,и доступная,не,вкусная,дешевая,хорошая}

здесь длина D равна 11, потому что мы взяли только 4 отзыва, если бы мы взяли много отзывов, то это были бы тысячи или миллионы.

2. теперь у нас есть 11-мерный вектор, соответствующий всем уникальным словам. Теперь мы возьмем наш первый вектор обзора длиной 11 и поместим значение в каждую ячейку, соответствующее количеству раз, которое встречается соответствующее слово.

для обзора1 = [1,1,1,1,1,1,1,0,0,0,0]

обзор2 = [1,1,2,1,1,1,1,0,0,0,0]

обзор3 = [1,1,1,0,0,1,0,0,1,1,0]

обзор4 = [0,2,2,0,1,1,0,0,0,0,1]

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

Каждое уникальное слово действует как функция

Другой формой BOW является Binary Bag Of Words или Boolean BOW.

поместите значение 1 в d-мерный вектор, если соответствующее слово встречается хотя бы один раз. иначе 0

Недостаток BOW:

Он отбрасывает информацию о последовательности

В нем не учитывается семантическое значение слов.

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

Uni-Gram,Bi-Gram,..N-Gram

Uni-gram: каждое слово считается измерением.

Биграмма: пара слов считается размерностью.

Tri-Gram: 3 последовательных слова считаются измерением

n-Gram:n-последовательные слова считаются размерностью . n может быть 1,2,3….

Преимущество N-грамм:

Он сохраняет некоторую информацию о последовательности.

недостаток:

Размерность увеличивается по мере увеличения n в n-грамме.

Код

https://scikit-learn.org/stable/modules/generated/sklearn.feature_extraction.text.CountVectorizer.html#sklearn.feature_extraction.text.CountVectorizer

from sklearn.feature_extraction.text import CountVectorizer
X = vectorizer.fit_transform(corpus)

Tf-Idf: частота термина, обратная частоте документа