说明文档
问题描述
处理和理解用户输入的能力对于各种应用程序(如聊天机器人或下游任务)至关重要。然而,这类系统面临的一个常见挑战是存在乱码或无意义的输入。为了解决这个问题,我们提出了一个专注于开发英语乱码检测器的项目。 本项目的主要目标是将用户输入分类为乱码或非乱码,从而实现与系统更准确、更有意义的交互。我们还旨在提升聊天机器人及其他依赖用户输入的系统的整体性能和用户体验。
什么是乱码?
乱码是指无意义或没有含义的语言或文本,缺乏连贯性或任何可辨别的意义。它的特征可以是随机单词的组合、无意义的短语、语法错误或句法异常,导致交流无法传达清晰易懂的信息。乱码的程度可以有所不同,从没有任何有意义单词的简单噪声,到表面上看似乎正确但仔细检查时缺乏连贯性或逻辑结构的句子。检测和识别乱码在各种场景中至关重要,例如自然语言处理、聊天机器人系统、垃圾邮件过滤和基于语言的安全措施,以确保有效沟通和准确处理用户输入。
标签说明
因此,我们将问题分解为4个类别:
-
噪声(Noise): 零级乱码,输入短语的不同组成部分(单词)本身都不具有任何意义。 例如:
dfdfer fgerfow2e0d qsqskdsd djksdnfkff swq. -
词语堆砌(Word Salad): 一级乱码,单词单独看有意义,但从整体(短语)来看,没有表达任何含义。 例如:
22 madhur old punjab pickle chennai -
轻微乱码(Mild gibberish): 二级乱码,句子的一部分存在语法错误、词义错误或任何句法异常,导致句子缺乏连贯的意义。 例如:
Madhur study in a teacher -
正常: 此类别代表一组能够独立构成完整且有意义句子的单词。 例如:
I love this website
提示: 为了便于乱码检测,您可以根据所需的检测级别组合标签。例如,如果您需要检测一级乱码,可以将"噪声"和"词语堆砌"归为"乱码"(Gibberish),而将"轻微乱码"和"正常"单独视为"非乱码"(NotGibberish)。这种方法允许根据特定需求灵活地检测和分类不同级别的乱码。
使用 AutoNLP 训练的模型
- 问题类型:多类分类
- 模型 ID:492513457
- CO2 排放量(克):5.527544460835904
验证指标
- 损失值(Loss):0.07609463483095169
- 准确率(Accuracy):0.9735624586913417
- 宏平均 F1(Macro F1):0.9736173135739408
- 微平均 F1(Micro F1):0.9735624586913417
- 加权 F1(Weighted F1):0.9736173135739408
- 宏平均精确率(Macro Precision):0.9737771415197378
- 微平均精确率(Micro Precision):0.9735624586913417
- 加权精确率(Weighted Precision):0.9737771415197378
- 宏平均召回率(Macro Recall):0.9735624586913417
- 微平均召回率(Micro Recall):0.9735624586913417
- 加权召回率(Weighted Recall):0.9735624586913417
使用方法
您可以使用 cURL 访问此模型:
$ curl -X POST -H "Authorization: Bearer YOUR_API_KEY" -H "Content-Type: application/json" -d '{"inputs": "I love Machine Learning!"}' https://api-inference.huggingface.co/models/madhurjindal/autonlp-Gibberish-Detector-492513457
或使用 Python API:
import torch
import torch.nn.functional as F
from transformers import AutoModelForSequenceClassification, AutoTokenizer
model = AutoModelForSequenceClassification.from_pretrained("madhurjindal/autonlp-Gibberish-Detector-492513457", use_auth_token=True)
tokenizer = AutoTokenizer.from_pretrained("madhurjindal/autonlp-Gibberish-Detector-492513457", use_auth_token=True)
inputs = tokenizer("I love Machine Learning!", return_tensors="pt")
outputs = model(**inputs)
probs = F.softmax(outputs.logits, dim=-1)
predicted_index = torch.argmax(probs, dim=1).item()
predicted_prob = probs[0][predicted_index].item()
labels = model.config.id2label
predicted_label = labels[predicted_index]
for i, prob in enumerate(probs[0]):
print(f"Class: {labels[i]}, Probability: {prob:.4f}")
使用 transformers pipeline 的简化方案:
from transformers import pipeline
selected_model = "madhurjindal/autonlp-Gibberish-Detector-492513457"
classifier = pipeline("text-classification", model=selected_model)
classifier("I love Machine Learning!")
is-ahmed/autonlp-Gibberish-Detector-492513457
作者 is-ahmed
创建时间: 2025-01-13 16:18:50+00:00
更新时间: 2025-01-13 16:18:51+00:00
在 Hugging Face 上查看