एक ही तरह की एंटिटी को बार-बार संवर्धित करें और आप बार-बार वही वास्तविक-दुनिया की चीज़ें फिर से खोजते रहते हैं — वही कंपनी, वही दवा का साइड-इफ़ेक्ट, वही व्यक्ति — हर बार थोड़े अलग शब्दों में वर्णित। एक सिमेंटिक ID एक स्थिर, संगठन-स्कोप्ड पहचानकर्ता है जिसे Entity Enricher किसी ऑब्जेक्ट को उसके प्रमुख फ़ील्ड्स से असाइन करता है, ताकि वे निकट-डुप्लिकेट्स एक पहचान में सिमट जाएँ जिस पर आप समूह बना सकते हैं, डिडुप्लिकेट कर सकते हैं, और जॉइन कर सकते हैं।
किसी object की पहचान उसके key फ़ील्ड से बनती है — और ये एक या कई हो सकते हैं। दो उदाहरण:
name द्वारा कीड किया गया एक साइड-इफ़ेक्टयह विभिन्न runs और भाषाओं में Headache, Céphalée, और Cephalalgia के रूप में दिखता है। एक key फ़ील्ड, तीन वर्तनियाँ, एक वास्तविक concept।
name + country द्वारा keyed एक कंपनीAcme Inc. · United States और Acme Incorporated · United States एक ही कंपनी हैं — जबकि Acme Inc. · Germany एक अलग कंपनी है। दूसरी की अस्पष्टता दूर करती है; इसीलिए एक ऑब्जेक्ट एक से अधिक की रख सकता है।
साधारण स्ट्रिंग मिलान इन सभी पर विफल हो जाता है; एक इंसान जानता है कि कौन-से समान हैं। Semantic ID उस निर्णय को स्वतः एनकोड कर देते हैं।
string प्रॉपर्टी (डिफ़ॉल्ट रूप से id नामित), जो एक अपारदर्शी, स्थिर पहचानकर्ता रखती है।manufacturer), या किसी array में प्रत्येक आइटम (जैसे प्रत्येक side_effect)।मॉडल का परिणाम लौटाने के बाद, Entity Enricher हर सिमेंटिक ID को छह चरणों में हल करता है — सबसे सस्ता पहले। एम्बेडिंग से पहले के चार चरण केवल टेक्स्ट तुलना हैं, इसलिए वहीं तय हो जाने वाली पहचान पर कोई लागत नहीं आती:
null हो जाता है, और सूची के भीतर का आइटम सूची से हटा दिया जाता है। enrich की गई entity स्वयं कभी नहीं हटाई जाती; उसके पास बस कोई ID नहीं होती।LC-39A बाकी टेक्स्ट के हर लिखावट-रूप को एक कर देता है। उतना ही अहम यह है कि यह उल्टा भी काम करता है: अलग कोड उस मर्ज को वीटो कर देता है जिसे एम्बेडिंग स्टेप वरना स्वीकार कर लेता, क्योंकि अलग पहचानकर्ता वाली दो चीज़ें दो ही होती हैं, चाहे पढ़ने में कितनी भी एक जैसी लगें।“Boeing” और “The Boeing Company”। यह ठीक उन्हीं शब्द-विस्तार के अंतरों को पकड़ लेता है जिन्हें एम्बेडिंग बहुत दूर मापती है, और इसकी कोई लागत नहीं: exact-text चरण की तरह, यहाँ मैच मिलने का मतलब है कोई एम्बेडिंग कॉल नहीं और कोई शुल्क नहीं।“Acme Inc.” और“Acme Incorporated” एक-दूसरे के पास आएं।0.92, हर प्रॉपर्टी के लिए ट्यून किया जा सकता है) से ऊपर स्कोर करता है, तो उस कॉन्सेप्ट का ID दोबारा इस्तेमाल होता है। अन्यथा एक बिल्कुल नया ID बनाकर अगली बार के लिए सहेज लिया जाता है। एक अपवाद ऊँचे स्कोर पर भी भारी पड़ता है: जब दोनों टेक्स्ट एक ही शब्द हों पर उनमें गिनती अलग हो — “दूसरा चरण” और“तीसरा चरण” — तो उन्हें अलग-अलग चीज़ें माना जाता है, क्योंकि गिनती ही उन्हें एक-दूसरे से अलग करती है। एक ही संख्या दो तरह से लिखी हो (2 औरII) तो भी मैच होती है।थ्रेशोल्ड ट्रेड-ऑफ: उच्च थ्रेशोल्ड अधिक सख्त होता है (कम आकस्मिक मर्ज); निम्न थ्रेशोल्ड अधिक ढीला होता है (अधिक आक्रामक डीडुप्लीकेशन)। जब डिफ़ॉल्ट 0.92 अधिक या कम मर्ज करे तो इसे प्रति प्रॉपर्टी ट्यून करें।
कोई ID जनरेट होगी या नहीं, यह इस पर निर्भर करता है कि उस ऑब्जेक्ट के लिए इनपुट में पहले से कोई मौजूद है या नहीं। यही आपको राउंड-ट्रिप की सुविधा देता है: IDs पाने के लिए एक बार संवर्धन करें, फिर बाद के रन में किसी ज्ञात ID को वापस पास करके उसी पहचान से नए तथ्य जोड़ें — सस्ता और स्पष्ट।
यदि आपके द्वारा भेजा गया ऑब्जेक्ट पहले से एक सिमेंटिक ID रखता है, तो उसे एक lookup के रूप में माना जाता है: ID अक्षरशः रखा जाता है, रिकॉर्ड को उस मौजूदा concept से जोड़ा जाता है, और कोई embedding नहीं — कोई लागत नहीं, कोई match-or-mint नहीं। आप प्लेटफ़ॉर्म को बता रहे हैं “यह ऑब्जेक्ट हमारे डेटाबेस में पहले से पहचाना हुआ है।”
अगर ऑब्जेक्ट के पास कोई सिमैंटिक ID नहीं है, तो प्लेटफ़ॉर्म ऊपर बताए गए चरणों से एक बना देता है। उसके बाद वही ID आपके ऑर्गनाइज़ेशन के डेटाबेस में उस ऑब्जेक्ट का स्थायी पहचानकर्ता बन जाती है।
मौजूद लेकिन अपहचान योग्य मान (असली concept ID नहीं) को अनदेखा कर दिया जाता है, और इसके बजाय एक ID जनरेट किया जाता है।
रिज़ॉल्यूशन में प्रति एनरिचमेंट थोड़ी एम्बेडिंग उपयोग लागत लगती है (किसी भी मॉडल कॉल की तरह मीटर की जाती है)। एग्ज़ैक्ट-मैच कैश दोहरावों को मुफ़्त बना देता है, और इनपुट में दिए गए ID की कोई लागत नहीं होती।
रिज़ॉल्व की गई ID एनरिचमेंट आउटपुट JSON में दिखती हैं (हर ऑब्जेक्ट पर id फ़ील्ड), रिकॉर्ड विवरण के सिमेंटिक कॉन्सेप्ट में, और सब एक साथ सिमेंटिक ID पेज पर, जहाँ उनसे बनी शब्दावली को ब्राउज़ और क्यूरेट किया जाता है। इनका उपयोग करें:
फ्यूज़न एक ही रन के भीतर मॉडल के बीच असहमतियों का मेल कराता है; सिमेंटिक ID एक ही एंटिटी का रन और समय के आर-पार मेल कराते हैं। दोनों साथ मिलकर काम करते हैं।