اكتشاف الرسائل المزعجة
يصنّف اكتشاف الرسائل المزعجة في Discuse النص باعتباره مزعجًا أو غير مزعج، مع درجة ثقة. أرسل النص إلى POST https://api.discuse.com/api/v2/check مع تفعيل check_spam، ثم اقرأ الحكم من results.spamfinder. يلتقط هذا النظام الرسائل الترويجية المزعجة، وعمليات الاحتيال، والضجيج الناتج عن الروبوتات الذي تفوته مرشحات الكلمات المفتاحية البسيطة.
ما الذي يلتقطه اكتشاف الرسائل المزعجة؟
دُرّب النموذج على الأنماط عالية الانتشار التي تتجاوز قوائم الحظر:
- الرسائل الترويجية المزعجة والإعلانات غير المرغوب فيها
- رسائل الاحتيال والتصيّد
- المحتوى الناتج عن الروبوتات والمحتوى المنسوخ والملصق
يعيد النموذج label واحدة (مثل spam أو ham) إلى جانب درجة confidence، بحيث يمكنك تحديد مدى الصرامة التي تريدها.
كيف أجري فحصًا للرسائل المزعجة؟
curl -X POST https://api.discuse.com/api/v2/check \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_API_KEY" \
-d '{
"content": {
"text": "CONGRATULATIONS! You won $10,000! Click here to claim: bit.ly/fake"
},
"settings": {
"check_spam": true
}
}'
تنسيق الاستجابة
{
"has_violations": true,
"cached": false,
"message": "Spam content detected",
"results": {
"hits": true,
"spamfinder": {
"text": "CONGRATULATIONS! You won $10,000! Click here to claim: bit.ly/fake",
"label": "spam",
"confidence": 0.97,
"is_spam": true,
"hit": true
}
},
"usage": {
"api_requests_used": 8,
"api_requests_limit": 5000,
"api_requests_remaining": 4992
}
}
ما الحقول التي تعيدها نتيجة الرسائل المزعجة؟
| الحقل | النوع | المعنى |
|---|---|---|
text |
string | النص الذي تم تصنيفه |
label |
string | تصنيف النموذج (مثل spam، ham) |
confidence |
number | درجة ثقة النموذج في التصنيف (0.0–1.0) |
is_spam |
bool | حكم النموذج الخام — label == spam، غير مرتبط بالعتبة |
hit |
bool | قرار يأخذ العتبة في الاعتبار — is_spam و confidence ≥ عتبة الرسائل المزعجة في مشروعك |
is_spam مقابل hit
is_spam هو الحكم الخام: صنّف النموذج النص كرسالة مزعجة بغض النظر عن مدى ثقته. أما hit فيتطلب أيضًا أن تتجاوز الثقة عتبة الرسائل المزعجة المكوّنة في مشروعك. اجعل إجراءات الإشراف مبنية على hit، لا على is_spam، حتى لا يؤدي تصنيف مزعج منخفض الثقة إلى معاقبة رسالة حدودية.
كيف أفسّر درجة الثقة؟
تعكس confidence مدى تأكد النموذج من label الخاصة به:
- 0.0 – 0.3: منخفضة جدًا — غالبًا محتوى مشروع.
- 0.3 – 0.5: منخفضة — حالة حدودية.
- 0.5 – 0.7: متوسطة — مثيرة للريبة.
- 0.7 – 0.9: عالية — من المرجح جدًا أنها رسالة مزعجة.
- 0.9 – 1.0: عالية جدًا — شبه مؤكدة أنها رسالة مزعجة.
العتبات الموصى بها
اضبط عتبة الرسائل المزعجة في مشروعك بما يناسب مستوى التحمّل في منصتك:
const SPAM_THRESHOLDS = {
strict: 0.5, // professional platforms, financial services
standard: 0.7, // social media, forums
permissive: 0.85 // creative platforms, open communities
};
حالات الاستخدام
أقسام التعليقات
async function moderateComment(comment) {
const result = await checkSpam(comment.text);
const spam = result.results.spamfinder;
if (spam.hit) {
if (spam.confidence > 0.9) {
return { action: 'reject', reason: 'spam_detected' };
}
return { action: 'review', reason: 'possible_spam' };
}
return { action: 'approve' };
}
تسجيل المستخدمين
def validate_registration(user_data):
bio = user_data.get('bio')
if bio:
result = check_spam(bio)
if result['results']['spamfinder']['hit']:
return {'approved': False, 'reason': 'Spam content detected in profile'}
return {'approved': True}
منصات المراسلة
async function filterMessage(message, sender) {
const result = await checkSpam(message.text);
const spam = result.results.spamfinder;
if (spam.hit) {
await incrementSpamCount(sender.id);
const spamCount = await getSpamCount(sender.id);
if (spamCount > 3) {
await banUser(sender.id, 'repeated_spam');
}
return { delivered: false, reason: 'Message filtered as spam' };
}
return { delivered: true };
}
الجمع مع فحوصات أخرى
شغّل فحص الرسائل المزعجة إلى جانب تحليل المشاعر واللغة في طلب واحد:
{
"content": {
"text": "Check out this amazing deal! Click here: example.com/offer"
},
"settings": {
"check_spam": true,
"check_sentiment": true,
"check_language": true
}
}
ستحمل الاستجابة بعد ذلك results.spamfinder و results.sentiment و results.language معًا.
أفضل الممارسات
استخدم استجابات متدرجة
بدلًا من الحظر/السماح الثنائي، فرّع القرار بناءً على الثقة:
function handleSpamResult(spam) {
if (!spam.hit) return 'allow';
if (spam.confidence > 0.95) return 'silent_delete';
if (spam.confidence > 0.8) return 'block_notify';
if (spam.confidence > 0.6) return 'flag_for_review';
return 'apply_friction';
}
تتبّع المخالفين المتكررين
async function assessUser(userId, spam) {
if (spam.hit) {
await incrementUserSpamScore(userId, spam.confidence);
}
const userScore = await getUserSpamScore(userId);
if (userScore > 10.0) await autoSuspendUser(userId);
else if (userScore > 5.0) await flagForManualReview(userId);
}
أدرج المستخدمين الموثوقين في القائمة البيضاء
تجاوز فحص الرسائل المزعجة للحسابات الموثّقة أو ذات الثقة العالية لتقليل النتائج الإيجابية الخاطئة وتوفير الحصة:
function shouldCheckSpam(user) {
if (user.isVerified) return false;
if (user.trustScore > 0.9) return false;
return true;
}
حدود الاستخدام
يستهلك اكتشاف الرسائل المزعجة من حصة تحليل المشاعر لديك:
| الخطة | التحليلات الشهرية | ملاحظات |
|---|---|---|
| Basic | 1,000 | تشمل الرسائل المزعجة + المشاعر |
| Gold | 5,000 | تشمل الرسائل المزعجة + المشاعر |
| Platinum | 15,000 | تشمل الرسائل المزعجة + المشاعر |
| Ultimate | 30,000 | تشمل الرسائل المزعجة + المشاعر |
لا تُحتسب الاستجابات المخزّنة مؤقتًا ضمن حصتك.
أمثلة التكامل
وسيط Express.js
const spamFilter = async (req, res, next) => {
if (req.body.text) {
const result = await checkSpam(req.body.text);
if (result.results.spamfinder.hit) {
return res.status(400).json({
error: 'spam_detected',
message: 'Your message was flagged as spam'
});
}
}
next();
};
app.post('/api/comments', spamFilter, createComment);
Python Flask
from functools import wraps
from flask import request, jsonify
def spam_filter(f):
@wraps(f)
def decorated(*args, **kwargs):
text = request.json.get('text')
if text:
result = check_spam(text)
if result['results']['spamfinder']['hit']:
return jsonify({
'error': 'spam_detected',
'message': 'Your message was flagged as spam'
}), 400
return f(*args, **kwargs)
return decorated
@app.route('/api/comments', methods=['POST'])
@spam_filter
def create_comment():
pass
الخطوات التالية
- تحليل النصوص - ادمج الرسائل المزعجة مع تقييم المشاعر
- اكتشاف اللغة - اكتشف لغة المحتوى وطبّقها
- دليل البدء السريع - احصل على أول مفتاح API لك