Введение

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

Метод/методы

  1. Метод классификации. Существуют три категории существующих методов классификации SMS: методы машинного обучения (ML), статистические методы и эволюционные методы.
  2. Методы выбора или извлечения признаков. Важно сосредоточиться на сокращении избыточных признаков путем выбора наиболее релевантных признаков. Этот процесс является важным шагом в категоризации текстовых документов, поэтому выбор наиболее подходящей функции (функций) значительно минимизирует размерность пространства функций, тем самым повышая производительность.

Эта статья посвящена методам машинного обучения (ML) и методам выбора и извлечения функций.

Подход

  1. На основе содержания: частота символов, в основном называемая набором слов.
  2. Не на основе содержания: обнаружение аномалий, статическая мера, которая представляет собой размер сообщения и отметку времени.
  3. Гибрид: сочетайте функции контентного и неконтентного подходов для целей классификации.

Реализация

Теперь давайте реализуем классификацию 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

Шаги для реализации:

  1. Импортируйте необходимые библиотеки.
  2. Предварительная обработка данных.
  3. Мешок слов.
  4. Добавление новой функции. Нравится- Длина текста, Ненормативная лексика текста, Части речи(POS).
  5. EDA набора данных.
  6. Токенизация слова.
  7. Реализация различных моделей классификации ML. Например, LogisticRegression, MultinomialNB, RandomForestClassifier, LinearSVC, SGDClassifier, GradientBoostingClassifier. И сравните их, чтобы найти, какая Модель лучше всего подходит для этой классификации.

Библиотеки:

Предварительная обработка данных:

  1. Удаление ненужных столбцов и переименование функций.

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:

Классификатор повышения градиента:

Сравнить Модели:

Вывод:

  1. Мы предоставили текст и доработали текст (убрали стоп-слова, знаки препинания, провели лемматизацию). Это помогло повысить точность.
  2. Мы использовали другой модельный конвейер, содержащий TfidfVectorizer, где модель SVM дает наилучший показатель точности 98%.
  3. Самые популярные спам-токенизированные слова: Call, Txt, Claim, Prize, Stop и т. д. Эти слова указывают на то, что это либо коммерческое SMS-сообщение, либо спам-SMS, которое не используется в обычной жизни.
  4. Скорее всего, спамовые SMS-сообщения имеют большую длину текста по сравнению с неспамовыми SMS-сообщениями.
  5. Оценка удобочитаемости меньше или отрицательна в SMS-спаме по сравнению с SMS-сообщениями, не являющимися спамом.
  6. Части речи, которые являются прилагательными и наречиями, мы можем видеть, что прилагательные используются чаще всего в спамовых SMS по сравнению с неспамовыми SMS.

Заключение

Я подхожу к концу поста. Надеюсь, вы поняли, как работать с обработкой естественного языка (текстовые данные) и как использовать технику машинного обучения для решения реальной проблемы SMS-спама (Gmail использует ML для классификации писем как спама или спама). Ветчина)

Приятного чтения!

Ссылка на Colab

Ссылка на Github

Ссылки:

  1. https://www.sciencedirect.com/science/article/pii/S0952197619302155
  2. https://medium.com/tech-career-nuggets/sms-text-classification-a51defc2361c
  3. https://consumerinfo.my/ways-stop-sms-spam/