You need to agree to share your contact information to access this model

This repository is publicly accessible, but you have to accept the conditions to access its files and content.

Для получения доступа к модели, пожалуйста, заполните форму ниже.

Log in or Sign Up to review the conditions and access this model content.

NeuroSpaceX/ruSpamNS_v9

🚨 Для всех, кто запрашивал доступ, но он был закрыт или не выдан: ❗ Пожалуйста, отмените запрос и отправьте его заново, иначе доступ не будет предоставлен!

Описание

Это модель определения спама, основанная на архитектуре руберта, дообученная на русскоязычных данных о спаме. Она классифицирует текст как спам или не спам. Модель была обучена на 2,5 млн сообщений и содержит улучшения в обработке сложных случаев, таких как рекламные сообщения со схожей структурой с нормальным текстом.

Использование

import re
import torch
from transformers import AutoTokenizer, AutoModelForSequenceClassification

model_name = 'NeuroSpaceX/ruSpamNS_v9'
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')

model = AutoModelForSequenceClassification.from_pretrained(model_name, num_labels=1).to(device).eval()
tokenizer = AutoTokenizer.from_pretrained(model_name)


def clean_text(text):
    # Также очищайте текст от эмодзи!
    text = text.strip()
    text = text.replace('\n', ' ')
    text = re.sub(r'[^\w\s,.!?]', '', text, flags=re.UNICODE)
    text = re.sub(r'[!?]', '', text)
    return text.lower()
    

def classify_message(message):
    message = clean_text(message)
    encoding = tokenizer(message, padding='max_length', truncation=True, max_length=128, return_tensors='pt')
    input_ids = encoding['input_ids'].to(device)
    attention_mask = encoding['attention_mask'].to(device)
    with torch.no_grad():
        outputs = model(input_ids, attention_mask=attention_mask).logits
        pred = torch.sigmoid(outputs).cpu().numpy()[0][0]
    is_spam = int(pred >= 0.5)
    return is_spam

if __name__ == '__main__':
    while True:
        message = input("Введите сообщение для классификации (или 'exit' для выхода): ")
        if message.lower() == 'exit':
            break
        is_spam = classify_message(message)
        print(f"Сообщение {'является спамом' if is_spam else 'не является спамом'}")

Просьба при использовании данной модели указывать ссылку на данный репозиторий!

Цитирование

@MISC{NeuroSpaceX/ruSpamNS_v9,
    author  = {Kirill Fedko (NeuroSpaceX), Andrey Tolstóy},
    title   = {Russian Spam Classification Model},
    url     = {https://huggingface.co/NeuroSpaceX/ruSpamNS_v9},
    year    = 2024
}

Телеграм канал автора: https://t.me/spaceneuro

Бот, работающий на базе модели: https://t.me/ruSpamNS_bot

Downloads last month
247
Safetensors
Model size
107M params
Tensor type
F32
·
Inference Examples
Unable to determine this model's library. Check the docs .

Spaces using NeuroSpaceX/ruSpamNS_v9 2

Collection including NeuroSpaceX/ruSpamNS_v9