Views
No views yet
| Metric | Model V3 | Model V4 (this model) |
|---|---|---|
| Overall Accuracy | 0.9837 | 0.9922 |
| F1-score (Benign) | 0.9907 | 0.9955 |
| F1-score (Defacement) | 0.9937 | 0.9984 |
| F1-score (Malware) | 0.9741 | 0.9845 |
| F1-score (Phishing) | 0.9444 | 0.9734 |
| Weighted Average F1-score | 0.9836 | 0.9922 |
transformers library:1from transformers import BertTokenizerFast, BertForSequenceClassification, pipeline
2import torch
3
4# Определение устройства (GPU или CPU)
5device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
6print(f"Используемое устройство: {device}")
7
8# Загрузка модели и токенизатора
9model_name = "CrabInHoney/urlbert-tiny-v4-malicious-url-classifier"
10tokenizer = BertTokenizerFast.from_pretrained(model_name)
11model = BertForSequenceClassification.from_pretrained(model_name)
12model.to(device)
13
14# Создание pipeline для классификации
15classifier = pipeline(
16 "text-classification",
17 model=model,
18 tokenizer=tokenizer,
19 device=0 if torch.cuda.is_available() else -1,
20 return_all_scores=True
21)
22
23# Примеры URL для тестирования
24test_urls = [
25 "wikiobits.com/Obits/TonyProudfoot",
26 "http://www.824555.com/app/member/SportOption.php?uid=guest&langx=gb",
27]
28
29# Маппинг меток на понятные названия классов
30label_mapping = {
31 "LABEL_0": "benign",
32 "LABEL_1": "defacement",
33 "LABEL_2": "malware",
34 "LABEL_3": "phishing"
35}
36
37# Классификация URL
38for url in test_urls:
39 results = classifier(url)
40 print(f"\nURL: {url}")
41 for result in results[0]:
42 label = result['label']
43 score = result['score']
44 friendly_label = label_mapping.get(label, label)
45 print(f"{friendly_label}, %: {score:.4f}")URL: wikiobits.com/Obits/TonyProudfoot
benign, %: 0.9996
defacement, %: 0.0000
malware, %: 0.0000
phishing, %: 0.0003
URL: http://www.824555.com/app/member/SportOption.php?uid=guest&langx=gb
benign, %: 0.0000
defacement, %: 0.0001
malware, %: 0.9998
phishing, %: 0.0001