टेक्स्ट विश्लेषण: सेंटिमेंट, स्पैम और भाषा एक ही कॉल में
Discuse टेक्स्ट विश्लेषण एक ही POST https://api.discuse.com/api/v2/check अनुरोध में किसी संदेश को टॉक्सिसिटी, स्पैम और भाषा के लिए स्कोर करता है। अपना टेक्स्ट content.text में भेजें, X-API-Key हेडर से ऑथेंटिकेट करें, और हर चेक के परिणाम results के तहत पढ़ें।
टेक्स्ट एंडपॉइंट क्या जाँचता है?
एक /api/v2/check कॉल एक साथ तीन टेक्स्ट चेक चला सकती है:
- सेंटिमेंट: टॉक्सिसिटी, अपशब्द, धमकी और अपमान की स्कोरिंग, साथ ही नेगेटिव/टॉक्सिक निर्णय।
- स्पैम: प्रमोशनल स्पैम, स्कैम और बॉट द्वारा जनरेट किया गया टेक्स्ट, जिसे
labelऔर कॉन्फिडेंस स्कोर के रूप में लौटाया जाता है। - भाषा: पहचाना गया भाषा कोड, और वैकल्पिक रूप से किसी अपेक्षित भाषा के विरुद्ध लागू की जाने वाली जाँच।
हर चेक तभी चलता है जब वह सक्षम हो—या तो आपकी प्रोजेक्ट सेटिंग्स में, या हर अनुरोध के settings ऑब्जेक्ट के ज़रिए।
मैं टेक्स्ट एंडपॉइंट को कैसे कॉल करूँ?
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": "This is an example message to analyze"
},
"settings": {
"check_sentiment": true,
"check_spam": true,
"check_language": true
}
}'
content.text 10,000 अक्षरों तक स्वीकार करता है। API की को X-API-Key हेडर में या अनुरोध बॉडी में api_key के रूप में भेजा जा सकता है।
प्रतिक्रिया
{
"has_violations": false,
"cached": false,
"message": "Content appears safe",
"results": {
"hits": false,
"sentiment": {
"hit": false,
"is_negative": false,
"is_toxic": false,
"score": 0.04,
"toxicity": 0.02,
"toxic": 0.02,
"profanity": 0.01,
"threat": 0.00,
"insult": 0.03
},
"spamfinder": {
"text": "This is an example message to analyze",
"label": "ham",
"confidence": 0.12,
"is_spam": false,
"hit": false
},
"language": {
"language": "en",
"confidence": 0.98,
"hit": false
}
},
"usage": {
"api_requests_used": 41,
"api_requests_limit": 5000,
"api_requests_remaining": 4959
}
}
has_violations, results.hits को ही दर्शाता है: जब किसी भी सक्षम चेक का hit फ्लैग सक्रिय होता है, तो यह true होता है। processing_time_ms केवल तब मौजूद होता है जब आपकी प्रोजेक्ट सेटिंग्स में टाइमिंग सक्षम हो।
सेंटिमेंट विश्लेषण
सेंटिमेंट चेक 0.0 से 1.0 तक का निर्णय और हर आयाम के अलग-अलग स्कोर, दोनों लौटाता है।
| फ़ील्ड | प्रकार | अर्थ |
|---|---|---|
is_negative |
bool | संदेश नेगेटिव प्रतीत होता है |
is_toxic |
bool | संदेश टॉक्सिसिटी थ्रेशोल्ड को पार करता है |
score |
number | कुल सेंटिमेंट/गंभीरता स्कोर |
toxicity |
number | टॉक्सिसिटी कॉन्फिडेंस (0.0–1.0) |
toxic |
number | टॉक्सिसिटी कॉन्फिडेंस (toxicity का लेगेसी एलियस) |
profanity |
number | स्पष्ट/अपमानजनक भाषा का कॉन्फिडेंस |
threat |
number | नुकसान पहुँचाने की धमकी का कॉन्फिडेंस |
insult |
number | व्यक्तिगत हमले का कॉन्फिडेंस |
hit |
bool | जब संदेश सेंटिमेंट थ्रेशोल्ड का उल्लंघन करता है, तब True |
message |
string | वैकल्पिक स्पष्टीकरण |
मैं सेंटिमेंट स्कोर को कैसे समझूँ?
स्कोर यह बताता है कि मॉडल को कितना विश्वास है कि वह आयाम लागू होता है:
- 0.0 – 0.3: कम, आम तौर पर सुरक्षित।
- 0.3 – 0.6: मध्यम, समीक्षा की आवश्यकता हो सकती है।
- 0.6 – 0.8: अधिक, संभवतः समस्याजनक।
- 0.8 – 1.0: बहुत अधिक, लगभग निश्चित रूप से उल्लंघनकारी।
उदाहरण: टॉक्सिक कंटेंट
अनुरोध:
{
"content": {
"text": "You're the worst person I've ever met. I hate everything about you."
},
"settings": { "check_sentiment": true }
}
प्रतिक्रिया:
{
"has_violations": true,
"results": {
"hits": true,
"sentiment": {
"hit": true,
"is_negative": true,
"is_toxic": true,
"score": 0.91,
"toxicity": 0.89,
"toxic": 0.89,
"profanity": 0.15,
"threat": 0.22,
"insult": 0.95
}
}
}
स्पैम डिटेक्शन
स्पैम चेक टेक्स्ट को वर्गीकृत करता है और कॉन्फिडेंस स्कोर के साथ एक ही label लौटाता है। यह उन पैटर्न को पकड़ता है जो कीवर्ड ब्लॉकलिस्ट से बच निकलते हैं: प्रमोशनल स्पैम, स्कैम और फिशिंग, और बॉट द्वारा जनरेट किया गया टेक्स्ट।
उदाहरण: स्पैम कंटेंट
अनुरोध:
{
"content": {
"text": "CONGRATULATIONS! You've won $10,000! Click here to claim: www.fake-prize.com"
},
"settings": { "check_spam": true }
}
प्रतिक्रिया:
{
"has_violations": true,
"results": {
"hits": true,
"spamfinder": {
"text": "CONGRATULATIONS! You've won $10,000! Click here to claim: www.fake-prize.com",
"label": "spam",
"confidence": 0.97,
"is_spam": true,
"hit": true
}
}
}
is_spam मॉडल का कच्चा निर्णय है (मॉडल ने टेक्स्ट को स्पैम के रूप में लेबल किया)। hit थ्रेशोल्ड को ध्यान में रखकर लिया गया निर्णय है: यह केवल तब true होता है जब is_spam true हो और confidence आपके प्रोजेक्ट के स्पैम थ्रेशोल्ड को पार कर जाए। मॉडरेशन के लिए is_spam नहीं, बल्कि hit पर भरोसा करें। विवरण के लिए स्पैम डिटेक्शन गाइड देखें।
भाषा पहचान
content.text का भाषा कोड पहचानने के लिए check_language सेट करें। परिणाम results.language.language में मिलता है (उदाहरण के लिए "en", "fr", "es")।
अनुरोध:
{
"content": { "text": "Bonjour, comment allez-vous aujourd'hui?" },
"settings": { "check_language": true }
}
प्रतिक्रिया:
{
"results": {
"language": {
"language": "fr",
"confidence": 0.99,
"hit": false
}
}
}
ऐसे कंटेंट को फ्लैग करने के लिए जो आपकी अपेक्षित भाषा में नहीं है, expected_language सेट करें। जब पहचानी गई भाषा अलग होती है, तो language.hit true होता है और expected/detected भरे जाते हैं:
{
"content": { "text": "Hola, cómo estás?" },
"settings": { "check_language": true, "expected_language": "en" }
}
{
"results": {
"language": {
"language": "es",
"detected": "es",
"expected": "en",
"confidence": 0.95,
"hit": true
}
}
}
पूरी भाषा सूची और एनफोर्समेंट पैटर्न के लिए भाषा पहचान देखें।
मैं कौन-से चेक टॉगल कर सकता हूँ?
वैकल्पिक settings ऑब्जेक्ट एक ही अनुरोध के लिए आपकी प्रोजेक्ट डिफ़ॉल्ट सेटिंग्स को ओवरराइड करता है। टेक्स्ट से संबंधित टॉगल ये हैं:
| सेटिंग | प्रकार | प्रभाव |
|---|---|---|
check_sentiment |
bool | सेंटिमेंट विश्लेषण चलाएँ |
check_spam |
bool | स्पैम डिटेक्शन चलाएँ |
check_language |
bool | भाषा पहचान चलाएँ |
check_badwords |
bool | बैडवर्ड्स ब्लॉकलिस्ट चलाएँ |
expected_language |
string | लागू करने के लिए भाषा कोड (जैसे "en") |
{
"content": { "text": "Your message here" },
"settings": {
"check_sentiment": true,
"check_spam": true,
"check_language": true,
"expected_language": "en"
}
}
उपयोग सीमाएँ
सेंटिमेंट, स्पैम और भाषा पहचान प्रति-प्लान सेंटिमेंट-विश्लेषण कोटा से उपयोग होती हैं:
| प्लान | सेंटिमेंट विश्लेषण/माह |
|---|---|
| Basic | 1,000 |
| Gold | 5,000 |
| Platinum | 15,000 |
| Ultimate | 30,000 |
कैश की गई प्रतिक्रियाएँ आपके कोटा में नहीं गिनी जातीं। हर प्रतिक्रिया में मौजूद usage ऑब्जेक्ट api_requests_used, api_requests_limit, और api_requests_remaining बताता है।
सर्वोत्तम अभ्यास
हर प्लेटफ़ॉर्म के लिए थ्रेशोल्ड सेट करें
अलग-अलग ऑडियंस के लिए अलग-अलग सेंटिमेंट कटऑफ लागू करें:
const THRESHOLDS = {
kids: { toxicity: 0.3, profanity: 0.2, threat: 0.2, insult: 0.3 },
general: { toxicity: 0.5, profanity: 0.5, threat: 0.4, insult: 0.5 },
adult: { toxicity: 0.7, profanity: 0.8, threat: 0.5, insult: 0.7 }
};
संदर्भ का ध्यान रखें
क्लिनिकल, पत्रकारिता और काल्पनिक कंटेंट कभी-कभी वैध रूप से टॉक्सिसिटी और अपशब्द स्कोर ट्रिगर कर सकते हैं। सीमांत मामलों के लिए ऑटोमेटेड स्कोरिंग को मानव समीक्षा के साथ मिलाएँ:
const sentiment = result.results.sentiment;
if (sentiment.toxicity > 0.9) {
await removeContent(contentId); // high confidence: auto-remove
} else if (sentiment.toxicity > 0.5) {
await queueForReview(contentId); // borderline: human review
} else {
await approveContent(contentId);
}
इंटीग्रेशन उदाहरण
JavaScript
async function analyzeText(text) {
const response = await fetch('https://api.discuse.com/api/v2/check', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-API-Key': process.env.DISCUSE_API_KEY
},
body: JSON.stringify({
content: { text },
settings: { check_sentiment: true, check_spam: true, check_language: true }
})
});
return response.json();
}
const result = await analyzeText('Hello, how are you?');
console.log(result.has_violations); // false
Python
import os
import requests
def analyze_text(text):
response = requests.post(
'https://api.discuse.com/api/v2/check',
headers={
'Content-Type': 'application/json',
'X-API-Key': os.environ['DISCUSE_API_KEY']
},
json={
'content': {'text': text},
'settings': {
'check_sentiment': True,
'check_spam': True,
'check_language': True
}
}
)
return response.json()
result = analyze_text('Hello, how are you?')
print(result['has_violations']) # False
टेक्स्ट विश्लेषण लागू करने के लिए तैयार हैं? चरण-दर-चरण सेटअप के लिए क्विक स्टार्ट गाइड देखें।