Spaces:
Sleeping
Sleeping
update
Browse files- Dockerfile +3 -2
- cold/__pycache__/classifier.cpython-310.pyc +0 -0
- cold/__pycache__/dynamic_conv.cpython-310.pyc +0 -0
- cold/__pycache__/text_cnn.cpython-310.pyc +0 -0
- cold/classifier.py +42 -44
- cold/dynamic_conv.py +11 -8
- cold/text_cnn.py +1 -1
- out/404.html +1 -0
- out/_next/static/chunks/4bd1b696-18452535c1c4862d.js +0 -0
- out/_next/static/chunks/684-8c7f7c22671a5a40.js +0 -0
- out/_next/static/chunks/app/_not-found/page-cd1726d1b4a7e279.js +1 -0
- out/_next/static/chunks/app/layout-505671f1f54219f5.js +1 -0
- out/_next/static/chunks/app/page-3637b2ffc72df25b.js +1 -0
- out/_next/static/chunks/framework-f593a28cde54158e.js +0 -0
- out/_next/static/chunks/main-app-2f5836e1a5bb3944.js +1 -0
- out/_next/static/chunks/main-fd4a0e16a8e249ef.js +0 -0
- out/_next/static/chunks/pages/_app-da15c11dea942c36.js +1 -0
- out/_next/static/chunks/pages/_error-cc3f077a18ea1793.js +1 -0
- out/_next/static/chunks/polyfills-42372ed130431b0a.js +0 -0
- out/_next/static/chunks/webpack-375a1df0977b566b.js +1 -0
- out/_next/static/css/0bc81a6c99df26fb.css +3 -0
- out/_next/static/media/0d580af215996300-s.woff2 +0 -0
- out/_next/static/media/14254a1c498c2b09-s.woff2 +0 -0
- out/_next/static/media/320d9f5d177d6ec2-s.woff2 +0 -0
- out/_next/static/media/3794f505ceb4aef5-s.woff2 +0 -0
- out/_next/static/media/4036a8cc6ad3520f-s.woff2 +0 -0
- out/_next/static/media/569ce4b8f30dc480-s.p.woff2 +0 -0
- out/_next/static/media/747892c23ea88013-s.woff2 +0 -0
- out/_next/static/media/78b756c5b9139e81-s.p.woff2 +0 -0
- out/_next/static/media/80512c49369d7ad3-s.woff2 +0 -0
- out/_next/static/media/8d697b304b401681-s.woff2 +0 -0
- out/_next/static/media/93f479601ee12b01-s.p.woff2 +0 -0
- out/_next/static/media/9610d9e46709d722-s.woff2 +0 -0
- out/_next/static/media/ba015fad6dcf6784-s.woff2 +0 -0
- out/_next/static/media/c4a2ca76cbcd952a-s.p.woff2 +0 -0
- out/_next/static/media/c7128a8004343716-s.woff2 +0 -0
- out/_next/static/media/ca9e8d8193aed290-s.woff2 +0 -0
- out/_next/static/rukeIud56M6IHc3dJMy4O/_buildManifest.js +1 -0
- out/_next/static/rukeIud56M6IHc3dJMy4O/_ssgManifest.js +1 -0
- out/favicon.ico +0 -0
- out/file.svg +1 -0
- out/globe.svg +1 -0
- out/index.html +30 -0
- out/index.txt +23 -0
- out/next.svg +1 -0
- out/vercel.svg +1 -0
- out/window.svg +1 -0
Dockerfile
CHANGED
|
@@ -12,7 +12,7 @@ RUN pip install --no-cache-dir huggingface_hub
|
|
| 12 |
|
| 13 |
RUN mkdir -p /app/output && \
|
| 14 |
python -c "from huggingface_hub import hf_hub_download; \
|
| 15 |
-
hf_hub_download(repo_id='Albert-CAC/
|
| 16 |
|
| 17 |
|
| 18 |
WORKDIR /app
|
|
@@ -21,4 +21,5 @@ COPY --chown=user ./requirements.txt requirements.txt
|
|
| 21 |
RUN pip install --no-cache-dir --upgrade -r requirements.txt
|
| 22 |
|
| 23 |
COPY --chown=user . /app
|
| 24 |
-
CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860"]
|
|
|
|
|
|
| 12 |
|
| 13 |
RUN mkdir -p /app/output && \
|
| 14 |
python -c "from huggingface_hub import hf_hub_download; \
|
| 15 |
+
hf_hub_download(repo_id='Albert-CAC/lite_DETECTIVE', filename='lite.pth', local_dir='/app/output', local_dir_use_symlinks=False)"
|
| 16 |
|
| 17 |
|
| 18 |
WORKDIR /app
|
|
|
|
| 21 |
RUN pip install --no-cache-dir --upgrade -r requirements.txt
|
| 22 |
|
| 23 |
COPY --chown=user . /app
|
| 24 |
+
CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860"]
|
| 25 |
+
|
cold/__pycache__/classifier.cpython-310.pyc
CHANGED
|
Binary files a/cold/__pycache__/classifier.cpython-310.pyc and b/cold/__pycache__/classifier.cpython-310.pyc differ
|
|
|
cold/__pycache__/dynamic_conv.cpython-310.pyc
CHANGED
|
Binary files a/cold/__pycache__/dynamic_conv.cpython-310.pyc and b/cold/__pycache__/dynamic_conv.cpython-310.pyc differ
|
|
|
cold/__pycache__/text_cnn.cpython-310.pyc
CHANGED
|
Binary files a/cold/__pycache__/text_cnn.cpython-310.pyc and b/cold/__pycache__/text_cnn.cpython-310.pyc differ
|
|
|
cold/classifier.py
CHANGED
|
@@ -1,30 +1,27 @@
|
|
|
|
|
| 1 |
import torch
|
| 2 |
import torch.nn as nn
|
| 3 |
from transformers import BertModel, BertTokenizer
|
| 4 |
from torch.optim import AdamW, lr_scheduler
|
| 5 |
from .text_cnn import DynamicTextCNN
|
| 6 |
-
from sklearn.metrics import classification_report, confusion_matrix
|
| 7 |
from tqdm import tqdm
|
| 8 |
import os
|
| 9 |
|
| 10 |
class ToxicTextClassifier(nn.Module):
|
| 11 |
def __init__(self,
|
| 12 |
bert_name='hfl/chinese-roberta-wwm-ext',
|
| 13 |
-
num_filters=
|
| 14 |
filter_sizes=(1,2,3,4),
|
| 15 |
K=4,
|
| 16 |
fc_dim=128,
|
| 17 |
num_classes=2,
|
| 18 |
dropout=0.1,
|
| 19 |
-
name='lite'
|
| 20 |
-
path=None,
|
| 21 |
-
):
|
| 22 |
super().__init__()
|
| 23 |
self.tokenizer = BertTokenizer.from_pretrained(bert_name,from_tf=True)
|
| 24 |
self.bert = BertModel.from_pretrained(bert_name)
|
| 25 |
self.name = name
|
| 26 |
self.unfrozen_layers = 0
|
| 27 |
-
|
| 28 |
|
| 29 |
hidden_size = self.bert.config.hidden_size * 2
|
| 30 |
os.makedirs(f'data/{name}', exist_ok=True)
|
|
@@ -45,22 +42,7 @@ class ToxicTextClassifier(nn.Module):
|
|
| 45 |
self.criterion = nn.CrossEntropyLoss()
|
| 46 |
self._rebuild_optimizer()
|
| 47 |
|
| 48 |
-
if path is None:
|
| 49 |
-
path = f'output/{name}.pth'
|
| 50 |
-
if os.path.exists(path):
|
| 51 |
-
self.load_state_dict(torch.load(path, map_location=torch.device('cpu')))
|
| 52 |
-
print(f"Model loaded from {path}")
|
| 53 |
-
else:
|
| 54 |
-
raise FileNotFoundError(f"You moved the default model path, we did not find it.")
|
| 55 |
-
if os.path.exists(path):
|
| 56 |
-
self.load_state_dict(torch.load(path, map_location=torch.device('cpu')))
|
| 57 |
-
print(f"Model loaded from {path}")
|
| 58 |
-
else:
|
| 59 |
-
raise FileNotFoundError(f"Model file {path} not found.")
|
| 60 |
-
|
| 61 |
def _rebuild_optimizer(self):
|
| 62 |
-
"""@deprecated
|
| 63 |
-
"""
|
| 64 |
param_groups = [
|
| 65 |
{'params': self.text_cnn.parameters(), 'lr': 1e-4},
|
| 66 |
{'params': self.classifier.parameters(), 'lr': 1e-4},
|
|
@@ -84,6 +66,15 @@ class ToxicTextClassifier(nn.Module):
|
|
| 84 |
patience=2,
|
| 85 |
)
|
| 86 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 87 |
def forward(self, input_ids, attention_mask, token_type_ids=None):
|
| 88 |
bert_out = self.bert(
|
| 89 |
input_ids=input_ids,
|
|
@@ -124,21 +115,14 @@ class ToxicTextClassifier(nn.Module):
|
|
| 124 |
|
| 125 |
pbar.set_postfix({'loss': f'{loss.item():.4f}'})
|
| 126 |
|
| 127 |
-
epoch_acc = correct / total if total > 0 else 0
|
| 128 |
-
metrics = {
|
| 129 |
-
'loss': val_loss / len(val_loader),
|
| 130 |
-
'acc': epoch_acc,
|
| 131 |
-
'report': classification_report(all_labels, all_preds, target_names=['non-toxic','toxic']),
|
| 132 |
-
'confusion_matrix': confusion_matrix(all_labels, all_preds)
|
| 133 |
-
}
|
| 134 |
torch.cuda.empty_cache()
|
| 135 |
-
return metrics
|
| 136 |
|
| 137 |
def train_model(self, train_loader, val_loader,
|
| 138 |
num_epochs=3, device='cpu',
|
| 139 |
save_path=None,
|
| 140 |
logdir=None,
|
| 141 |
validate_every=100,
|
|
|
|
| 142 |
early_stop_patience=3):
|
| 143 |
self.to(device)
|
| 144 |
|
|
@@ -162,8 +146,11 @@ class ToxicTextClassifier(nn.Module):
|
|
| 162 |
total_loss = 0
|
| 163 |
correct = 0
|
| 164 |
total = 0
|
|
|
|
|
|
|
| 165 |
|
| 166 |
if epoch == 2:
|
|
|
|
| 167 |
self.unfrozen_layers = 4
|
| 168 |
self._rebuild_optimizer()
|
| 169 |
|
|
@@ -179,8 +166,13 @@ class ToxicTextClassifier(nn.Module):
|
|
| 179 |
|
| 180 |
self.optimizer.zero_grad()
|
| 181 |
loss.backward()
|
|
|
|
| 182 |
self.optimizer.step()
|
| 183 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 184 |
total_loss += loss.item()
|
| 185 |
preds = torch.argmax(logits, dim=1)
|
| 186 |
correct += (preds == labels).sum().item()
|
|
@@ -199,7 +191,12 @@ class ToxicTextClassifier(nn.Module):
|
|
| 199 |
|
| 200 |
self.scheduler.step(val_loss)
|
| 201 |
|
| 202 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 203 |
if val_loss < best_val_loss:
|
| 204 |
best_val_loss = val_loss
|
| 205 |
best_model_state = self.state_dict()
|
|
@@ -215,10 +212,10 @@ class ToxicTextClassifier(nn.Module):
|
|
| 215 |
self.load_state_dict(best_model_state)
|
| 216 |
return
|
| 217 |
|
| 218 |
-
|
| 219 |
self.train()
|
| 220 |
|
| 221 |
-
|
| 222 |
def predict(self, texts, device='cpu'):
|
| 223 |
"""Used for inference. Predicts the class of the input text.
|
| 224 |
Args:
|
|
@@ -246,23 +243,22 @@ class ToxicTextClassifier(nn.Module):
|
|
| 246 |
self.eval()
|
| 247 |
self.to(device)
|
| 248 |
|
| 249 |
-
|
| 250 |
if isinstance(texts, str):
|
| 251 |
texts = [texts]
|
| 252 |
encoded_inputs = self.tokenizer(
|
| 253 |
-
|
| 254 |
-
|
| 255 |
-
|
| 256 |
-
|
| 257 |
-
|
| 258 |
elif isinstance(texts, list) and all(isinstance(item, list) for item in texts):
|
| 259 |
encoded_inputs = self.tokenizer(
|
| 260 |
-
|
| 261 |
-
|
| 262 |
-
|
| 263 |
-
|
| 264 |
-
|
| 265 |
-
|
| 266 |
elif isinstance(texts, list) and all(isinstance(item, str) for item in texts):
|
| 267 |
encoded_inputs = self.tokenizer(
|
| 268 |
texts,
|
|
@@ -290,3 +286,5 @@ class ToxicTextClassifier(nn.Module):
|
|
| 290 |
'probabilities': probs[i].cpu().tolist()
|
| 291 |
})
|
| 292 |
return results
|
|
|
|
|
|
|
|
|
| 1 |
+
|
| 2 |
import torch
|
| 3 |
import torch.nn as nn
|
| 4 |
from transformers import BertModel, BertTokenizer
|
| 5 |
from torch.optim import AdamW, lr_scheduler
|
| 6 |
from .text_cnn import DynamicTextCNN
|
|
|
|
| 7 |
from tqdm import tqdm
|
| 8 |
import os
|
| 9 |
|
| 10 |
class ToxicTextClassifier(nn.Module):
|
| 11 |
def __init__(self,
|
| 12 |
bert_name='hfl/chinese-roberta-wwm-ext',
|
| 13 |
+
num_filters=1536,
|
| 14 |
filter_sizes=(1,2,3,4),
|
| 15 |
K=4,
|
| 16 |
fc_dim=128,
|
| 17 |
num_classes=2,
|
| 18 |
dropout=0.1,
|
| 19 |
+
name='lite'):
|
|
|
|
|
|
|
| 20 |
super().__init__()
|
| 21 |
self.tokenizer = BertTokenizer.from_pretrained(bert_name,from_tf=True)
|
| 22 |
self.bert = BertModel.from_pretrained(bert_name)
|
| 23 |
self.name = name
|
| 24 |
self.unfrozen_layers = 0
|
|
|
|
| 25 |
|
| 26 |
hidden_size = self.bert.config.hidden_size * 2
|
| 27 |
os.makedirs(f'data/{name}', exist_ok=True)
|
|
|
|
| 42 |
self.criterion = nn.CrossEntropyLoss()
|
| 43 |
self._rebuild_optimizer()
|
| 44 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 45 |
def _rebuild_optimizer(self):
|
|
|
|
|
|
|
| 46 |
param_groups = [
|
| 47 |
{'params': self.text_cnn.parameters(), 'lr': 1e-4},
|
| 48 |
{'params': self.classifier.parameters(), 'lr': 1e-4},
|
|
|
|
| 66 |
patience=2,
|
| 67 |
)
|
| 68 |
|
| 69 |
+
self.warmup_scheduler = None
|
| 70 |
+
|
| 71 |
+
def _get_warmup_scheduler(self, warmup_steps=1000):
|
| 72 |
+
def lr_lambda(current_step):
|
| 73 |
+
if current_step < warmup_steps:
|
| 74 |
+
return float(current_step) / float(max(1, warmup_steps))
|
| 75 |
+
return 1.0
|
| 76 |
+
return lr_scheduler.LambdaLR(self.optimizer, lr_lambda)
|
| 77 |
+
|
| 78 |
def forward(self, input_ids, attention_mask, token_type_ids=None):
|
| 79 |
bert_out = self.bert(
|
| 80 |
input_ids=input_ids,
|
|
|
|
| 115 |
|
| 116 |
pbar.set_postfix({'loss': f'{loss.item():.4f}'})
|
| 117 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 118 |
torch.cuda.empty_cache()
|
|
|
|
| 119 |
|
| 120 |
def train_model(self, train_loader, val_loader,
|
| 121 |
num_epochs=3, device='cpu',
|
| 122 |
save_path=None,
|
| 123 |
logdir=None,
|
| 124 |
validate_every=100,
|
| 125 |
+
warmup_steps=1000,
|
| 126 |
early_stop_patience=3):
|
| 127 |
self.to(device)
|
| 128 |
|
|
|
|
| 146 |
total_loss = 0
|
| 147 |
correct = 0
|
| 148 |
total = 0
|
| 149 |
+
|
| 150 |
+
self.warmup_scheduler = self._get_warmup_scheduler(warmup_steps)
|
| 151 |
|
| 152 |
if epoch == 2:
|
| 153 |
+
print("Unfreezing 4 layers of BERT")
|
| 154 |
self.unfrozen_layers = 4
|
| 155 |
self._rebuild_optimizer()
|
| 156 |
|
|
|
|
| 166 |
|
| 167 |
self.optimizer.zero_grad()
|
| 168 |
loss.backward()
|
| 169 |
+
torch.nn.utils.clip_grad_norm_(self.parameters(), max_norm=1.0)
|
| 170 |
self.optimizer.step()
|
| 171 |
|
| 172 |
+
if global_step < warmup_steps:
|
| 173 |
+
self.warmup_scheduler.step()
|
| 174 |
+
|
| 175 |
+
|
| 176 |
total_loss += loss.item()
|
| 177 |
preds = torch.argmax(logits, dim=1)
|
| 178 |
correct += (preds == labels).sum().item()
|
|
|
|
| 191 |
|
| 192 |
self.scheduler.step(val_loss)
|
| 193 |
|
| 194 |
+
print(f"\n[Step {global_step}] Val Loss: {val_loss:.4f} | Val Acc: {val_acc:.4f}")
|
| 195 |
+
print(metrics['report'])
|
| 196 |
+
report_text = metrics['report']
|
| 197 |
+
conf_mat = metrics['confusion_matrix']
|
| 198 |
+
print(report_text)
|
| 199 |
+
|
| 200 |
if val_loss < best_val_loss:
|
| 201 |
best_val_loss = val_loss
|
| 202 |
best_model_state = self.state_dict()
|
|
|
|
| 212 |
self.load_state_dict(best_model_state)
|
| 213 |
return
|
| 214 |
|
| 215 |
+
|
| 216 |
self.train()
|
| 217 |
|
| 218 |
+
|
| 219 |
def predict(self, texts, device='cpu'):
|
| 220 |
"""Used for inference. Predicts the class of the input text.
|
| 221 |
Args:
|
|
|
|
| 243 |
self.eval()
|
| 244 |
self.to(device)
|
| 245 |
|
|
|
|
| 246 |
if isinstance(texts, str):
|
| 247 |
texts = [texts]
|
| 248 |
encoded_inputs = self.tokenizer(
|
| 249 |
+
texts,
|
| 250 |
+
padding=True,
|
| 251 |
+
truncation=True,
|
| 252 |
+
return_tensors="pt"
|
| 253 |
+
).to(device)
|
| 254 |
elif isinstance(texts, list) and all(isinstance(item, list) for item in texts):
|
| 255 |
encoded_inputs = self.tokenizer(
|
| 256 |
+
[item[0] for item in texts],
|
| 257 |
+
[item[1] for item in texts],
|
| 258 |
+
padding=True,
|
| 259 |
+
truncation=True,
|
| 260 |
+
return_tensors="pt"
|
| 261 |
+
).to(device)
|
| 262 |
elif isinstance(texts, list) and all(isinstance(item, str) for item in texts):
|
| 263 |
encoded_inputs = self.tokenizer(
|
| 264 |
texts,
|
|
|
|
| 286 |
'probabilities': probs[i].cpu().tolist()
|
| 287 |
})
|
| 288 |
return results
|
| 289 |
+
|
| 290 |
+
|
cold/dynamic_conv.py
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
|
|
| 1 |
import torch.nn as nn
|
| 2 |
import torch.nn.functional as F
|
| 3 |
|
|
@@ -7,30 +8,32 @@ class DynamicConv1d(nn.Module):
|
|
| 7 |
self.K = K
|
| 8 |
self.convs = nn.ModuleList([
|
| 9 |
nn.Conv1d(in_channels, out_channels, kernel_size,
|
| 10 |
-
padding=
|
| 11 |
for _ in range(K)
|
| 12 |
])
|
| 13 |
# self.attn = nn.Sequential(
|
| 14 |
# nn.AdaptiveAvgPool2d(1),
|
| 15 |
# nn.Conv2d(in_channels, max(in_channels // reduction, 1), 1),
|
| 16 |
# nn.ReLU(inplace=True),
|
| 17 |
-
# nn.Conv2d(max(in_channels // reduction, 1), max(in_channels // reduction, 1), 1),
|
| 18 |
# nn.ReLU(inplace=True),
|
| 19 |
# nn.Conv2d(max(in_channels // reduction, 1), max(K,1), 1)
|
| 20 |
# )
|
| 21 |
self.attn = nn.Sequential(
|
| 22 |
nn.AdaptiveAvgPool1d(1),
|
| 23 |
-
nn.Conv1d(in_channels,
|
| 24 |
nn.SiLU(),
|
| 25 |
-
nn.Conv1d(
|
|
|
|
|
|
|
| 26 |
)
|
| 27 |
-
nn.init.
|
| 28 |
|
| 29 |
def forward(self, x):
|
| 30 |
x = x.permute(0, 2, 1)
|
| 31 |
attn_logits = self.attn(x)
|
| 32 |
attn_weights = F.softmax(attn_logits, dim=1)
|
| 33 |
conv_outs = [conv(x) for conv in self.convs]
|
| 34 |
-
|
| 35 |
-
|
| 36 |
-
return out
|
|
|
|
| 1 |
+
import torch
|
| 2 |
import torch.nn as nn
|
| 3 |
import torch.nn.functional as F
|
| 4 |
|
|
|
|
| 8 |
self.K = K
|
| 9 |
self.convs = nn.ModuleList([
|
| 10 |
nn.Conv1d(in_channels, out_channels, kernel_size,
|
| 11 |
+
padding='same')
|
| 12 |
for _ in range(K)
|
| 13 |
])
|
| 14 |
# self.attn = nn.Sequential(
|
| 15 |
# nn.AdaptiveAvgPool2d(1),
|
| 16 |
# nn.Conv2d(in_channels, max(in_channels // reduction, 1), 1),
|
| 17 |
# nn.ReLU(inplace=True),
|
| 18 |
+
# nn.Conv2d(max(in_channels // reduction, 1), max(in_channels // reduction, 1), 1), # 添加额外的非线性层
|
| 19 |
# nn.ReLU(inplace=True),
|
| 20 |
# nn.Conv2d(max(in_channels // reduction, 1), max(K,1), 1)
|
| 21 |
# )
|
| 22 |
self.attn = nn.Sequential(
|
| 23 |
nn.AdaptiveAvgPool1d(1),
|
| 24 |
+
nn.Conv1d(in_channels, in_channels // reduction, 1),
|
| 25 |
nn.SiLU(),
|
| 26 |
+
nn.Conv1d(in_channels // reduction, in_channels // reduction, 1),
|
| 27 |
+
nn.SiLU(),
|
| 28 |
+
nn.Conv1d(in_channels // reduction, K, 1)
|
| 29 |
)
|
| 30 |
+
nn.init.normal_(self.attn[-1].weight, mean=0, std=0.1)
|
| 31 |
|
| 32 |
def forward(self, x):
|
| 33 |
x = x.permute(0, 2, 1)
|
| 34 |
attn_logits = self.attn(x)
|
| 35 |
attn_weights = F.softmax(attn_logits, dim=1)
|
| 36 |
conv_outs = [conv(x) for conv in self.convs]
|
| 37 |
+
out = sum(w * o for w, o in zip(attn_weights.split(1, dim=1), conv_outs))
|
| 38 |
+
|
| 39 |
+
return out + x
|
cold/text_cnn.py
CHANGED
|
@@ -18,7 +18,7 @@ class DynamicTextCNN(nn.Module):
|
|
| 18 |
convs = [F.relu(conv(x)) for conv in self.convs]
|
| 19 |
|
| 20 |
pools = [F.adaptive_max_pool1d(c, 1).squeeze(-1) for c in convs]
|
| 21 |
-
|
| 22 |
features = torch.cat(pools, dim=1)
|
| 23 |
features = self.layer_norm(features)
|
| 24 |
|
|
|
|
| 18 |
convs = [F.relu(conv(x)) for conv in self.convs]
|
| 19 |
|
| 20 |
pools = [F.adaptive_max_pool1d(c, 1).squeeze(-1) for c in convs]
|
| 21 |
+
|
| 22 |
features = torch.cat(pools, dim=1)
|
| 23 |
features = self.layer_norm(features)
|
| 24 |
|
out/404.html
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/569ce4b8f30dc480-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/78b756c5b9139e81-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/93f479601ee12b01-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/c4a2ca76cbcd952a-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/0bc81a6c99df26fb.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-375a1df0977b566b.js"/><script src="/_next/static/chunks/4bd1b696-18452535c1c4862d.js" async=""></script><script src="/_next/static/chunks/684-8c7f7c22671a5a40.js" async=""></script><script src="/_next/static/chunks/main-app-2f5836e1a5bb3944.js" async=""></script><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><title>404: This page could not be found.</title><title>Lite Detective</title><meta name="description" content="Efficient and Accurate Chinese Toxic Text Detection"/><script>document.querySelectorAll('body link[rel="icon"], body link[rel="apple-touch-icon"]').forEach(el => document.head.appendChild(el))</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="font-roboto __variable_5cfdac __variable_c5376c __variable_9a8899 __variable_10f679 antialiased"><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><!--$--><!--/$--><script src="/_next/static/chunks/webpack-375a1df0977b566b.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[7555,[],\"\"]\n3:I[1295,[],\"\"]\n4:I[9665,[],\"MetadataBoundary\"]\n6:I[9665,[],\"OutletBoundary\"]\n9:I[4911,[],\"AsyncMetadataOutlet\"]\nb:I[9665,[],\"ViewportBoundary\"]\nd:I[6614,[],\"\"]\n:HL[\"/_next/static/media/569ce4b8f30dc480-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/78b756c5b9139e81-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/93f479601ee12b01-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/c4a2ca76cbcd952a-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/0bc81a6c99df26fb.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"rukeIud56M6IHc3dJMy4O\",\"p\":\"\",\"c\":[\"\",\"_not-found\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/0bc81a6c99df26fb.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"className\":\"font-roboto __variable_5cfdac __variable_c5376c __variable_9a8899 __variable_10f679 antialiased\",\"children\":[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]]}],{\"children\":[\"/_not-found\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],[\"$\",\"$L4\",null,{\"children\":\"$L5\"}],null,[\"$\",\"$L6\",null,{\"children\":[\"$L7\",\"$L8\",[\"$\",\"$L9\",null,{\"promise\":\"$@a\"}]]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$1\",\"4aBqEik9VW36VioAcgp3s\",{\"children\":[[\"$\",\"$Lb\",null,{\"children\":\"$Lc\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$d\",\"$undefined\"],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"e:\"$Sreact.suspense\"\nf:I[4911,[],\"AsyncMetadata\"]\n5:[\"$\",\"$e\",null,{\"fallback\":null,\"children\":[\"$\",\"$Lf\",null,{\"promise\":\"$@10\"}]}]\n"])</script><script>self.__next_f.push([1,"8:null\n"])</script><script>self.__next_f.push([1,"c:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n7:null\n"])</script><script>self.__next_f.push([1,"10:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Lite Detective\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Efficient and Accurate Chinese Toxic Text Detection\"}]],\"error\":null,\"digest\":\"$undefined\"}\na:{\"metadata\":\"$10:metadata\",\"error\":null,\"digest\":\"$undefined\"}\n"])</script></body></html>
|
out/_next/static/chunks/4bd1b696-18452535c1c4862d.js
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
out/_next/static/chunks/684-8c7f7c22671a5a40.js
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
out/_next/static/chunks/app/_not-found/page-cd1726d1b4a7e279.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[492],{3632:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o}});let l=r(5155),n=r(6395);function o(){return(0,l.jsx)(n.HTTPAccessErrorFallback,{status:404,message:"This page could not be found."})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},3868:(e,t,r)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/_not-found/page",function(){return r(3632)}])},6395:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"HTTPAccessErrorFallback",{enumerable:!0,get:function(){return o}}),r(8229);let l=r(5155);r(2115);let n={error:{fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",textAlign:"center",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},desc:{display:"inline-block"},h1:{display:"inline-block",margin:"0 20px 0 0",padding:"0 23px 0 0",fontSize:24,fontWeight:500,verticalAlign:"top",lineHeight:"49px"},h2:{fontSize:14,fontWeight:400,lineHeight:"49px",margin:0}};function o(e){let{status:t,message:r}=e;return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("title",{children:t+": "+r}),(0,l.jsx)("div",{style:n.error,children:(0,l.jsxs)("div",{children:[(0,l.jsx)("style",{dangerouslySetInnerHTML:{__html:"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}),(0,l.jsx)("h1",{className:"next-error-h1",style:n.h1,children:t}),(0,l.jsx)("div",{style:n.desc,children:(0,l.jsx)("h2",{style:n.h2,children:r})})]})})]})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)}},e=>{var t=t=>e(e.s=t);e.O(0,[441,684,358],()=>t(3868)),_N_E=e.O()}]);
|
out/_next/static/chunks/app/layout-505671f1f54219f5.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[177],{101:e=>{e.exports={style:{fontFamily:"'Share Tech', 'Share Tech Fallback'",fontWeight:400,fontStyle:"normal"},className:"__className_c5376c",variable:"__variable_c5376c"}},347:()=>{},1255:e=>{e.exports={style:{fontFamily:"'Roboto', 'Roboto Fallback'",fontWeight:400,fontStyle:"normal"},className:"__className_10f679",variable:"__variable_10f679"}},1950:(e,a,l)=>{Promise.resolve().then(l.t.bind(l,4147,23)),Promise.resolve().then(l.t.bind(l,8489,23)),Promise.resolve().then(l.t.bind(l,101,23)),Promise.resolve().then(l.t.bind(l,1255,23)),Promise.resolve().then(l.t.bind(l,347,23))},4147:e=>{e.exports={style:{fontFamily:"'Geist', 'Geist Fallback'",fontStyle:"normal"},className:"__className_5cfdac",variable:"__variable_5cfdac"}},8489:e=>{e.exports={style:{fontFamily:"'Geist Mono', 'Geist Mono Fallback'",fontStyle:"normal"},className:"__className_9a8899",variable:"__variable_9a8899"}}},e=>{var a=a=>e(e.s=a);e.O(0,[160,441,684,358],()=>a(1950)),_N_E=e.O()}]);
|
out/_next/static/chunks/app/page-3637b2ffc72df25b.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[974],{3762:(e,t,s)=>{"use strict";s.d(t,{default:()=>l});var r=s(5155),a=s(2115);function l(e){let{context:t}=e,s=t.split("\n\n").map((e,t)=>({role:"system",text:e,id:"sys-".concat(t)})),[l,n]=(0,a.useState)(s),[o,i]=(0,a.useState)(""),[c,d]=(0,a.useState)(!1),u=async e=>{if(e.preventDefault(),!o.trim())return;let s={role:"user",text:o,id:"user-".concat(Date.now())};n(e=>[...e,s]),i(""),d(!0);try{var r,a;let e=await fetch("https://huggingface.co/spaces/Albert-CAC/lite_DETECTIVE/predict",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({text:o,context:t||void 0})}),s=await e.json();if(!e.ok)throw Error(s.detail||"Error occurred");let l="LABEL_1"===s.prediction,i=null!=(a=null==(r=s.probabilities)?void 0:r[s.prediction])?a:0;n(e=>[...e,{role:"bot",text:l?"\uD83D\uDD0D:\uD83D\uDD34 ".concat((100*i).toFixed(2),"%)"):"\uD83D\uDD0D:\uD83D\uDFE2 ".concat((100*i).toFixed(2),"%)"),id:"bot-".concat(Date.now())}])}catch(e){n(e=>[...e,{role:"bot",text:"Retring",id:"bot-".concat(Date.now())}])}finally{d(!1)}};return(0,r.jsxs)("div",{className:"w-full max-w-2xl mx-auto bg-gray-50 rounded-lg shadow p-4 flex flex-col",style:{minHeight:400},children:[(0,r.jsxs)("div",{className:"flex-1 overflow-y-auto mb-4 space-y-2",children:[l.map(e=>(0,r.jsx)("div",{className:"flex ".concat("user"===e.role?"justify-end":"justify-start"),children:(0,r.jsx)("div",{className:"\n px-4 py-2 rounded-2xl max-w-[80%] break-words\n ".concat("user"===e.role?"bg-blue-500 text-white self-end":"bot"===e.role?"bg-green-100 text-green-800 self-start":"bg-gray-200 text-gray-700 self-start text-xs","\n "),children:e.text})},e.id)),c&&(0,r.jsx)("div",{className:"flex justify-start",children:(0,r.jsx)("div",{className:"px-4 py-2 rounded-2xl bg-green-100 text-green-800 text-sm",children:"Detecting \uD83D\uDD0D..."})})]}),(0,r.jsxs)("form",{onSubmit:u,className:"flex gap-2",children:[(0,r.jsx)("input",{className:"flex-1 px-3 py-2 border border-gray-300 rounded-2xl focus:outline-none focus:ring-2 focus:ring-blue-400",placeholder:"Input your text here...",value:o,onChange:e=>i(e.target.value),disabled:c}),(0,r.jsx)("button",{type:"submit",className:"px-5 py-2 rounded-2xl bg-blue-500 text-white font-medium hover:bg-blue-600 disabled:opacity-50",disabled:c,children:"Send"})]})]})}},9052:(e,t,s)=>{Promise.resolve().then(s.bind(s,3762))}},e=>{var t=t=>e(e.s=t);e.O(0,[441,684,358],()=>t(9052)),_N_E=e.O()}]);
|
out/_next/static/chunks/framework-f593a28cde54158e.js
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
out/_next/static/chunks/main-app-2f5836e1a5bb3944.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[358],{7436:(e,s,n)=>{Promise.resolve().then(n.t.bind(n,894,23)),Promise.resolve().then(n.t.bind(n,4970,23)),Promise.resolve().then(n.t.bind(n,6614,23)),Promise.resolve().then(n.t.bind(n,6975,23)),Promise.resolve().then(n.t.bind(n,7555,23)),Promise.resolve().then(n.t.bind(n,4911,23)),Promise.resolve().then(n.t.bind(n,9665,23)),Promise.resolve().then(n.t.bind(n,1295,23))},9393:()=>{}},e=>{var s=s=>e(e.s=s);e.O(0,[441,684],()=>(s(5415),s(7436))),_N_E=e.O()}]);
|
out/_next/static/chunks/main-fd4a0e16a8e249ef.js
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
out/_next/static/chunks/pages/_app-da15c11dea942c36.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[636],{326:(_,n,p)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/_app",function(){return p(472)}])}},_=>{var n=n=>_(_.s=n);_.O(0,[593,792],()=>(n(326),n(4294))),_N_E=_.O()}]);
|
out/_next/static/chunks/pages/_error-cc3f077a18ea1793.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[731],{2164:(_,n,e)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/_error",function(){return e(9341)}])}},_=>{var n=n=>_(_.s=n);_.O(0,[636,593,792],()=>n(2164)),_N_E=_.O()}]);
|
out/_next/static/chunks/polyfills-42372ed130431b0a.js
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
out/_next/static/chunks/webpack-375a1df0977b566b.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
(()=>{"use strict";var e={},t={};function r(o){var n=t[o];if(void 0!==n)return n.exports;var i=t[o]={exports:{}},a=!0;try{e[o](i,i.exports,r),a=!1}finally{a&&delete t[o]}return i.exports}r.m=e,(()=>{var e=[];r.O=(t,o,n,i)=>{if(o){i=i||0;for(var a=e.length;a>0&&e[a-1][2]>i;a--)e[a]=e[a-1];e[a]=[o,n,i];return}for(var u=1/0,a=0;a<e.length;a++){for(var[o,n,i]=e[a],l=!0,c=0;c<o.length;c++)(!1&i||u>=i)&&Object.keys(r.O).every(e=>r.O[e](o[c]))?o.splice(c--,1):(l=!1,i<u&&(u=i));if(l){e.splice(a--,1);var f=n();void 0!==f&&(t=f)}}return t}})(),(()=>{var e,t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__;r.t=function(o,n){if(1&n&&(o=this(o)),8&n||"object"==typeof o&&o&&(4&n&&o.__esModule||16&n&&"function"==typeof o.then))return o;var i=Object.create(null);r.r(i);var a={};e=e||[null,t({}),t([]),t(t)];for(var u=2&n&&o;"object"==typeof u&&!~e.indexOf(u);u=t(u))Object.getOwnPropertyNames(u).forEach(e=>a[e]=()=>o[e]);return a.default=()=>o,r.d(i,a),i}})(),r.d=(e,t)=>{for(var o in t)r.o(t,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((t,o)=>(r.f[o](e,t),t),[])),r.u=e=>{},r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e={},t="_N_E:";r.l=(o,n,i,a)=>{if(e[o])return void e[o].push(n);if(void 0!==i)for(var u,l,c=document.getElementsByTagName("script"),f=0;f<c.length;f++){var s=c[f];if(s.getAttribute("src")==o||s.getAttribute("data-webpack")==t+i){u=s;break}}u||(l=!0,(u=document.createElement("script")).charset="utf-8",u.timeout=120,r.nc&&u.setAttribute("nonce",r.nc),u.setAttribute("data-webpack",t+i),u.src=r.tu(o)),e[o]=[n];var d=(t,r)=>{u.onerror=u.onload=null,clearTimeout(p);var n=e[o];if(delete e[o],u.parentNode&&u.parentNode.removeChild(u),n&&n.forEach(e=>e(r)),t)return t(r)},p=setTimeout(d.bind(null,void 0,{type:"timeout",target:u}),12e4);u.onerror=d.bind(null,u.onerror),u.onload=d.bind(null,u.onload),l&&document.head.appendChild(u)}})(),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;r.tt=()=>(void 0===e&&(e={createScriptURL:e=>e},"undefined"!=typeof trustedTypes&&trustedTypes.createPolicy&&(e=trustedTypes.createPolicy("nextjs#bundler",e))),e)})(),r.tu=e=>r.tt().createScriptURL(e),r.p="/_next/",(()=>{var e={68:0,160:0};r.f.j=(t,o)=>{var n=r.o(e,t)?e[t]:void 0;if(0!==n)if(n)o.push(n[2]);else if(/^(160|68)$/.test(t))e[t]=0;else{var i=new Promise((r,o)=>n=e[t]=[r,o]);o.push(n[2]=i);var a=r.p+r.u(t),u=Error();r.l(a,o=>{if(r.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var i=o&&("load"===o.type?"missing":o.type),a=o&&o.target&&o.target.src;u.message="Loading chunk "+t+" failed.\n("+i+": "+a+")",u.name="ChunkLoadError",u.type=i,u.request=a,n[1](u)}},"chunk-"+t,t)}},r.O.j=t=>0===e[t];var t=(t,o)=>{var n,i,[a,u,l]=o,c=0;if(a.some(t=>0!==e[t])){for(n in u)r.o(u,n)&&(r.m[n]=u[n]);if(l)var f=l(r)}for(t&&t(o);c<a.length;c++)i=a[c],r.o(e,i)&&e[i]&&e[i][0](),e[i]=0;return r.O(f)},o=self.webpackChunk_N_E=self.webpackChunk_N_E||[];o.forEach(t.bind(null,0)),o.push=t.bind(null,o.push.bind(o))})()})();
|
out/_next/static/css/0bc81a6c99df26fb.css
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8d697b304b401681-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ba015fad6dcf6784-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/569ce4b8f30dc480-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist Fallback;src:local("Arial");ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.00%;size-adjust:104.76%}.__className_5cfdac{font-family:Geist,Geist Fallback;font-style:normal}.__variable_5cfdac{--font-geist-sans:"Geist","Geist Fallback"}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/9610d9e46709d722-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/747892c23ea88013-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/93f479601ee12b01-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist Mono Fallback;src:local("Arial");ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.00%;size-adjust:134.59%}.__className_9a8899{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.__variable_9a8899{--font-geist-mono:"Geist Mono","Geist Mono Fallback"}@font-face{font-family:Share Tech;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/78b756c5b9139e81-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Share Tech Fallback;src:local("Arial");ascent-override:98.88%;descent-override:27.04%;line-gap-override:0.00%;size-adjust:89.50%}.__className_c5376c{font-family:Share Tech,Share Tech Fallback;font-weight:400;font-style:normal}.__variable_c5376c{--font-share-tech:"Share Tech","Share Tech Fallback"}@font-face{font-family:Roboto;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/3794f505ceb4aef5-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Roboto;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/320d9f5d177d6ec2-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Roboto;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/ca9e8d8193aed290-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Roboto;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/80512c49369d7ad3-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Roboto;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/0d580af215996300-s.woff2) format("woff2");unicode-range:u+0302-0303,u+0305,u+0307-0308,u+0310,u+0312,u+0315,u+031a,u+0326-0327,u+032c,u+032f-0330,u+0332-0333,u+0338,u+033a,u+0346,u+034d,u+0391-03a1,u+03a3-03a9,u+03b1-03c9,u+03d1,u+03d5-03d6,u+03f0-03f1,u+03f4-03f5,u+2016-2017,u+2034-2038,u+203c,u+2040,u+2043,u+2047,u+2050,u+2057,u+205f,u+2070-2071,u+2074-208e,u+2090-209c,u+20d0-20dc,u+20e1,u+20e5-20ef,u+2100-2112,u+2114-2115,u+2117-2121,u+2123-214f,u+2190,u+2192,u+2194-21ae,u+21b0-21e5,u+21f1-21f2,u+21f4-2211,u+2213-2214,u+2216-22ff,u+2308-230b,u+2310,u+2319,u+231c-2321,u+2336-237a,u+237c,u+2395,u+239b-23b7,u+23d0,u+23dc-23e1,u+2474-2475,u+25af,u+25b3,u+25b7,u+25bd,u+25c1,u+25ca,u+25cc,u+25fb,u+266d-266f,u+27c0-27ff,u+2900-2aff,u+2b0e-2b11,u+2b30-2b4c,u+2bfe,u+3030,u+ff5b,u+ff5d,u+1d400-1d7ff,u+1ee??}@font-face{font-family:Roboto;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/14254a1c498c2b09-s.woff2) format("woff2");unicode-range:u+0001-000c,u+000e-001f,u+007f-009f,u+20dd-20e0,u+20e2-20e4,u+2150-218f,u+2190,u+2192,u+2194-2199,u+21af,u+21e6-21f0,u+21f3,u+2218-2219,u+2299,u+22c4-22c6,u+2300-243f,u+2440-244a,u+2460-24ff,u+25a0-27bf,u+28??,u+2921-2922,u+2981,u+29bf,u+29eb,u+2b??,u+4dc0-4dff,u+fff9-fffb,u+10140-1018e,u+10190-1019c,u+101a0,u+101d0-101fd,u+102e0-102fb,u+10e60-10e7e,u+1d2c0-1d2d3,u+1d2e0-1d37f,u+1f0??,u+1f100-1f1ad,u+1f1e6-1f1ff,u+1f30d-1f30f,u+1f315,u+1f31c,u+1f31e,u+1f320-1f32c,u+1f336,u+1f378,u+1f37d,u+1f382,u+1f393-1f39f,u+1f3a7-1f3a8,u+1f3ac-1f3af,u+1f3c2,u+1f3c4-1f3c6,u+1f3ca-1f3ce,u+1f3d4-1f3e0,u+1f3ed,u+1f3f1-1f3f3,u+1f3f5-1f3f7,u+1f408,u+1f415,u+1f41f,u+1f426,u+1f43f,u+1f441-1f442,u+1f444,u+1f446-1f449,u+1f44c-1f44e,u+1f453,u+1f46a,u+1f47d,u+1f4a3,u+1f4b0,u+1f4b3,u+1f4b9,u+1f4bb,u+1f4bf,u+1f4c8-1f4cb,u+1f4d6,u+1f4da,u+1f4df,u+1f4e3-1f4e6,u+1f4ea-1f4ed,u+1f4f7,u+1f4f9-1f4fb,u+1f4fd-1f4fe,u+1f503,u+1f507-1f50b,u+1f50d,u+1f512-1f513,u+1f53e-1f54a,u+1f54f-1f5fa,u+1f610,u+1f650-1f67f,u+1f687,u+1f68d,u+1f691,u+1f694,u+1f698,u+1f6ad,u+1f6b2,u+1f6b9-1f6ba,u+1f6bc,u+1f6c6-1f6cf,u+1f6d3-1f6d7,u+1f6e0-1f6ea,u+1f6f0-1f6f3,u+1f6f7-1f6fc,u+1f7??,u+1f800-1f80b,u+1f810-1f847,u+1f850-1f859,u+1f860-1f887,u+1f890-1f8ad,u+1f8b0-1f8bb,u+1f8c0-1f8c1,u+1f900-1f90b,u+1f93b,u+1f946,u+1f984,u+1f996,u+1f9e9,u+1fa00-1fa6f,u+1fa70-1fa7c,u+1fa80-1fa89,u+1fa8f-1fac6,u+1face-1fadc,u+1fadf-1fae9,u+1faf0-1faf8,u+1fb??}@font-face{font-family:Roboto;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/4036a8cc6ad3520f-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Roboto;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c7128a8004343716-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Roboto;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c4a2ca76cbcd952a-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Roboto Fallback;src:local("Arial");ascent-override:92.98%;descent-override:24.47%;line-gap-override:0.00%;size-adjust:99.78%}.__className_10f679{font-family:Roboto,Roboto Fallback;font-weight:400;font-style:normal}.__variable_10f679{--font-roboto:"Roboto","Roboto Fallback"}
|
| 2 |
+
|
| 3 |
+
/*! tailwindcss v4.1.6 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-duration:initial;--tw-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:host,:root{--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-green-100:oklch(96.2% .044 156.743);--color-green-800:oklch(44.8% .119 151.328);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-800:oklch(42.4% .199 265.638);--color-indigo-600:oklch(51.1% .262 276.966);--color-indigo-700:oklch(45.7% .24 277.023);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-white:#fff;--spacing:.25rem;--container-2xl:42rem;--container-4xl:56rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height:calc(1.5/1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--text-5xl:3rem;--text-5xl--line-height:1;--text-6xl:3.75rem;--text-6xl--line-height:1;--text-8xl:6rem;--text-8xl--line-height:1;--font-weight-light:300;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-extrabold:800;--tracking-tight:-.025em;--leading-relaxed:1.625;--radius-lg:.5rem;--radius-2xl:1rem;--ease-in-out:cubic-bezier(.4,0,.2,1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-geist-sans);--default-mono-font-family:var(--font-geist-mono);--font-roboto:var(--font-roboto)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.mx-auto{margin-inline:auto}.mt-16{margin-top:calc(var(--spacing)*16)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.mb-8{margin-bottom:calc(var(--spacing)*8)}.mb-10{margin-bottom:calc(var(--spacing)*10)}.mb-12{margin-bottom:calc(var(--spacing)*12)}.box-border{box-sizing:border-box}.flex{display:flex}.inline-flex{display:inline-flex}.h-5{height:calc(var(--spacing)*5)}.min-h-screen{min-height:100vh}.w-5{width:calc(var(--spacing)*5)}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-\[80\%\]{max-width:80%}.flex-1{flex:1}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-2{gap:calc(var(--spacing)*2)}.gap-4{gap:calc(var(--spacing)*4)}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}.gap-x-4{column-gap:calc(var(--spacing)*4)}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*2)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-6>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*6)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-x-reverse)))}.gap-y-4{row-gap:calc(var(--spacing)*4)}.self-end{align-self:flex-end}.self-start{align-self:flex-start}.overflow-y-auto{overflow-y:auto}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-lg{border-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-gray-300{border-color:var(--color-gray-300)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-green-100{background-color:var(--color-green-100)}.bg-indigo-600{background-color:var(--color-indigo-600)}.bg-white{background-color:var(--color-white)}.p-4{padding:calc(var(--spacing)*4)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-5{padding-inline:calc(var(--spacing)*5)}.px-6{padding-inline:calc(var(--spacing)*6)}.px-8{padding-inline:calc(var(--spacing)*8)}.py-2{padding-block:calc(var(--spacing)*2)}.py-4{padding-block:calc(var(--spacing)*4)}.text-center{text-align:center}.text-justify{text-align:justify}.align-super{vertical-align:super}.font-roboto{font-family:var(--font-roboto)}.font-sans{font-family:var(--font-geist-sans)}.font-sharetech{font-family:var(--font-share-tech)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.break-words{overflow-wrap:break-word}.text-blue-600{color:var(--color-blue-600)}.text-gray-500{color:var(--color-gray-500)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-green-800{color:var(--color-green-800)}.text-red-500{color:var(--color-red-500)}.text-white{color:var(--color-white)}.italic{font-style:italic}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,visibility,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}@media (hover:hover){.group-hover\:scale-0:is(:where(.group):hover *){--tw-scale-x:0%;--tw-scale-y:0%;--tw-scale-z:0%;scale:var(--tw-scale-x)var(--tw-scale-y)}.group-hover\:scale-95:is(:where(.group):hover *){--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x)var(--tw-scale-y)}.group-hover\:scale-105:is(:where(.group):hover *){--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}.group-hover\:scale-150:is(:where(.group):hover *){--tw-scale-x:150%;--tw-scale-y:150%;--tw-scale-z:150%;scale:var(--tw-scale-x)var(--tw-scale-y)}.group-hover\:opacity-0:is(:where(.group):hover *){opacity:0}.hover\:bg-blue-600:hover{background-color:var(--color-blue-600)}.hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\:bg-indigo-700:hover{background-color:var(--color-indigo-700)}.hover\:text-xl:hover{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.hover\:text-blue-700:hover{color:var(--color-blue-700)}.hover\:text-blue-800:hover{color:var(--color-blue-800)}.hover\:text-red-600:hover{color:var(--color-red-600)}.hover\:underline:hover{text-decoration-line:underline}}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-blue-400:focus{--tw-ring-color:var(--color-blue-400)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.disabled\:opacity-50:disabled{opacity:.5}@media (min-width:48rem){.md\:max-w-4xl{max-width:var(--container-4xl)}.md\:text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}}@media (min-width:64rem){.lg\:text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.lg\:text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.lg\:text-8xl{font-size:var(--text-8xl);line-height:var(--tw-leading,var(--text-8xl--line-height))}.lg\:text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}}}:root{--background:#fff;--foreground:#171717}@media (prefers-color-scheme:dark){:root{--background:#0a0a0a;--foreground:#ededed}}.sansita-regular{font-weight:400}.sansita-bold,.sansita-regular{font-family:Sansita,sans-serif;font-style:normal}.sansita-bold{font-weight:700}.sansita-extrabold{font-family:Sansita,sans-serif;font-style:normal;font-weight:800}body{background:var(--background);color:var(--foreground);font-family:Arial,Helvetica,sans-serif}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}
|
out/_next/static/media/0d580af215996300-s.woff2
ADDED
|
Binary file (14.7 kB). View file
|
|
|
out/_next/static/media/14254a1c498c2b09-s.woff2
ADDED
|
Binary file (6.81 kB). View file
|
|
|
out/_next/static/media/320d9f5d177d6ec2-s.woff2
ADDED
|
Binary file (7.76 kB). View file
|
|
|
out/_next/static/media/3794f505ceb4aef5-s.woff2
ADDED
|
Binary file (11.8 kB). View file
|
|
|
out/_next/static/media/4036a8cc6ad3520f-s.woff2
ADDED
|
Binary file (4.09 kB). View file
|
|
|
out/_next/static/media/569ce4b8f30dc480-s.p.woff2
ADDED
|
Binary file (28.4 kB). View file
|
|
|
out/_next/static/media/747892c23ea88013-s.woff2
ADDED
|
Binary file (13 kB). View file
|
|
|
out/_next/static/media/78b756c5b9139e81-s.p.woff2
ADDED
|
Binary file (8.69 kB). View file
|
|
|
out/_next/static/media/80512c49369d7ad3-s.woff2
ADDED
|
Binary file (6 kB). View file
|
|
|
out/_next/static/media/8d697b304b401681-s.woff2
ADDED
|
Binary file (14.7 kB). View file
|
|
|
out/_next/static/media/93f479601ee12b01-s.p.woff2
ADDED
|
Binary file (31.3 kB). View file
|
|
|
out/_next/static/media/9610d9e46709d722-s.woff2
ADDED
|
Binary file (12.6 kB). View file
|
|
|
out/_next/static/media/ba015fad6dcf6784-s.woff2
ADDED
|
Binary file (15.3 kB). View file
|
|
|
out/_next/static/media/c4a2ca76cbcd952a-s.p.woff2
ADDED
|
Binary file (15.1 kB). View file
|
|
|
out/_next/static/media/c7128a8004343716-s.woff2
ADDED
|
Binary file (8.86 kB). View file
|
|
|
out/_next/static/media/ca9e8d8193aed290-s.woff2
ADDED
|
Binary file (944 Bytes). View file
|
|
|
out/_next/static/rukeIud56M6IHc3dJMy4O/_buildManifest.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
self.__BUILD_MANIFEST=function(e,r,t){return{__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},__routerFilterStatic:{numItems:3,errorRate:1e-4,numBits:58,numHashes:14,bitArray:[1,1,0,e,0,e,e,r,e,e,r,e,e,e,r,e,r,r,e,r,r,r,e,r,r,r,r,r,e,r,e,e,e,e,r,e,e,r,e,e,e,r,e,r,e,r,r,e,e,e,r,r,e,e,e,r,e,e]},__routerFilterDynamic:{numItems:r,errorRate:1e-4,numBits:r,numHashes:null,bitArray:[]},"/_error":["static/chunks/pages/_error-cc3f077a18ea1793.js"],sortedPages:["/_app","/_error"]}}(1,0,1e-4),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
|
out/_next/static/rukeIud56M6IHc3dJMy4O/_ssgManifest.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
self.__SSG_MANIFEST=new Set([]);self.__SSG_MANIFEST_CB&&self.__SSG_MANIFEST_CB()
|
out/favicon.ico
ADDED
|
|
out/file.svg
ADDED
|
|
out/globe.svg
ADDED
|
|
out/index.html
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/569ce4b8f30dc480-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/78b756c5b9139e81-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/93f479601ee12b01-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/c4a2ca76cbcd952a-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/0bc81a6c99df26fb.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-375a1df0977b566b.js"/><script src="/_next/static/chunks/4bd1b696-18452535c1c4862d.js" async=""></script><script src="/_next/static/chunks/684-8c7f7c22671a5a40.js" async=""></script><script src="/_next/static/chunks/main-app-2f5836e1a5bb3944.js" async=""></script><script src="/_next/static/chunks/app/page-3637b2ffc72df25b.js" async=""></script><meta name="next-size-adjust" content=""/><title>Lite Detective</title><meta name="description" content="Efficient and Accurate Chinese Toxic Text Detection"/><link rel="icon" href="/favicon.ico" type="image/x-icon" sizes="16x16"/><script>document.querySelectorAll('body link[rel="icon"], body link[rel="apple-touch-icon"]').forEach(el => document.head.appendChild(el))</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="font-roboto __variable_5cfdac __variable_c5376c __variable_9a8899 __variable_10f679 antialiased"><div class="min-h-screen bg-white font-sans flex flex-col items-center px-4"><div class="w-full font-sans flex flex-col items-center mt-16 mb-10"><h1 class="inline-flex items-end space-x-2 group text-4xl md:text-5xl font-extrabold text-center mb-4 tracking-tight font-sharetech cursor-pointer transition-all duration-500"><span class="text-base lg:text-2xl text-shadow-xl box-border transform transition-all duration-500 ease-in-out group-hover:scale-0 group-hover:opacity-0">Lite</span><span class="text-6xl lg:text-8xl transform transition-all duration-500 ease-in-out group-hover:scale-150">Detective<span class="text-2xl lg:text-4xl">🕵️</span></span></h1><h2 class="text-2xl text-center font-light mb-2 text-gray-700">Lightweight and Accurate Chinese Toxic Text Detection</h2><span class="text-base text-shadow-xl box-border mb-8 text-red-500 lg:text-lg hover:text-red-600 hover:text-xl transition-all duration-300 ease-in-out">Disclaimer: The paper contains content that may be profane, vulgar, or offensive.</span><div class="flex flex-wrap justify-center gap-x-4 gap-y-4 text-base mb-2"><div class="flex flex-col text-center group"><div class="flex items-center gap-2"><a href="https://github.com/AlbertZhaoCA" class="text-blue-600 hover:text-blue-800 text-2xl transition-all duration-300 group-hover:scale-95" target="_blank" rel="noopener noreferrer">Qinjian Zhao *<sup class="text-xs align-super text-muted">1</sup></a></div></div><div class="flex flex-col text-center group"><div class="flex items-center gap-2"><a href="https://github.com/HuHLuL" class="text-blue-600 hover:text-blue-800 text-2xl transition-all duration-300 group-hover:scale-95" target="_blank" rel="noopener noreferrer">Mingcheng Hu *<sup class="text-xs align-super text-muted">1</sup></a></div></div></div><div class="flex items-center gap-2">{<a href="mailto:zhaoq" class="transition-all duration-300 text-xl text-gray-500 hover:text-blue-700 hover:underline group-hover:scale-105"><sup class="text-xs align-super text-muted">1</sup>zhaoq<!-- --> <span>,</span></a><a href="mailto:humin" class="transition-all duration-300 text-xl text-gray-500 hover:text-blue-700 hover:underline group-hover:scale-105"><sup class="text-xs align-super text-muted">1</sup>humin<!-- --> </a>}<span class="text-lg"> @ kean.edu</span></div><div class="text-center text-gray-500 text-sm mb-2">* Equal Contribution <br/></div><div class="text-center text-gray-500 italic text-base mb-2">CPS 3320 2025</div><div class="text-center text-gray-700 text-base mb-6"><span class="text-xl">Kean University<!-- --> </span></div><div class="flex gap-4 justify-center mb-8"><a href="https://www.youtube.com/watch?v=dQw4w9WgXcQ" class="inline-flex items-center gap-2 px-6 py-2 rounded-lg border border-gray-300 font-semibold text-gray-800 bg-white hover:bg-gray-100 transition"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" data-slot="icon" class="h-5 w-5"><path stroke-linecap="round" stroke-linejoin="round" d="M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"></path></svg>Paper</a><a href="https://github.com/AlbertZhaoCA/lite-detective" class="inline-flex items-center gap-2 px-6 py-2 rounded-lg bg-indigo-600 text-white font-semibold shadow hover:bg-indigo-700 transition"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" data-slot="icon" class="h-5 w-5"><path stroke-linecap="round" stroke-linejoin="round" d="M17.25 6.75 22.5 12l-5.25 5.25m-10.5 0L1.5 12l5.25-5.25m7.5-3-4.5 16.5"></path></svg>Code</a><a href="https://www.youtube.com/watch?v=dQw4w9WgXcQ" class="inline-flex items-center gap-2 px-6 py-2 rounded-lg border border-gray-300 font-semibold text-gray-800 bg-white hover:bg-gray-100 transition"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" data-slot="icon" class="h-5 w-5"><path stroke-linecap="round" stroke-linejoin="round" d="M4.26 10.147a60.438 60.438 0 0 0-.491 6.347A48.62 48.62 0 0 1 12 20.904a48.62 48.62 0 0 1 8.232-4.41 60.46 60.46 0 0 0-.491-6.347m-15.482 0a50.636 50.636 0 0 0-2.658-.813A59.906 59.906 0 0 1 12 3.493a59.903 59.903 0 0 1 10.399 5.84c-.896.248-1.783.52-2.658.814m-15.482 0A50.717 50.717 0 0 1 12 13.489a50.702 50.702 0 0 1 7.74-3.342M6.75 15a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Zm0 0v-3.675A55.378 55.378 0 0 1 12 8.443m-7.007 11.55A5.981 5.981 0 0 0 6.75 15.75v-1.5"></path></svg>arXiv</a></div></div><section class="max-w-2xl md:max-w-4xl mb-12 text-center"><h3 class="text-2xl font-semibold mb-2">Abstract</h3><p class="text-gray-700 text-justify leading-relaxed text-lg">Harmful content detection is a critical task for
|
| 2 |
+
any social media platform, as the presence of
|
| 3 |
+
misinformation, age, gender, and racial discrim-
|
| 4 |
+
ination can lead to a reduction in active users.
|
| 5 |
+
This paper introduces a novel approach that
|
| 6 |
+
leverages large language models (LLMs) to an-
|
| 7 |
+
alyze specific social media data and generate
|
| 8 |
+
training data, combined with a BERT-based Dy-
|
| 9 |
+
namic TextCNN architecture. We first crawl
|
| 10 |
+
potential harmful comments from targeted com-
|
| 11 |
+
munities (e.g., "ShunBa"). These comments
|
| 12 |
+
are then subjected to random filtering and clus-
|
| 13 |
+
tering using a smaller LLM to generate policy-
|
| 14 |
+
guided seed examples. Next, we employ a large
|
| 15 |
+
LLM (Qwen-3) for context-aware and context-
|
| 16 |
+
free data augmentation. Finally, we integrate
|
| 17 |
+
BERT embeddings with a Dynamic TextCNN
|
| 18 |
+
classifier on our custom dataset.</p></section><section class="max-w-2xl md:max-w-4xl text-center mb-12"><h3 class="text-2xl font-semibold mb-2">Method</h3><p class="text-gray-700 text-justify leading-relaxed text-lg">Our model combines a lightweight transformer encoder with a multi-scale CNN feature extractor and a context-aware classification head.</p></section><section class="w-full md:max-w-4xl max-w-2xl mb-12"><h3 class="text-xl font-semibold mb-2 text-center">Online Demo</h3><div class="w-full max-w-2xl mx-auto bg-gray-50 rounded-lg shadow p-4 flex flex-col" style="min-height:400px"><div class="flex-1 overflow-y-auto mb-4 space-y-2"><div class="flex justify-start"><div class="
|
| 19 |
+
px-4 py-2 rounded-2xl max-w-[80%] break-words
|
| 20 |
+
bg-gray-200 text-gray-700 self-start text-xs
|
| 21 |
+
">草尼玛的一群煞笔</div></div><div class="flex justify-start"><div class="
|
| 22 |
+
px-4 py-2 rounded-2xl max-w-[80%] break-words
|
| 23 |
+
bg-gray-200 text-gray-700 self-start text-xs
|
| 24 |
+
">🐶日的哈麻批,该放假不放假,上你妈批的课啊</div></div><div class="flex justify-start"><div class="
|
| 25 |
+
px-4 py-2 rounded-2xl max-w-[80%] break-words
|
| 26 |
+
bg-gray-200 text-gray-700 self-start text-xs
|
| 27 |
+
">老哥🀄️啊,因为人领导每天都是放假捏捏 😋</div></div><div class="flex justify-start"><div class="
|
| 28 |
+
px-4 py-2 rounded-2xl max-w-[80%] break-words
|
| 29 |
+
bg-gray-200 text-gray-700 self-start text-xs
|
| 30 |
+
">密码的周六能不能放过我一次</div></div></div><form class="flex gap-2"><input class="flex-1 px-3 py-2 border border-gray-300 rounded-2xl focus:outline-none focus:ring-2 focus:ring-blue-400" placeholder="Input your text here..." value=""/><button type="submit" class="px-5 py-2 rounded-2xl bg-blue-500 text-white font-medium hover:bg-blue-600 disabled:opacity-50">Send</button></form></div></section></div><!--$--><!--/$--><!--$--><!--/$--><script src="/_next/static/chunks/webpack-375a1df0977b566b.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[7555,[],\"\"]\n3:I[1295,[],\"\"]\n4:I[3762,[\"974\",\"static/chunks/app/page-3637b2ffc72df25b.js\"],\"default\"]\n5:I[9665,[],\"MetadataBoundary\"]\n7:I[9665,[],\"OutletBoundary\"]\na:I[4911,[],\"AsyncMetadataOutlet\"]\nc:I[9665,[],\"ViewportBoundary\"]\ne:I[6614,[],\"\"]\n:HL[\"/_next/static/media/569ce4b8f30dc480-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/78b756c5b9139e81-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/93f479601ee12b01-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/c4a2ca76cbcd952a-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/0bc81a6c99df26fb.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"rukeIud56M6IHc3dJMy4O\",\"p\":\"\",\"c\":[\"\",\"\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/0bc81a6c99df26fb.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"className\":\"font-roboto __variable_5cfdac __variable_c5376c __variable_9a8899 __variable_10f679 antialiased\",\"children\":[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"div\",null,{\"className\":\"min-h-screen bg-white font-sans flex flex-col items-center px-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"w-full font-sans flex flex-col items-center mt-16 mb-10\",\"children\":[[\"$\",\"h1\",null,{\"className\":\"inline-flex items-end space-x-2 group text-4xl md:text-5xl font-extrabold text-center mb-4 tracking-tight font-sharetech cursor-pointer transition-all duration-500\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-base lg:text-2xl text-shadow-xl box-border transform transition-all duration-500 ease-in-out group-hover:scale-0 group-hover:opacity-0\",\"children\":\"Lite\"}],[\"$\",\"span\",null,{\"className\":\"text-6xl lg:text-8xl transform transition-all duration-500 ease-in-out group-hover:scale-150\",\"children\":[\"Detective\",[\"$\",\"span\",null,{\"className\":\"text-2xl lg:text-4xl\",\"children\":\"🕵️\"}]]}]]}],[\"$\",\"h2\",null,{\"className\":\"text-2xl text-center font-light mb-2 text-gray-700\",\"children\":\"Lightweight and Accurate Chinese Toxic Text Detection\"}],[\"$\",\"span\",null,{\"className\":\"text-base text-shadow-xl box-border mb-8 text-red-500 lg:text-lg hover:text-red-600 hover:text-xl transition-all duration-300 ease-in-out\",\"children\":\"Disclaimer: The paper contains content that may be profane, vulgar, or offensive.\"}],[\"$\",\"div\",null,{\"className\":\"flex flex-wrap justify-center gap-x-4 gap-y-4 text-base mb-2\",\"children\":[[\"$\",\"div\",\"Qinjian Zhao *\",{\"className\":\"flex flex-col text-center group\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[\"$\",\"a\",null,{\"href\":\"https://github.com/AlbertZhaoCA\",\"className\":\"text-blue-600 hover:text-blue-800 text-2xl transition-all duration-300 group-hover:scale-95\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[\"Qinjian Zhao *\",[\"$\",\"sup\",null,{\"className\":\"text-xs align-super text-muted\",\"children\":1}]]}]}]}],[\"$\",\"div\",\"Mingcheng Hu *\",{\"className\":\"flex flex-col text-center group\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[\"$\",\"a\",null,{\"href\":\"https://github.com/HuHLuL\",\"className\":\"text-blue-600 hover:text-blue-800 text-2xl transition-all duration-300 group-hover:scale-95\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[\"Mingcheng Hu *\",[\"$\",\"sup\",null,{\"className\":\"text-xs align-super text-muted\",\"children\":1}]]}]}]}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[\"{\",[[\"$\",\"a\",\"zhaoq\",{\"href\":\"mailto:zhaoq\",\"className\":\"transition-all duration-300 text-xl text-gray-500 hover:text-blue-700 hover:underline group-hover:scale-105\",\"children\":[[\"$\",\"sup\",null,{\"className\":\"text-xs align-super text-muted\",\"children\":1}],\"zhaoq\",\" \",[\"$\",\"span\",null,{\"children\":\",\"}]]}],[\"$\",\"a\",\"humin\",{\"href\":\"mailto:humin\",\"className\":\"transition-all duration-300 text-xl text-gray-500 hover:text-blue-700 hover:underline group-hover:scale-105\",\"children\":[[\"$\",\"sup\",null,{\"className\":\"text-xs align-super text-muted\",\"children\":1}],\"humin\",\" \",false]}]],\"}\",[\"$\",\"span\",null,{\"className\":\"text-lg\",\"children\":\" @ kean.edu\"}]]}],[\"$\",\"div\",null,{\"className\":\"text-center text-gray-500 text-sm mb-2\",\"children\":[\"* Equal Contribution \",[\"$\",\"br\",null,{}]]}],[\"$\",\"div\",null,{\"className\":\"text-center text-gray-500 italic text-base mb-2\",\"children\":\"CPS 3320 2025\"}],[\"$\",\"div\",null,{\"className\":\"text-center text-gray-700 text-base mb-6\",\"children\":[[\"$\",\"span\",\"Kean University\",{\"className\":\"text-xl\",\"children\":[\"Kean University\",\" \"]}]]}],[\"$\",\"div\",null,{\"className\":\"flex gap-4 justify-center mb-8\",\"children\":[[\"$\",\"a\",null,{\"href\":\"https://www.youtube.com/watch?v=dQw4w9WgXcQ\",\"className\":\"inline-flex items-center gap-2 px-6 py-2 rounded-lg border border-gray-300 font-semibold text-gray-800 bg-white hover:bg-gray-100 transition\",\"children\":[[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":1.5,\"stroke\":\"currentColor\",\"aria-hidden\":\"true\",\"data-slot\":\"icon\",\"ref\":\"$undefined\",\"aria-labelledby\":\"$undefined\",\"className\":\"h-5 w-5\",\"children\":[null,[\"$\",\"path\",null,{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z\"}]]}],\"Paper\"]}],[\"$\",\"a\",null,{\"href\":\"https://github.com/AlbertZhaoCA/lite-detective\",\"className\":\"inline-flex items-center gap-2 px-6 py-2 rounded-lg bg-indigo-600 text-white font-semibold shadow hover:bg-indigo-700 transition\",\"children\":[[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":1.5,\"stroke\":\"currentColor\",\"aria-hidden\":\"true\",\"data-slot\":\"icon\",\"ref\":\"$undefined\",\"aria-labelledby\":\"$undefined\",\"className\":\"h-5 w-5\",\"children\":[null,[\"$\",\"path\",null,{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M17.25 6.75 22.5 12l-5.25 5.25m-10.5 0L1.5 12l5.25-5.25m7.5-3-4.5 16.5\"}]]}],\"Code\"]}],[\"$\",\"a\",null,{\"href\":\"https://www.youtube.com/watch?v=dQw4w9WgXcQ\",\"className\":\"inline-flex items-center gap-2 px-6 py-2 rounded-lg border border-gray-300 font-semibold text-gray-800 bg-white hover:bg-gray-100 transition\",\"children\":[[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"strokeWidth\":1.5,\"stroke\":\"currentColor\",\"aria-hidden\":\"true\",\"data-slot\":\"icon\",\"ref\":\"$undefined\",\"aria-labelledby\":\"$undefined\",\"className\":\"h-5 w-5\",\"children\":[null,[\"$\",\"path\",null,{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"d\":\"M4.26 10.147a60.438 60.438 0 0 0-.491 6.347A48.62 48.62 0 0 1 12 20.904a48.62 48.62 0 0 1 8.232-4.41 60.46 60.46 0 0 0-.491-6.347m-15.482 0a50.636 50.636 0 0 0-2.658-.813A59.906 59.906 0 0 1 12 3.493a59.903 59.903 0 0 1 10.399 5.84c-.896.248-1.783.52-2.658.814m-15.482 0A50.717 50.717 0 0 1 12 13.489a50.702 50.702 0 0 1 7.74-3.342M6.75 15a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Zm0 0v-3.675A55.378 55.378 0 0 1 12 8.443m-7.007 11.55A5.981 5.981 0 0 0 6.75 15.75v-1.5\"}]]}],\"arXiv\"]}]]}]]}],[\"$\",\"section\",null,{\"className\":\"max-w-2xl md:max-w-4xl mb-12 text-center\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"text-2xl font-semibold mb-2\",\"children\":\"Abstract\"}],[\"$\",\"p\",null,{\"className\":\"text-gray-700 text-justify leading-relaxed text-lg\",\"children\":\"Harmful content detection is a critical task for\\nany social media platform, as the presence of\\nmisinformation, age, gender, and racial discrim-\\nination can lead to a reduction in active users.\\nThis paper introduces a novel approach that\\nleverages large language models (LLMs) to an-\\nalyze specific social media data and generate\\ntraining data, combined with a BERT-based Dy-\\nnamic TextCNN architecture. We first crawl\\npotential harmful comments from targeted com-\\nmunities (e.g., \\\"ShunBa\\\"). These comments\\nare then subjected to random filtering and clus-\\ntering using a smaller LLM to generate policy-\\nguided seed examples. Next, we employ a large\\nLLM (Qwen-3) for context-aware and context-\\nfree data augmentation. Finally, we integrate\\nBERT embeddings with a Dynamic TextCNN\\nclassifier on our custom dataset.\"}]]}],[\"$\",\"section\",null,{\"className\":\"max-w-2xl md:max-w-4xl text-center mb-12\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"text-2xl font-semibold mb-2\",\"children\":\"Method\"}],[\"$\",\"p\",null,{\"className\":\"text-gray-700 text-justify leading-relaxed text-lg\",\"children\":\"Our model combines a lightweight transformer encoder with a multi-scale CNN feature extractor and a context-aware classification head.\"}]]}],[\"$\",\"section\",null,{\"className\":\"w-full md:max-w-4xl max-w-2xl mb-12\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"text-xl font-semibold mb-2 text-center\",\"children\":\"Online Demo\"}],[\"$\",\"$L4\",null,{\"context\":\"草尼玛的一群煞笔\\n\\n🐶日的哈麻批,该放假不放假,上你妈批的课啊\\n\\n老哥🀄️啊,因为人领导每天都是放假捏捏 😋\\n\\n密码的周六能不能放过我一次\"}]]}]]}],[\"$\",\"$L5\",null,{\"children\":\"$L6\"}],null,[\"$\",\"$L7\",null,{\"children\":[\"$L8\",\"$L9\",[\"$\",\"$La\",null,{\"promise\":\"$@b\"}]]}]]}],{},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$1\",\"b8FvtV29vEy5rR9nsXeph\",{\"children\":[[\"$\",\"$Lc\",null,{\"children\":\"$Ld\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$e\",\"$undefined\"],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"f:\"$Sreact.suspense\"\n10:I[4911,[],\"AsyncMetadata\"]\n6:[\"$\",\"$f\",null,{\"fallback\":null,\"children\":[\"$\",\"$L10\",null,{\"promise\":\"$@11\"}]}]\n"])</script><script>self.__next_f.push([1,"9:null\n"])</script><script>self.__next_f.push([1,"d:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n8:null\n"])</script><script>self.__next_f.push([1,"11:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Lite Detective\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Efficient and Accurate Chinese Toxic Text Detection\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/favicon.ico\",\"type\":\"image/x-icon\",\"sizes\":\"16x16\"}]],\"error\":null,\"digest\":\"$undefined\"}\nb:{\"metadata\":\"$11:metadata\",\"error\":null,\"digest\":\"$undefined\"}\n"])</script></body></html>
|
out/index.txt
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
1:"$Sreact.fragment"
|
| 2 |
+
2:I[7555,[],""]
|
| 3 |
+
3:I[1295,[],""]
|
| 4 |
+
4:I[3762,["974","static/chunks/app/page-3637b2ffc72df25b.js"],"default"]
|
| 5 |
+
5:I[9665,[],"MetadataBoundary"]
|
| 6 |
+
7:I[9665,[],"OutletBoundary"]
|
| 7 |
+
a:I[4911,[],"AsyncMetadataOutlet"]
|
| 8 |
+
c:I[9665,[],"ViewportBoundary"]
|
| 9 |
+
e:I[6614,[],""]
|
| 10 |
+
:HL["/_next/static/media/569ce4b8f30dc480-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
| 11 |
+
:HL["/_next/static/media/78b756c5b9139e81-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
| 12 |
+
:HL["/_next/static/media/93f479601ee12b01-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
| 13 |
+
:HL["/_next/static/media/c4a2ca76cbcd952a-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
| 14 |
+
:HL["/_next/static/css/0bc81a6c99df26fb.css","style"]
|
| 15 |
+
0:{"P":null,"b":"rukeIud56M6IHc3dJMy4O","p":"","c":["",""],"i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/0bc81a6c99df26fb.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"font-roboto __variable_5cfdac __variable_c5376c __variable_9a8899 __variable_10f679 antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","div",null,{"className":"min-h-screen bg-white font-sans flex flex-col items-center px-4","children":[["$","div",null,{"className":"w-full font-sans flex flex-col items-center mt-16 mb-10","children":[["$","h1",null,{"className":"inline-flex items-end space-x-2 group text-4xl md:text-5xl font-extrabold text-center mb-4 tracking-tight font-sharetech cursor-pointer transition-all duration-500","children":[["$","span",null,{"className":"text-base lg:text-2xl text-shadow-xl box-border transform transition-all duration-500 ease-in-out group-hover:scale-0 group-hover:opacity-0","children":"Lite"}],["$","span",null,{"className":"text-6xl lg:text-8xl transform transition-all duration-500 ease-in-out group-hover:scale-150","children":["Detective",["$","span",null,{"className":"text-2xl lg:text-4xl","children":"🕵️"}]]}]]}],["$","h2",null,{"className":"text-2xl text-center font-light mb-2 text-gray-700","children":"Lightweight and Accurate Chinese Toxic Text Detection"}],["$","span",null,{"className":"text-base text-shadow-xl box-border mb-8 text-red-500 lg:text-lg hover:text-red-600 hover:text-xl transition-all duration-300 ease-in-out","children":"Disclaimer: The paper contains content that may be profane, vulgar, or offensive."}],["$","div",null,{"className":"flex flex-wrap justify-center gap-x-4 gap-y-4 text-base mb-2","children":[["$","div","Qinjian Zhao *",{"className":"flex flex-col text-center group","children":["$","div",null,{"className":"flex items-center gap-2","children":["$","a",null,{"href":"https://github.com/AlbertZhaoCA","className":"text-blue-600 hover:text-blue-800 text-2xl transition-all duration-300 group-hover:scale-95","target":"_blank","rel":"noopener noreferrer","children":["Qinjian Zhao *",["$","sup",null,{"className":"text-xs align-super text-muted","children":1}]]}]}]}],["$","div","Mingcheng Hu *",{"className":"flex flex-col text-center group","children":["$","div",null,{"className":"flex items-center gap-2","children":["$","a",null,{"href":"https://github.com/HuHLuL","className":"text-blue-600 hover:text-blue-800 text-2xl transition-all duration-300 group-hover:scale-95","target":"_blank","rel":"noopener noreferrer","children":["Mingcheng Hu *",["$","sup",null,{"className":"text-xs align-super text-muted","children":1}]]}]}]}]]}],["$","div",null,{"className":"flex items-center gap-2","children":["{",[["$","a","zhaoq",{"href":"mailto:zhaoq","className":"transition-all duration-300 text-xl text-gray-500 hover:text-blue-700 hover:underline group-hover:scale-105","children":[["$","sup",null,{"className":"text-xs align-super text-muted","children":1}],"zhaoq"," ",["$","span",null,{"children":","}]]}],["$","a","humin",{"href":"mailto:humin","className":"transition-all duration-300 text-xl text-gray-500 hover:text-blue-700 hover:underline group-hover:scale-105","children":[["$","sup",null,{"className":"text-xs align-super text-muted","children":1}],"humin"," ",false]}]],"}",["$","span",null,{"className":"text-lg","children":" @ kean.edu"}]]}],["$","div",null,{"className":"text-center text-gray-500 text-sm mb-2","children":["* Equal Contribution ",["$","br",null,{}]]}],["$","div",null,{"className":"text-center text-gray-500 italic text-base mb-2","children":"CPS 3320 2025"}],["$","div",null,{"className":"text-center text-gray-700 text-base mb-6","children":[["$","span","Kean University",{"className":"text-xl","children":["Kean University"," "]}]]}],["$","div",null,{"className":"flex gap-4 justify-center mb-8","children":[["$","a",null,{"href":"https://www.youtube.com/watch?v=dQw4w9WgXcQ","className":"inline-flex items-center gap-2 px-6 py-2 rounded-lg border border-gray-300 font-semibold text-gray-800 bg-white hover:bg-gray-100 transition","children":[["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","fill":"none","viewBox":"0 0 24 24","strokeWidth":1.5,"stroke":"currentColor","aria-hidden":"true","data-slot":"icon","ref":"$undefined","aria-labelledby":"$undefined","className":"h-5 w-5","children":[null,["$","path",null,{"strokeLinecap":"round","strokeLinejoin":"round","d":"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"}]]}],"Paper"]}],["$","a",null,{"href":"https://github.com/AlbertZhaoCA/lite-detective","className":"inline-flex items-center gap-2 px-6 py-2 rounded-lg bg-indigo-600 text-white font-semibold shadow hover:bg-indigo-700 transition","children":[["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","fill":"none","viewBox":"0 0 24 24","strokeWidth":1.5,"stroke":"currentColor","aria-hidden":"true","data-slot":"icon","ref":"$undefined","aria-labelledby":"$undefined","className":"h-5 w-5","children":[null,["$","path",null,{"strokeLinecap":"round","strokeLinejoin":"round","d":"M17.25 6.75 22.5 12l-5.25 5.25m-10.5 0L1.5 12l5.25-5.25m7.5-3-4.5 16.5"}]]}],"Code"]}],["$","a",null,{"href":"https://www.youtube.com/watch?v=dQw4w9WgXcQ","className":"inline-flex items-center gap-2 px-6 py-2 rounded-lg border border-gray-300 font-semibold text-gray-800 bg-white hover:bg-gray-100 transition","children":[["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","fill":"none","viewBox":"0 0 24 24","strokeWidth":1.5,"stroke":"currentColor","aria-hidden":"true","data-slot":"icon","ref":"$undefined","aria-labelledby":"$undefined","className":"h-5 w-5","children":[null,["$","path",null,{"strokeLinecap":"round","strokeLinejoin":"round","d":"M4.26 10.147a60.438 60.438 0 0 0-.491 6.347A48.62 48.62 0 0 1 12 20.904a48.62 48.62 0 0 1 8.232-4.41 60.46 60.46 0 0 0-.491-6.347m-15.482 0a50.636 50.636 0 0 0-2.658-.813A59.906 59.906 0 0 1 12 3.493a59.903 59.903 0 0 1 10.399 5.84c-.896.248-1.783.52-2.658.814m-15.482 0A50.717 50.717 0 0 1 12 13.489a50.702 50.702 0 0 1 7.74-3.342M6.75 15a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Zm0 0v-3.675A55.378 55.378 0 0 1 12 8.443m-7.007 11.55A5.981 5.981 0 0 0 6.75 15.75v-1.5"}]]}],"arXiv"]}]]}]]}],["$","section",null,{"className":"max-w-2xl md:max-w-4xl mb-12 text-center","children":[["$","h3",null,{"className":"text-2xl font-semibold mb-2","children":"Abstract"}],["$","p",null,{"className":"text-gray-700 text-justify leading-relaxed text-lg","children":"Harmful content detection is a critical task for\nany social media platform, as the presence of\nmisinformation, age, gender, and racial discrim-\nination can lead to a reduction in active users.\nThis paper introduces a novel approach that\nleverages large language models (LLMs) to an-\nalyze specific social media data and generate\ntraining data, combined with a BERT-based Dy-\nnamic TextCNN architecture. We first crawl\npotential harmful comments from targeted com-\nmunities (e.g., \"ShunBa\"). These comments\nare then subjected to random filtering and clus-\ntering using a smaller LLM to generate policy-\nguided seed examples. Next, we employ a large\nLLM (Qwen-3) for context-aware and context-\nfree data augmentation. Finally, we integrate\nBERT embeddings with a Dynamic TextCNN\nclassifier on our custom dataset."}]]}],["$","section",null,{"className":"max-w-2xl md:max-w-4xl text-center mb-12","children":[["$","h3",null,{"className":"text-2xl font-semibold mb-2","children":"Method"}],["$","p",null,{"className":"text-gray-700 text-justify leading-relaxed text-lg","children":"Our model combines a lightweight transformer encoder with a multi-scale CNN feature extractor and a context-aware classification head."}]]}],["$","section",null,{"className":"w-full md:max-w-4xl max-w-2xl mb-12","children":[["$","h3",null,{"className":"text-xl font-semibold mb-2 text-center","children":"Online Demo"}],["$","$L4",null,{"context":"草尼玛的一群煞笔\n\n🐶日的哈麻批,该放假不放假,上你妈批的课啊\n\n老哥🀄️啊,因为人领导每天都是放假捏捏 😋\n\n密码的周六能不能放过我一次"}]]}]]}],["$","$L5",null,{"children":"$L6"}],null,["$","$L7",null,{"children":["$L8","$L9",["$","$La",null,{"promise":"$@b"}]]}]]}],{},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","b8FvtV29vEy5rR9nsXeph",{"children":[["$","$Lc",null,{"children":"$Ld"}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],null]}],false]],"m":"$undefined","G":["$e","$undefined"],"s":false,"S":true}
|
| 16 |
+
f:"$Sreact.suspense"
|
| 17 |
+
10:I[4911,[],"AsyncMetadata"]
|
| 18 |
+
6:["$","$f",null,{"fallback":null,"children":["$","$L10",null,{"promise":"$@11"}]}]
|
| 19 |
+
9:null
|
| 20 |
+
d:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
| 21 |
+
8:null
|
| 22 |
+
11:{"metadata":[["$","title","0",{"children":"Lite Detective"}],["$","meta","1",{"name":"description","content":"Efficient and Accurate Chinese Toxic Text Detection"}],["$","link","2",{"rel":"icon","href":"/favicon.ico","type":"image/x-icon","sizes":"16x16"}]],"error":null,"digest":"$undefined"}
|
| 23 |
+
b:{"metadata":"$11:metadata","error":null,"digest":"$undefined"}
|
out/next.svg
ADDED
|
|
out/vercel.svg
ADDED
|
|
out/window.svg
ADDED
|
|