भाषा पहचान
Discuse किसी संदेश की भाषा पहचानता है, ताकि उस पर कार्रवाई करने से पहले आप सही मॉडरेशन नियम लागू कर सकें। check_language सक्षम करके टेक्स्ट को POST https://api.discuse.com/api/v2/check पर भेजें, और पहचाने गए भाषा कोड को results.language.language से पढ़ें। जिस भाषा की आपको आवश्यकता है, उससे अलग सामग्री को फ़्लैग करने के लिए expected_language जोड़ें।
भाषा पहचान किस काम आती है?
पहले से भाषा पहचान लेने से आप:
- भाषा-विशिष्ट मॉडरेशन थ्रेशहोल्ड लागू कर सकते हैं
- सामग्री को सही समीक्षकों या सपोर्ट टीम तक भेज सकते हैं
- कम्युनिटी की भाषा नीति लागू कर सकते हैं
- फ़ीड को भाषा के आधार पर फ़िल्टर या स्थानीयकृत कर सकते हैं
मैं भाषा कैसे पहचानूँ?
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": "Bonjour, comment allez-vous aujourd'\''hui?"
},
"settings": {
"check_language": true
}
}'
प्रतिक्रिया फ़ॉर्मैट
{
"has_violations": false,
"cached": false,
"results": {
"language": {
"language": "fr",
"confidence": 0.99,
"hit": false
}
}
}
पहचाना गया भाषा कोड results.language.language में होता है। जब expected_language लागू होता है, तो detected और expected भी भरे जाते हैं (नीचे देखें)।
भाषा परिणाम कौन-से फ़ील्ड लौटाता है?
| Field | Type | Meaning |
|---|---|---|
language |
string | पहचाना गया भाषा कोड (जैसे en, fr, es) |
confidence |
number | पहचान का भरोसा स्तर (0.0–1.0) |
expected |
string | लागू किया गया भाषा कोड, जब expected_language सेट हो |
detected |
string | पहचाना गया कोड (language का उपनाम, एनफ़ोर्समेंट के दौरान भरा जाता है) |
hit |
bool | जब पहचानी गई भाषा expected से मेल नहीं खाती, तो True |
delete_only |
bool | True होने पर, संदेश को आगे कोई दंड दिए बिना हटा देना चाहिए |
error |
string | केवल तब मौजूद होता है जब पहचान विफल हो |
कौन-सी भाषाएँ समर्थित हैं?
Discuse ISO-शैली के भाषा कोड लौटाता है। आम तौर पर पहचानी जाने वाली भाषाओं में शामिल हैं:
| Code | Language | Code | Language |
|---|---|---|---|
en |
अंग्रेज़ी | de |
जर्मन |
es |
स्पेनिश | fr |
फ़्रेंच |
it |
इतालवी | pt |
पुर्तगाली |
nl |
डच | pl |
पोलिश |
ru |
रूसी | uk |
यूक्रेनी |
zh |
चीनी | ja |
जापानी |
ko |
कोरियाई | ar |
अरबी |
hi |
हिन्दी | tr |
तुर्की |
किसी तय सूची को हार्डकोड करने के बजाय मान को सीधे results.language.language से पढ़ें।
मैं किसी खास भाषा को कैसे लागू करूँ?
expected_language को उस कोड पर सेट करें जिसकी आपको आवश्यकता है। जब पहचानी गई भाषा अलग होती है, तो language.hit true होता है और expected/detected भर दिए जाते हैं:
अनुरोध:
{
"content": { "text": "Hola, cómo estás?" },
"settings": {
"check_language": true,
"expected_language": "en"
}
}
प्रतिक्रिया:
{
"has_violations": true,
"message": "Content is not in expected language",
"results": {
"hits": true,
"language": {
"language": "es",
"detected": "es",
"expected": "en",
"confidence": 0.97,
"hit": true
}
}
}
उपयोग के मामले
केवल अंग्रेज़ी वाले फ़ोरम
async function validatePost(post) {
const result = 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: post.content },
settings: { check_language: true, expected_language: 'en' }
})
}).then(r => r.json());
if (result.results.language.hit) {
return {
approved: false,
reason: 'Posts must be in English',
detected_language: result.results.language.language
};
}
return { approved: true };
}
बहु-भाषा रूटिंग
async function routeContent(content) {
const result = await checkLanguage(content.text);
const language = result.results.language.language;
const moderatorQueue = {
en: 'english-moderation',
es: 'spanish-moderation',
fr: 'french-moderation',
de: 'german-moderation',
default: 'general-moderation'
};
const queue = moderatorQueue[language] || moderatorQueue.default;
await addToQueue(queue, content);
return { queued: true, language };
}
कंटेंट मॉडरेशन के साथ संयोजन
एक ही अनुरोध में sentiment और spam के साथ भाषा पहचान चलाएँ:
{
"content": {
"text": "User message in any language"
},
"settings": {
"check_language": true,
"check_sentiment": true,
"check_spam": true
}
}
इसके बाद पहचानी गई भाषा आपके प्रति-भाषा sentiment थ्रेशहोल्ड तय कर सकती है:
const LANGUAGE_THRESHOLDS = {
en: { toxicity: 0.7, profanity: 0.6 },
de: { toxicity: 0.6, profanity: 0.5 },
es: { toxicity: 0.7, profanity: 0.7 },
default: { toxicity: 0.7, profanity: 0.6 }
};
async function moderateContent(text) {
const result = await checkText(text); // check_language + check_sentiment
const language = result.results.language.language;
const thresholds = LANGUAGE_THRESHOLDS[language] || LANGUAGE_THRESHOLDS.default;
const sentiment = result.results.sentiment;
if (sentiment.toxicity > thresholds.toxicity) {
return { action: 'block', reason: 'toxic_content' };
}
if (sentiment.profanity > thresholds.profanity) {
return { action: 'flag', reason: 'profanity' };
}
return { action: 'allow' };
}
सर्वोत्तम तरीके
छोटे टेक्स्ट का ध्यान रखें
बहुत छोटी स्ट्रिंग पर पहचान कम भरोसेमंद होती है। न्यूनतम लंबाई से कम होने पर जाँच छोड़ दें:
async function smartLanguageCheck(text) {
if (text.length < 20) {
return { language: 'unknown', confidence: 0 };
}
const result = await checkLanguage(text);
return result.results.language;
}
परिणाम कैश करें
async function getLanguageWithCache(text, contentId) {
const cached = await cache.get(`lang:${contentId}`);
if (cached) return JSON.parse(cached);
const result = await checkLanguage(text);
const language = result.results.language;
await cache.set(`lang:${contentId}`, JSON.stringify(language), 'EX', 3600);
return language;
}
उपयोग सीमाएँ
भाषा पहचान आपके टेक्स्ट-विश्लेषण कोटा से ली जाती है:
| Plan | Monthly Analyses |
|---|---|
| Basic | 1,000 |
| Gold | 5,000 |
| Platinum | 15,000 |
| Ultimate | 30,000 |
कैश की गई प्रतिक्रियाएँ आपके कोटा में नहीं गिनी जातीं।
इंटीग्रेशन उदाहरण
Node.js
const checkLanguage = async (text, expectedLanguage = null) => {
const settings = { check_language: true };
if (expectedLanguage) settings.expected_language = expectedLanguage;
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 })
});
return response.json();
};
Python
import os
import requests
def check_language(text, expected_language=None):
settings = {'check_language': True}
if expected_language:
settings['expected_language'] = expected_language
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': settings}
)
return response.json()
अगले कदम
- टेक्स्ट विश्लेषण - sentiment और spam detection के साथ जोड़ें
- Spam Detection - प्रचारात्मक और scam सामग्री को वर्गीकृत करें
- क्विक स्टार्ट गाइड - अपनी पहली API key प्राप्त करें