- आइसलैंडिक व्यक्तिगत नामों की विभक्ति (डिक्लेंशन) हैंडलिंग संदर्भ के आधार पर चार अलग-अलग रूप लेती है
- डेटा-आधारित JavaScript लाइब्रेरी के माध्यम से इनपुट किए गए नाम के लिए उपयुक्त व्याकरणिक केस लौटाने की सुविधा विकसित की गई
- सभी नामों को सीधे स्टोर करने पर आकार बढ़ने और डेटा की कमी (missing data) की समस्या आती है, इसलिए trie संरचना और compression तकनीक का उपयोग कर इसे हल किया गया
- trie compression की मदद से सामान्य पैटर्न-आधारित स्वचालित अनुमान संभव हुआ और कुल डेटा का 80% से अधिक कवर करने वाला बहुत छोटा डेटाबेस हासिल किया गया
- सामान्य परिस्थितियों में 74% से अधिक सटीकता मिलती है, जबकि सार्वजनिक क्षेत्र और उच्च-सटीकता मामलों के लिए अलग strict संस्करण उपलब्ध है
समस्या की पृष्ठभूमि
- आइसलैंडिक इंटरफ़ेस में व्यक्तिगत नाम दिखाते समय विभक्ति (declension) के कारण समस्या आती है
- आइसलैंडिक नाम प्रथमा (nominative), कर्म (accusative), दत्तिव (dative), संबंध (genitive) सहित चार व्याकरणिक विभक्तियों के अनुसार अलग-अलग रूप लेते हैं
- डेटाबेस में नाम आमतौर पर प्रथमा रूप में ही सेव होते हैं, इसलिए संदर्भ के अनुसार अलग केस की जरूरत होने पर कठिनाई होती है
- गलत रूप उपयोग करने पर टेक्स्ट में ‘देशी/नेटिव’ जैसा प्राकृतिक एहसास नहीं मिलता और भाषा अटपटी लगती है
डेटा संग्रह और शुद्धिकरण
- आइसलैंड में Árnastofnun द्वारा संचालित DIM (Database of Icelandic Morphology) डेटा सार्वजनिक किया गया
- नामों के लिए विभक्ति डेटा को Kristín’s Format(K-format) CSV में प्रोसेस किया जा सकता है
- DIM का पूरा डेटा 7 मिलियन पंक्तियों का है, जो बहुत बड़ा है; इसलिए केवल 4,500 आधिकारिक मान्य व्यक्तिगत नाम चुनकर करीब 3,600 नामों के लिए विभक्ति जानकारी प्राप्त की गई
- प्रत्येक नाम के लिए प्रथमा से संबंध (genitive) तक के रूपों का ऐरे बनाया जा सकता है
लाइब्रेरी का मूल ढांचा
- शुरुआत एक ऐसा applyCase फ़ंक्शन बनाकर की गई थी जो नाम और केस-वैरिएंट ऐरे से उपयुक्त रूप लौटाता था
- लेकिन सरल ऐरे-लोडिंग तरीके में आकार (30kB gzipped) काफी बड़ा था
- डेटासेट में मौजूद न होने वाले नामों के लिए कोई आउटपुट नहीं दे पाने की सीमा थी
डुप्लिकेट हटाना और पैटर्न निकालना
- नाम के चार रूपों में मौजूद साझा उपसर्ग (common prefix) निकालकर प्रत्येक के लिए केवल suffix सेट (suffix encoding) संग्रहित किया गया ताकि दोहराव घटे
- कई नामों में एक ही विभक्ति-पैटर्न का पालन होने का पता चला
पैटर्न मैचिंग के लिए trie का प्रयोग
- trie संरचना (साफ़िक्स-आधारित उल्टा insertion) के जरिए समान पैटर्न साझा करने वाले नाम समूहों में मान-मैपिंग का ऑप्टिमाइज़ेशन किया गया
- सामान्य नाम-अंत (name endings) के तहत विभक्ति जानकारी केवल एक बार स्टोर करके नए नामों पर भी उच्च अनुमान क्षमता मिलती है
trie compression और ऑप्टिमाइज़ेशन प्रक्रिया
- जहाँ किसी subtree के प्रत्येक leaf का मान समान था, वहाँ वह मान parent नोड को दे दिया गया और बच्चों को हटाकर tree compress किया गया
- इससे नोड की संख्या 15.4% तक घटी और आकार 4.01kB तक कम हुआ
- सिब्लिंग leaf नोड्स जिनका मान समान था, उन्हें एक नोड में मर्ज करने वाली दूसरी compression से 3.27kB तक पहुँचा गया
trie परफॉरमेंस और जनरलाइजेशन
- नए नाम इनपुट करने पर, समान पैटर्न-आधारित स्वचालित विभक्ति अनुमान संभव हो जाता है
- वास्तविक अज्ञात नामों पर 74% सही विभक्ति और 26% गलत परिणाम आए; वास्तविक उपयोगकर्ता आधार पर त्रुटि दर केवल 0.34% रही
- डेटा की regularity और comprehensiveness जितनी अधिक हो, compression तथा स्वचालित अनुमान की सटीकता में उसी अनुपात में सुधार होता है
वास्तविक लाइब्रेरी और अपनाना
- अंतिम रूप से compressed trie इस्तेमाल करने वाली beygla लाइब्रेरी जारी की गई
- न्यूनतम आकार (4.46kB) और अधिक कठोर, पूर्णतः सही strict मॉड्यूल (15kB) के साथ उपलब्ध कराया गया
- जहाँ 100% accuracy जरूरी है (जैसे सार्वजनिक दस्तावेज़), वहाँ strict संस्करण, जबकि सामान्य वेब ऐप्स के लिए हल्का संस्करण चुना जा सकता है
निष्कर्ष और स्केलेबिलिटी
- trie-आधारित भाषायी विभक्ति-पैटर्न डेटा compression सिर्फ आइसलैंडिक ही नहीं, अन्य विभक्ति-प्रधान भाषाओं के नाम, पते और अन्य संज्ञाओं के स्वचालित प्रोसेसिंग में भी लागू की जा सकती है
- अत्यधिक नियमित डेटा और trie compression का संयोजन रूपांतरण/विभक्ति-प्रोसेसिंग के स्वचालन में डेटा और परफॉरमेंस दोनों की बेहतर दक्षता देता है
संदर्भ/आभार
- beygla के निर्माण में कई विशेषज्ञ फीडबैक और अतिरिक्त ऑप्टिमाइज़ेशन किए गए
- trie की अतिरिक्त compression से आकार 3.43kB से 3.27kB तक घटाया गया
सारांश
- आइसलैंडिक नाम विभक्ति स्वतःकरण को पैटर्न-आधारित trie डेटा संरचना से छोटा और स्वचालित बनाने का उदाहरण प्रस्तुत किया गया है
- सही आकार-और-सटीकता के trade-off को ध्यान में रखते हुए व्यावहारिक डेटा हैंडलिंग रणनीति के लिए यह एक मजबूत संकेत देता है
अभी कोई टिप्पणी नहीं है.