पिछले लेख में हमने आईसीडी-10 में निदान की कोडिंग का समर्थन करने के लिए विकसित डी[आईए]ग्नोसिस एप्लिकेशन प्रस्तुत किया था। इस लेख में हम देखेंगे कि कैसे इंटरसिस्टम्स आईआरआईएस फॉर हेल्थ हमें पूर्व-प्रशिक्षित भाषा मॉडल का उपयोग करके आईसीडी-10 कोड सूची से वैक्टर उत्पन्न करने, इसके भंडारण और इन सभी उत्पन्न वैक्टरों पर समानता की बाद की खोज के लिए आवश्यक उपकरण प्रदान करता है। .
एआई मॉडल के विकास के साथ उभरी मुख्य विशेषताओं में से एक है जिसे हम आरएजी (रिट्रीवल-ऑगमेंटेड जेनरेशन) के रूप में जानते हैं जो हमें मॉडल में एक संदर्भ को शामिल करके एलएलएम मॉडल के परिणामों में सुधार करने की अनुमति देता है। खैर, हमारे उदाहरण में संदर्भ ICD-10 निदान के सेट द्वारा दिया गया है और उनका उपयोग करने के लिए हमें पहले उन्हें वेक्टराइज़ करना होगा।
हमारे निदानों की सूची को वेक्टरकृत कैसे करें?
वेक्टरों की पीढ़ी के लिए हमने पायथन लाइब्रेरी सेंटेंसट्रांसफॉर्मर्स का उपयोग किया है जो पूर्व-प्रशिक्षित मॉडलों से मुक्त पाठों के वेक्टरीकरण की सुविधा प्रदान करता है। उनकी अपनी वेबसाइट से:
सेंटेंस ट्रांसफॉर्मर्स (उर्फ एसबीईआरटी) अत्याधुनिक टेक्स्ट और छवि एम्बेडिंग मॉडल तक पहुंचने, उपयोग करने और प्रशिक्षण के लिए पायथन मॉड्यूल है। इसका उपयोग सेंटेंस ट्रांसफार्मर मॉडल (क्विकस्टार्ट) का उपयोग करके एम्बेडिंग की गणना करने या क्रॉस-एनकोडर मॉडल (क्विकस्टार्ट) का उपयोग करके समानता स्कोर की गणना करने के लिए किया जा सकता है। यह सिमेंटिक सर्च, सिमेंटिक टेक्स्टुअल समानता और पैराफ्रेज़ माइनिंग सहित अनुप्रयोगों की एक विस्तृत श्रृंखला को अनलॉक करता है।
सेंटेंसट्रांसफॉर्मर्स समुदाय द्वारा विकसित सभी मॉडलों में से हमें बायोलॉर्ड-2023-एम मिला है, जो एक पूर्व-प्रशिक्षित मॉडल है जो 786-आयामी वैक्टर उत्पन्न करेगा।
इस मॉडल को बायोलॉर्ड का उपयोग करके प्रशिक्षित किया गया था, जो नैदानिक वाक्यों और बायोमेडिकल अवधारणाओं के लिए सार्थक प्रतिनिधित्व तैयार करने के लिए एक नई पूर्व-प्रशिक्षण रणनीति है।
अत्याधुनिक पद्धतियां एक ही अवधारणा को संदर्भित करने वाले नामों के प्रतिनिधित्व में समानता को अधिकतम करने और विरोधाभासी शिक्षा के माध्यम से पतन को रोकने के द्वारा संचालित होती हैं। हालाँकि, क्योंकि बायोमेडिकल नाम हमेशा स्व-व्याख्यात्मक नहीं होते हैं, कभी-कभी इसका परिणाम गैर-अर्थ संबंधी प्रतिनिधित्व होता है।
बायोलॉर्ड परिभाषाओं का उपयोग करके अपनी अवधारणा प्रस्तुतियों को आधार बनाकर इस मुद्दे पर काबू पाता है, साथ ही बायोमेडिकल ऑन्कोलॉजी से युक्त बहु-संबंधपरक ज्ञान ग्राफ से प्राप्त संक्षिप्त विवरण भी देता है। इस ग्राउंडिंग के लिए धन्यवाद, हमारा मॉडल अधिक अर्थपूर्ण अवधारणा प्रतिनिधित्व उत्पन्न करता है जो ऑन्कोलॉजी की पदानुक्रमित संरचना से अधिक निकटता से मेल खाता है। BioLORD-2023 नैदानिक वाक्यों (MedSTS) और बायोमेडिकल अवधारणाओं (EHR-Rel-B) दोनों पर पाठ समानता के लिए कला की एक नई स्थिति स्थापित करता है।
जैसा कि आप इसकी परिभाषा में देख सकते हैं, यह मॉडल चिकित्सा अवधारणाओं के साथ पूर्व-प्रशिक्षित है जो हमारे आईसीडी-10 कोड और मुफ्त टेक्स्ट दोनों को वेक्टराइज़ करते समय उपयोगी होगा।
हमारे प्रोजेक्ट के लिए, हम वेक्टर निर्माण में तेजी लाने के लिए इस मॉडल को डाउनलोड करेंगे:
if not os.path.isdir('/shared/model/'): model = sentence_transformers.SentenceTransformer('FremyCompany/BioLORD-2023-M') model.save('/shared/model/')
एक बार हमारी टीम में, हम प्रक्रिया को तेज करने के लिए सूचियों में वेक्टराइज़ करने के लिए टेक्स्ट दर्ज कर सकते हैं, आइए देखें कि हम ICD-10 कोड को कैसे वेक्टराइज़ करते हैं जिन्हें हमने पहले अपने ENCODER.Object.Codes कक्षा।
st = iris.sql.prepare("SELECT TOP 50 CodeId, Description FROM ENCODER_Object.Codes WHERE VectorDescription is null ORDER BY ID ASC ") resultSet = st.execute() df = resultSet.dataframe() if (df.size > 0): model = sentence_transformers.SentenceTransformer("/shared/model/") embeddings = model.encode(df['description'].tolist(), normalize_embeddings=True) df['vectordescription'] = embeddings.tolist() stmt = iris.sql.prepare("UPDATE ENCODER_Object.Codes SET VectorDescription = TO_VECTOR(?,DECIMAL) WHERE CodeId = ?") for index, row in df.iterrows(): rs = stmt.execute(str(row['vectordescription']), row['codeid']) else: flagLoop = False
जैसा कि आप देख सकते हैं, हम पहले अपनी ICD-10 कोड तालिका में संग्रहीत कोड निकालते हैं जिन्हें हमने अभी तक वेक्टराइज़ नहीं किया है लेकिन जिन्हें हमने CSV फ़ाइल से निकालने के बाद पिछले चरण में रिकॉर्ड किया है, फिर हम सूची निकालते हैं वेक्टराइज़ करने के लिए विवरण और पायथन sentence_transformers लाइब्रेरी का उपयोग करके हम अपने मॉडल को पुनर्प्राप्त करेंगे और संबंधित एम्बेडिंग उत्पन्न करेंगे।
अंत में, हम अद्यतन निष्पादित करके वेक्टरकृत विवरण के साथ आईसीडी-10 कोड को अपडेट करेंगे। जैसा कि आप देख सकते हैं, मॉडल द्वारा लौटाए गए परिणाम को वेक्टराइज़ करने का कमांड IRIS में SQL कमांड TO_VECTOR है।
ठीक है, हमारे पास हमारा पायथन कोड है, इसलिए हमें बस इसे एक क्लास में लपेटने की जरूरत है जो Ens.BusinessProcess का विस्तार करती है और इसे हमारे उत्पादन में शामिल करती है, फिर इसे पुनः प्राप्त करने के प्रभारी बिजनेस सर्विस से जोड़ती है सीएसवी फ़ाइल और बस इतना ही!
आइए देखें कि यह कोड हमारे उत्पादन में कैसा दिखेगा:
जैसा कि आप देख सकते हैं, हमारे पास EnsLib.File.InBOoundAdapter एडाप्टर के साथ हमारी बिजनेस सर्विस है जो हमें कोड फ़ाइल एकत्र करने और इसे हमारी बिजनेस प्रोसेस पर रीडायरेक्ट करने की अनुमति देगी जिसमें हम सभी कार्य करेंगे वेक्टरीकरण और भंडारण संचालन, हमें निम्नलिखित जैसे रिकॉर्ड का एक सेट देता है:
अब हमारा एप्लिकेशन हमारे द्वारा भेजे गए टेक्स्ट के साथ संभावित मिलान की तलाश शुरू करने के लिए तैयार होगा!
अगले लेख में हम दिखाएंगे कि एंगुलर 17 में विकसित एप्लिकेशन फ्रंट-एंड को स्वास्थ्य के लिए आईआरआईएस में हमारे उत्पादन के साथ कैसे एकीकृत किया गया है और आईआरआईएस विश्लेषण किए जाने वाले ग्रंथों को कैसे प्राप्त करता है, उन्हें वेक्टराइज़ करता है और आईसीडी-10 में समानताएं खोजता है। कोड तालिका.
इसे मिस न करें!
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3