शुरुआत से spaCy मॉडल ट्रेन करना
spaCy आपके अपने मॉडल ट्रेन करने का एक साफ़ और कुशल तरीका देता है. इस अभ्यास में, आप वास्तविक दुनिया के कॉर्पस (CORD-19 डेटा) पर शुरुआत से एक NER मॉडल ट्रेन करेंगे.
ट्रेनिंग डेटा सही फ़ॉर्मेट में training_data के रूप में उपलब्ध है. इस अभ्यास में, आप दिए गए लेबल्स ("Pathogen", "MedicalCondition", "Medicine") की सूची labels में, एक खाली English मॉडल (nlp) के साथ NER कंपोनेंट जोड़कर उपयोग करेंगे. इच्छित मेडिकल labels को NER पाइपलाइन में जोड़ा जाएगा और फिर आप मॉडल को एक epoch के लिए ट्रेन कर सकते हैं. आवश्यक फ़ॉर्मेट में ट्रेनिंग डेटा बदलने के लिए आप पहले से इम्पोर्ट की गई Example क्लास का उपयोग करें. मॉडल ट्रेनिंग ट्रैक करने के लिए आप .update() मेथड में losses लिस्ट जोड़ सकते हैं और ट्रेनिंग लॉस देख सकते हैं.
यह अभ्यास पाठ्यक्रम का हिस्सा है
spaCy के साथ Natural Language Processing
अभ्यास निर्देश
- एक खाली spaCy मॉडल बनाएँ और मॉडल में एक NER कंपोनेंट जोड़ें.
- अन्य पाइपलाइन कंपोनेंट्स को disable करें, बनाए गए
optimizerऑब्जेक्ट का उपयोग करें, औरExampleफ़ॉर्मेट में बदले गए डेटा से मॉडल वेट्स अपडेट करें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# Load a blank English model, add NER component, add given labels to the ner pipeline
nlp = spacy.____("____")
ner = nlp.____("ner")
for ent in labels:
ner.add_label(ent)
# Disable other pipeline components, complete training loop and run training loop
other_pipes = [____ for pipe in nlp.____ if ____ != "____"]
nlp.disable_pipes(*____)
losses = {}
optimizer = nlp.begin_training()
for text, annotation in training_data:
doc = nlp.____(text)
example = Example.____(doc, annotation)
nlp.____([example], sgd=____, losses=losses)
print(losses)