किसी वॉइस असिस्टेंट का रूटिंग लॉजिक कुछ भी जवाब देने की कोशिश करने से पहले यह जानने पर निर्भर करता है कि उसे किस प्रकार का वाक्य मिला है। एक प्रश्न को उत्तर चाहिए। एक आदेश को निष्पादन चाहिए। एक कथन को शायद स्वीकृति या भंडारण चाहिए। उपयोगकर्ता जो भी भाषा बोले, उसमें यह वर्गीकरण सही करना बाकी सब चीज़ों की पूर्वशर्त है।
sentence-types-multilingual उसी परत के पीछे का प्रशिक्षण कॉर्पस है — 69,300 लेबल किए गए वाक्य, सात भाषाओं में से हर एक के लिए 9,900: अंग्रेज़ी, स्पेनिश, फ़्रेंच, जर्मन, इतालवी, पुर्तगाली और डच।
व्यवहार में लेबल्स का क्या मतलब है
डेटासेट छह लेबलों का एक सपाट सेट इस्तेमाल करता है — प्रति पंक्ति एक label कॉलम, कोई प्रकार/उप-प्रकार विभाजन नहीं — जो सीधे इस बात से मेल खाते हैं कि little_questions (इस डेटा का उपभोग करने वाली इन्फ़रेंस लाइब्रेरी) उच्चारणों को कैसे रूट करती है:
- wh_question — किसी wh-शब्द (क्या, कहाँ, कौन, आदि) के इर्द-गिर्द बने प्रश्न।
- polar_question — हाँ/ना वाले प्रश्न।
little_questionsके भीतर की EAT टैक्सोनॉमी प्रश्न लेबलों के ऊपर 53 सूक्ष्म उत्तर-प्रकार लेबल (व्यक्ति, स्थान, मात्रा, परिभाषा, आदि) जोड़ती है, पर वाक्य-प्रकार वर्गीकरण पहला द्वार है। - command — आदेशात्मक रूप। आदेश उत्तर की अपेक्षा नहीं करते; वे एक क्रिया की अपेक्षा करते हैं।
- request — क्रिया के लिए विनम्र या अप्रत्यक्ष अनुरोध, एक नंगे आदेश से अलग।
- statement — कथनात्मक। संवाद संदर्भ में कथन अक्सर एक ध्रुवीयता (polarity) साथ लाते हैं जो आगे मायने रखती है: पूर्व प्रश्नों के उत्तरों की व्याख्या के लिए कथनों पर एक yes/no/maybe वर्गीकारक चलता है।
- exclamation — भावनात्मक रूप से चिह्नित उच्चारण जिन्हें तटस्थ कथनों से अलग संभालना पड़ता है।
{
"language": "en",
"label": "wh_question",
"text": "What time is it?"
}
अंतर-भाषिक कवरेज तुच्छ क्यों नहीं है
वही संप्रेषणीय आशय अलग-अलग व्याकरणों में अलग तरह से उभरता है:
- अंग्रेज़ी प्रश्नों को शब्द-क्रम उलटाव से चिह्नित करती है; पुर्तगाली और स्पेनिश अक्सर उन्हें केवल विराम-चिह्न और स्वराघात से चिह्नित करती हैं, शब्द-क्रम अछूता छोड़कर।
- जर्मन क्रियाओं को वाक्य-अंत स्थिति तक ऐसे तरीक़ों से अलग करती है जो वर्गीकरणकारी संकेत की जगह बदल देते हैं।
- रोमांस भाषाएँ आदेशों के लिए समर्पित आदेशात्मक आकृति-विज्ञान (morphology) इस्तेमाल करती हैं, जिसे अंग्रेज़ी नंगी क्रिया से व्यक्त करती है।
केवल अंग्रेज़ी पर प्रशिक्षित एक मॉडल इन्हें हर दूसरी जगह ग़लत कर देता है। सातों भाषाओं में समानांतर लेबल किया गया डेटा वह अंतर-भाषिक संकेत देता है जो प्रति-भाषा वर्गीकारकों को चाहिए — और वही जनरेशन पाइपलाइन आगे और भाषाओं तक विस्तृत होती है जैसे-जैसे वे जोड़ी जाती हैं।
डाउनस्ट्रीम स्टैक
इस डेटा पर प्रशिक्षित मॉडल little_questions के भीतर आते हैं — एक शून्य-निर्भरता वाली ऑफ़लाइन लाइब्रेरी (numpy + onnxruntime) जिसमें वाक्य-प्रकार के लिए प्रति-भाषा ONNX वर्गीकारक और एक 43-भाषा yes/no ध्रुवीयता मॉडल है। मॉडल अंग्रेज़ी के लिए in-wheel बंडल किए गए हैं और अन्य भाषाओं के लिए आलस्य से (lazy) डाउनलोड होते हैं। वाक्य-प्रकार वर्गीकारक HuggingFace पर TigreGotico/sentence-types के रूप में प्रकाशित हैं; EAT उत्तर-प्रकार वर्गीकारक आंतरिक रूप से प्रशिक्षित किए जाते हैं और सार्वजनिक रूप से जारी नहीं किए जाते।
from little_questions import Sentence
s = Sentence("What time is it?")
print(s.sentence_type) # "question"
print(s.classification) # e.g. "NUM:date"
little_questions OVOS और LILACS के लिए प्राकृतिक-भाषा रूटिंग परत है: यह वर्गीकृत करना कि कोई उच्चारण प्रश्न है, आदेश है या कथन — यही पहला डिस्पैच निर्णय है जो एक वॉइस पाइपलाइन लेती है।
HuggingFace पर sentence-types-multilingual · GitHub पर little_questions