Введение
Легкая доступность и простота SMS сделали его привлекательным для злоумышленников, тем самым влекя за собой ненужные затраты для мобильных пользователей, а также подвергают опасности безопасную передачу мобильных сообщений. Таким образом, эта статья предназначена для выявления и обзора существующей современной методологии классификации SMS-спама на основе определенных показателей: методов и методов машинного обучения и искусственного интеллекта, подходов и развернутой среды.
Метод/методы
- Метод классификации. Существуют три категории существующих методов классификации SMS: методы машинного обучения (ML), статистические методы и эволюционные методы.
- Методы выбора или извлечения признаков. Важно сосредоточиться на сокращении избыточных признаков путем выбора наиболее релевантных признаков. Этот процесс является важным шагом в категоризации текстовых документов, поэтому выбор наиболее подходящей функции (функций) значительно минимизирует размерность пространства функций, тем самым повышая производительность.
Эта статья посвящена методам машинного обучения (ML) и методам выбора и извлечения функций.
Подход
- На основе содержания: частота символов, в основном называемая набором слов.
- Не на основе содержания: обнаружение аномалий, статическая мера, которая представляет собой размер сообщения и отметку времени.
- Гибрид: сочетайте функции контентного и неконтентного подходов для целей классификации.
Реализация
Теперь давайте реализуем классификацию SMS-спама, используя набор данных, предоставленный сообществом машинного обучения UCI. Коллекция SMS-спама — это набор SMS-сообщений с тегами, которые были собраны для исследования SMS-спама. Он содержит один набор SMS-сообщений на английском языке из 5 574 сообщений, помеченных как ветчина (законные) или спам. Подробнее о наборе данных можно прочитать здесь: https://www.kaggle.com/uciml/sms-spam-collection-dataset.
Вот ссылка на набор данных: https://www.kaggle.com/uciml/sms-spam-collection-dataset
Шаги для реализации:
- Импортируйте необходимые библиотеки.
- Предварительная обработка данных.
- Мешок слов.
- Добавление новой функции. Нравится- Длина текста, Ненормативная лексика текста, Части речи(POS).
- EDA набора данных.
- Токенизация слова.
- Реализация различных моделей классификации ML. Например, LogisticRegression, MultinomialNB, RandomForestClassifier, LinearSVC, SGDClassifier, GradientBoostingClassifier. И сравните их, чтобы найти, какая Модель лучше всего подходит для этой классификации.
Библиотеки:
Предварительная обработка данных:
- Удаление ненужных столбцов и переименование функций.
2. Нумерация категориального признака, который является нашим ярлыком (хам или сэм).
3. Генерация корпуса из необработанных смс-сообщений (стоп-слова, понижение, формирование).
4. Создание модели мешка слов с помощью CountVectorizer.
Мешок слов:
Код для создания набора слов
Код для построения Word of Cloud Spam Words
Код для построения Word of Cloud Ham Words
5. Добавлены новые функции:
Длина текста:
Проверка на ненормативную лексику
Оценка удобочитаемости
Части речи (POS)
6. Исследовательский анализ данных:
Максимальная длина отображаемого текста
Спам и недопустимый текст против длины
Распределение длины текста
7. Токенизация:
Токенизация Ham для первых 50 слов:
Токенизация спама для первых 50 слов:
8. Подготовка данных модели классификации:
Логистическая регрессия:
МногочленNB:
Классификатор случайного леса:
Линейный SVC:
Классификатор SGD:
Классификатор повышения градиента:
Сравнить Модели:
Вывод:
- Мы предоставили текст и доработали текст (убрали стоп-слова, знаки препинания, провели лемматизацию). Это помогло повысить точность.
- Мы использовали другой модельный конвейер, содержащий TfidfVectorizer, где модель SVM дает наилучший показатель точности 98%.
- Самые популярные спам-токенизированные слова: Call, Txt, Claim, Prize, Stop и т. д. Эти слова указывают на то, что это либо коммерческое SMS-сообщение, либо спам-SMS, которое не используется в обычной жизни.
- Скорее всего, спамовые SMS-сообщения имеют большую длину текста по сравнению с неспамовыми SMS-сообщениями.
- Оценка удобочитаемости меньше или отрицательна в SMS-спаме по сравнению с SMS-сообщениями, не являющимися спамом.
- Части речи, которые являются прилагательными и наречиями, мы можем видеть, что прилагательные используются чаще всего в спамовых SMS по сравнению с неспамовыми SMS.
Заключение
Я подхожу к концу поста. Надеюсь, вы поняли, как работать с обработкой естественного языка (текстовые данные) и как использовать технику машинного обучения для решения реальной проблемы SMS-спама (Gmail использует ML для классификации писем как спама или спама). Ветчина)
Приятного чтения!
Ссылки: