Сегодня я собираюсь объяснить вам технику «Мешок слов».
Если вы здесь, вы, вероятно, знаете, почему мы его используем, но если вы не знаете, я расскажу вам на примере.
Объясните «Мешок слов» на примере?
Зайдите в свою почту Gmail, откройте приоритетный почтовый ящик и посмотрите, как Google магия вашего почтового ящика, классифицируя важные, социальные, спам и т. Д. Для всех ваших писем.
Помнишь сейчас?
Как Google узнает, что одни письма важны для вас, а другие - нет?
Несмотря на то, что здесь играют роль многие факторы, одним из основных факторов является то, что машина читает ваши письма, а затем понимает, что для вас важно, а затем показывает это вам, вуаля.
Загвоздка в том, что машина не знает английского языка, она понимает только числа, поэтому она разбивает все ваши документы на слова, например:
Электронная почта
Привет, мистер Мадан,
Поздравляю, мне понравилась ваша статья, так как в ней я могу просто объяснить, что делает набор слов.
Как его ломает машина
Привет, мистер Мадан, Поздравляю, я, любимая, ваша, статья ………… в простой форме.
Тогда это разделение слов -
- Очищенные или предварительно обработанные. Удалите все ненужные специальные символы, если есть слова с другим акцентом, например, польский, немецкий, испанский и т. д., удалите или замените их или добавьте правильный Unicode, чтобы они были удобочитаемыми для машины.
- Нормализовать все данные - с помощью функции .lower () удалите из данных все заглавные буквы.
- Ламенцирование и определение корней. Удалите из данных все прилагательные / слова, основанные на словах, например, 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]
Мир.