शुरू करेंमुफ़्त में शुरू करें

मौजूदा NER मॉडल को ट्रेन करें

किसी दिए गए डेटा पर spaCy का मॉडल अच्छी तरह काम न भी कर पाए. एक समाधान है कि मॉडल को हमारे डेटा पर ट्रेन किया जाए. इस अभ्यास में, आप प्रेडिक्शन परफॉर्मेंस बेहतर करने के लिए एक NER मॉडल को ट्रेन करने का अभ्यास करेंगे.

एक spaCy en_core_web_sm मॉडल nlp के रूप में उपलब्ध है, जो test स्ट्रिंग में house को एक entity के रूप में सही तरह से प्रेडिक्ट नहीं कर पा रहा है.

दिए गए training_data के आधार पर, डेटा पर दो बार इटररेट करते हुए इस मॉडल को अपडेट करने के स्टेप्स लिखें. बाकी पाइपलाइन्स पहले से disabled हैं और optimizer भी उपयोग के लिए तैयार है. epochs की संख्या पहले से 2 सेट है.

यह अभ्यास पाठ्यक्रम का हिस्सा है

spaCy के साथ Natural Language Processing

पाठ्यक्रम देखें

अभ्यास निर्देश

  • optimizer ऑब्जेक्ट का उपयोग कीजिए और हर epoch के लिए, random पैकेज से डेटासेट को शफ़ल करिए और एक Example ऑब्जेक्ट बनाइए.
  • .update एट्रिब्यूट का उपयोग करके nlp मॉडल को अपडेट कीजिए और sgd आर्ग्यूमेंट्स में optimizer पास कीजिए.

इंटरैक्टिव व्यावहारिक अभ्यास

इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।

nlp = spacy.load("en_core_web_sm")
print("Before training: ", [(ent.text, ent.label_) for ent in nlp(test).ents])
other_pipes = [pipe for pipe in nlp.pipe_names if pipe != 'ner']
nlp.disable_pipes(*other_pipes)
optimizer = nlp.create_optimizer()

# Shuffle training data and the dataset using random package per epoch
for i in range(epochs):
  random.____(training_data)
  for text, ____ in training_data:
    doc = nlp.____(____)
    # Update nlp model after setting sgd argument to optimizer
    example = Example.____(____, ____)
    nlp.____([____], sgd = ____)
print("After training: ", [(ent.text, ent.label_) for ent in nlp(test).ents])
कोड संपादित करें और चलाएँ