NER के लिए EntityRuler
EntityRuler को किसी मौजूदा मॉडल के EntityRecognizer के साथ मिलाकर उसकी accuracy बढ़ाई जा सकती है. इस अभ्यास में, आप en_core_web_sm मॉडल के मौजूदा NER कंपोनेंट के साथ एक EntityRuler कंपोनेंट को जोड़ने का अभ्यास करेंगे. मॉडल पहले से nlp के रूप में लोड है.
जब EntityRuler को NER कंपोनेंट से पहले जोड़ा जाता है, तो entity recognizer मौजूदा entity spans का सम्मान करता है और EntityRuler में जोड़े गए patterns के आधार पर अपनी भविष्यवाणियों को समायोजित करता है, ताकि named entity recognition टास्क की accuracy बेहतर हो.
यह अभ्यास पाठ्यक्रम का हिस्सा है
spaCy के साथ Natural Language Processing
अभ्यास निर्देश
nerकंपोनेंट से पहलेnlpमें एकEntityRulerजोड़ें.- लोअर-केस्ड
new york groupकोORGके रूप में वर्गीकृत करने के लिए एक टोकन एंटिटी पैटर्न परिभाषित करें. patternsकोEntityRulerकंपोनेंट में जोड़ें.- मॉडल चलाएँ और
Docकंटेनर के लिए entities के टेक्स्ट और टाइप के tuple को प्रिंट करें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
nlp = spacy.load("en_core_web_sm")
text = "New York Group was built in 1987."
# Add an EntityRuler to the nlp before NER component
ruler = nlp.____("entity_ruler", ____="ner")
# Define a pattern to classify lower cased new york group as ORG
patterns = [{"label": "ORG", "pattern": [{"lower": ____}]}]
# Add the patterns to the EntityRuler component
ruler.____(____)
# Run the model and print entities text and type for all the entities
doc = ____
print([(ent.____, ent.____) for ent in doc.____])