Сегодня я собираюсь объяснить вам технику «Мешок слов».

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

Объясните «Мешок слов» на примере?

Зайдите в свою почту Gmail, откройте приоритетный почтовый ящик и посмотрите, как Google магия вашего почтового ящика, классифицируя важные, социальные, спам и т. Д. Для всех ваших писем.

Помнишь сейчас?

Как Google узнает, что одни письма важны для вас, а другие - нет?

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

Загвоздка в том, что машина не знает английского языка, она понимает только числа, поэтому она разбивает все ваши документы на слова, например:

Электронная почта

Привет, мистер Мадан,

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

Как его ломает машина

Привет, мистер Мадан, Поздравляю, я, любимая, ваша, статья ………… в простой форме.

Тогда это разделение слов -

  1. Очищенные или предварительно обработанные. Удалите все ненужные специальные символы, если есть слова с другим акцентом, например, польский, немецкий, испанский и т. д., удалите или замените их или добавьте правильный Unicode, чтобы они были удобочитаемыми для машины.
  2. Нормализовать все данные - с помощью функции .lower () удалите из данных все заглавные буквы.
  3. Ламенцирование и определение корней. Удалите из данных все прилагательные / слова, основанные на словах, например, Baked, baking, baker - все они построены на словах, а не на bake. Классификация всех таких слов от данных до корневого слова. Кроме того, удаление всех стоп-слов, то есть всех слов, не добавляющих значения или измерения функции, таких как a, the и т. Д.

Затем, когда у нас есть все слова, мы токенизируем их, то есть записываем количество повторений всех слов в нашем документе. Ex - Этот кот толстый и симпатичный ›› Этот кот, это, a, толстый, кот, то есть, милый ››› This - 1, cat - 2, is -2, a -1, fat - 1, это -1, милый - 1

or

Это - 1

кот - 2

is -2

a — 1

жир - 1

что -1

милый - 1

Этот процесс называется токенизацией.

Прежде чем мы поймем, что делать дальше, я расскажу, зачем мы все это делаем.

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

Разбивка токенизированных слов Документа 1 помогает нам сравнить их с другими токенизированными словами Документа 2, следовательно, помогает найти похожие документы.

А теперь вернемся к пакету слов.

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

voiceab = Все окончательные функции после очистки, удаления стоп-слов и т. д.

Итак, если в документе 3 документа и в каждом документе 7 слов, словарь - лучший выбор слов из документа, который в нашем случае составляет 10 слов из 21.

Количество словаря = количество всех уникальных функций или слов, которое для нас равно 10 (скажем).

После того, как мы находим словарь, мы конвертируем слова, которые мы закончили, в векторы, как вы спросите?

Скажите, что наш словарный запас для «Этот кот - милый толстый кот»:

Кошка - 2

is — 2

Жиры - 1

Симпатичные - 1

количество слов = 4

Итак, вектор документа «Этот кот - симпатичный толстый кот» -

[022010001]

Это число является не чем иным, как представлением, когда вы сравниваете окончательный словарь со словами в документе, то есть при сравнении

Это - 1, кот - 2, это -2, a -1, толстый - 1, тот -1, милый - 1

и Кот - 2, это - 2, Толстый - 1, Милый - 1

Получаем [022010001]

Этот процесс называется векторизацией.

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

#Part 1 Declaring all documents and assigning to a document
document1=”This is my code on bag of words.”
document2=”Bag of words is a NLP technique.”
document3=”I will explain it to you in a simple way”

# Часть 2 - Импорт библиотек и инициализация CountVectorizer

from sklearn.feature_extraction.text import CountVectorizer
#Making a list or Document from all documents
Doc=[document1,document2,document3]
#Initializing CountVectorizer from sklearn
vectorizer = CountVectorizer(stop_words=’english’)

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

X = vectorizer.fit_transform(Doc)
analyze = vectorizer.build_analyzer()
analyze(document1)
analyze(document2)
analyze(document3)
vectorizer.transform(document1).toarray()
vectorizer.transform(document2).toarray()
vectorizer.transform(document3).toarray()
print(vectorizer.get_feature_names())
Output>>>[‘bag’, ‘code’, ‘explain’, ‘nlp’, ‘simple’, ‘technique’, ‘way’, ‘words’]

# Часть 4 - Векторизация или создание матрицы всех трех документов s

print(X.toarray())

Вывод ››› [[1 1 0 0 0 0 0 1] [1 0 0 1 0 1 0 1] [0 0 1 0 1 0 1 0]]

Or

Проверьте мой Github здесь › Проверить код слов .

Я надеюсь, что это было просто и помогло вам понять концепцию. Если у вас есть отзывы, которые могут помочь мне улучшить контент или код, напишите мне - [email protected]

Мир.