ONNX 模型库
返回模型

说明文档

乱码检测器 - 高级文本分类模型

<div align="center">

Model on Hugging Face License: MIT Accuracy

</div>

最先进的乱码检测模型,能够准确识别英语中的无意义文本、垃圾内容和 incoherent 输入。基于 DistilBERT 和 AutoNLP 构建,该模型在多类文本分类中达到了 97.36% 的准确率,是内容审核、聊天机器人输入验证和文本质量保证的理想解决方案。

🎯 快速开始

from transformers import pipeline

# 初始化乱码检测器
detector = pipeline("text-classification", model="madhurjindal/autonlp-Gibberish-Detector-492513457")

# 检测文本中的乱码
result = detector("I love Machine Learning!")
print(result)
# 输出: [{'label': 'clean', 'score': 0.99}]

🔥 主要特性

  • 🎯 97.36% 准确率:乱码检测领域的领先性能
  • ⚡ 快速推理:优化的 DistilBERT 架构,适用于实时应用
  • 🏷️ 多类别检测:区分噪声、胡言乱语、轻度乱码和正常文本
  • 🔧 简单集成:通过 transformers pipeline 提供简单的 API
  • 🌐 生产就绪:已在多样化的真实世界数据集上测试
  • 💚 环保:低碳足迹(5.53g CO2 排放)

问题描述

处理和理解用户输入的能力对于各种应用至关重要,例如聊天机器人或下游任务。然而,这类系统面临的一个常见挑战是存在乱码或无意义的输入。为了解决这个问题,我们提出了一个针对英语开发乱码检测器的项目。 该项目的目标是将用户输入分类为乱码非乱码,从而实现与系统更准确、更有意义的交互。我们还旨在提升依赖用户输入的聊天机器人和其他系统的整体性能和用户体验。

什么是乱码?

乱码指无意义或无价值的语言或文本,缺乏连贯性或任何可辨别的意义。其特征可能是随机词汇、无意义短语、语法错误或句法异常的组合,导致信息无法传达清晰易懂的信息。乱码的程度可能有所不同,从简单无意义词汇(没有任何有意义的词)到表面上可能正确但仔细检查时缺乏连贯性或逻辑结构的句子。在各种情境下,检测和识别乱码都很重要,例如自然语言处理聊天机器人系统垃圾邮件过滤基于语言的安全措施,以确保有效沟通并准确处理用户输入。

标签描述

因此,我们将问题分为 4 个类别:

  1. 噪声(Noise): 零级乱码,即使输入短语的不同组成部分(单词)本身也没有任何意义。
    例如:dfdfer fgerfow2e0d qsqskdsd djksdnfkff swq.

  2. 胡言乱语(Word Salad): 一级乱码,单词单独看是有意义的,但从整体(短语)来看没有表达任何含义。
    例如:22 madhur old puncabi pickle chennai

  3. 轻度乱码(Mild gibberish): 二级乱码,句子的某一部分有语法错误、词义错误或任何句法异常,导致句子缺乏连贯的含义。
    例如:Madhur study in a teacher

  4. 正常(Clean): 这类代表能够自行构成完整且有意义的句子的一组词汇。
    例如:I love this website

提示: 为了便于乱码检测,您可以根据所需的检测级别组合标签。例如,如果您需要检测一级乱码,可以将噪声和胡言乱语归为一类作为"乱码",同时将轻度乱码和正常文本分别作为"非乱码"。这种方法允许根据特定需求灵活检测和分类不同级别的乱码。

使用 AutoNLP 训练的模型

  • 问题类型:多类分类
  • 模型 ID:492513457
  • CO2 排放量(克):5.527544460835904

验证指标

  • 损失:0.07609463483095169
  • 准确率:0.9735624586913417
  • 宏平均 F1:0.9736173135739408
  • 微观 F1:0.9735624586913417
  • 加权 F1:0.9736173135739408
  • 宏平均精确率:0.9737771415197378
  • 微观精确率:0.9735624586913417
  • 加权精确率:0.9737771415197378
  • 宏平均召回率:0.9735624586913417
  • 微观召回率:0.9735624586913417
  • 加权召回率:0.9735624586913417

🚀 使用场景

1. 聊天机器人输入验证

防止聊天机器人处理无意义的查询:

def validate_user_input(text):
    result = detector(text)[0]
    if result['label'] in ['noise', 'word_salad']:
        return "Please provide a valid question."
    return process_query(text)

2. 内容审核

从用户生成的内容中过滤垃圾信息和乱码:

def moderate_content(post):
    classification = detector(post)[0]
    if classification['label'] != 'clean':
        return f"Post rejected: {classification['label']} detected"
    return "Post approved"

3. 数据质量保证

通过删除低质量文本来清理数据集:

def filter_quality_text(texts):
    quality_texts = []
    for text in texts:
        if detector(text)[0]['label'] == 'clean':
            quality_texts.append(text)
    return quality_texts

🛠️ 安装和使用

基本用法

from transformers import AutoModelForSequenceClassification, AutoTokenizer
import torch

# 加载模型和分词器
model = AutoModelForSequenceClassification.from_pretrained("madhurjindal/autonlp-Gibberish-Detector-492513457")
tokenizer = AutoTokenizer.from_pretrained("madhurjindal/autonlp-Gibberish-Detector-492513457")

# 分类文本
def detect_gibberish(text):
    inputs = tokenizer(text, return_tensors="pt", truncation=True, padding=True)
    with torch.no_grad():
        outputs = model(**inputs)
    
    probabilities = torch.nn.functional.softmax(outputs.logits, dim=-1)
    predicted_label_id = probabilities.argmax().item()
    
    return model.config.id2label[predicted_label_id]

# 示例
print(detect_gibberish("Hello world!"))  # 输出: clean
print(detect_gibberish("asdkfj asdf"))   # 输出: noise

API 用法

curl -X POST -H "Authorization: Bearer YOUR_API_KEY" \
     -H "Content-Type: application/json" \
     -d '{"inputs": "Is this text gibberish?"}' \
     https://api-inference.huggingface.co/models/madhurjindal/autonlp-Gibberish-Detector-492513457

批量处理

texts = [
    "Perfect sentence structure",
    "random kdjs dskjf",
    "apple banana car house"
]

results = detector(texts)
for text, result in zip(texts, results):
    print(f"'{text}' -> {result['label']} ({result['score']:.2f})")

🔍 工作原理

此乱码检测器使用经过微调的 DistilBERT 模型,该模型在精心策划的各种乱码类型数据集上训练。模型学习识别以下模式:

  1. 字符级模式:检测随机字符序列
  2. 词汇级连贯性:识别有意义的词汇组合
  3. 句子级结构:识别语法模式
  4. 语义一致性:理解逻辑意义流动

📈 与其他方案的对比

特性 我们的模型 传统正则表达式 基于规则的系统
准确率 97.36% ~60-70% ~70-80%
上下文理解 有限
多级检测 有限
速度 快速 非常快速 中等
维护成本

🌟 为什么选择此模型?

  1. 最高准确率:优于传统基于规则的方法
  2. 上下文理解:使用 Transformer 架构进行深度理解
  3. 简单集成:与标准 transformers 库配合使用
  4. 经过实战检验:已被多个组织在生产环境中使用
  5. 积极维护:定期更新和社区支持

🤝 欢迎贡献

我们欢迎贡献!请随时:

  • 报告问题
  • 提出改进建议
  • 分享您的使用场景
  • 贡献文档

📚 引用

如果您在研究中使用此模型,请引用:

@misc{gibberish-detector-2021,
  author = {Madhur Jindal},
  title = {Gibberish Detector: High-Accuracy Text Classification Model},
  year = {2021},
  publisher = {Hugging Face},
  url = {https://huggingface.co/madhurjindal/autonlp-Gibberish-Detector-492513457}
}

📞 支持

📜 许可证

此模型基于 MIT 许可证授权。详见 LICENSE


<div align="center"> Made with ❤️ by <a href="https://huggingface.co/madhurjindal">Madhur Jindal</a> </div>

madhurjindal/autonlp-Gibberish-Detector-492513457

作者 madhurjindal

text-classification transformers
↓ 69.8K ♥ 66

创建时间: 2022-03-02 23:29:05+00:00

更新时间: 2025-05-14 12:42:57+00:00

在 Hugging Face 上查看

文件 (16)

.gitattributes
README.md
config.json
model.safetensors
onnx/config.json
onnx/model.onnx ONNX
onnx/special_tokens_map.json
onnx/tokenizer.json
onnx/tokenizer_config.json
onnx/vocab.txt
pytorch_model.bin
sample_input.pkl
special_tokens_map.json
tokenizer.json
tokenizer_config.json
vocab.txt