मुझे यकीन नहीं है कि मैं ठीक से समझता हूं कि एक टेक्स्ट में स्पेसी नामित एंटाइट्स की पहचान कैसे करती है, और मेरे मामले में विशेष रूप से तिथियां।
मैं एक पाठ दस्तावेज़ में शिक्षा + संबंधित तिथि निकालने की कोशिश कर रहा हूँ। मेरे पास कुछ ऐसा है
text = 'University of A 2019 - 2020
University of B 2016 - 2019
College A 2013 - 2016
College B 2008 - 2013'
doc = nlp(text)
for ent in doc.ents:
print(ent.text, ent.label_)
जो मुझे आउटपुट के रूप में देता है:
University of A ORG
University of B ORG
2016 - 2019 DATE
2013 - 2016 DATE
2008 - 2013 DATE
जैसा कि अपेक्षित था विश्वविद्यालयों को संगठनों के रूप में मान्यता प्राप्त है और मुझे उम्मीद थी कि स्पेस कॉलेजों को मान्यता नहीं देगा क्योंकि यह विश्वविद्यालय के नामों से कम स्पष्ट है। हालाँकि मुझे समझ में नहीं आता कि मैंने पहली तारीख क्यों खो दी लेकिन बाकी सभी ठीक काम करते हैं।
मैंने एक और पाठ पर कोशिश की जो ऐसा कुछ था:
1997 : any text
1998 : any text
1999 : any text
...
2018 : any text
और यहां सभी तिथियां जहां 2013 और 2018 को छोड़कर मान्यता प्राप्त हैं, हालांकि पंक्तियों का प्रारूप अन्य सभी के समान है।
क्या तारीखों को बेहतर ढंग से पहचानने के लिए स्पैसी को प्रशिक्षित करने का कोई तरीका है या क्या मुझे किसी अन्य उपकरण का उपयोग करना चाहिए? मैं पहले से ही उसी कार्यक्रम के अन्य भागों के लिए स्पेसी का उपयोग कर रहा हूँ। मैं अभी रेगेक्स का उपयोग नहीं कर रहा हूं क्योंकि तिथियां कई अलग-अलग प्रारूपों में हो सकती हैं (केवल वर्ष, शुरुआत वर्ष - अंत वर्ष, कभी-कभी महीने और दिन भी आदि)
1 उत्तर
आपको अधिक सुविधा संपन्न मॉडल प्रकार की आवश्यकता है, जिसमें _md
या _lg
प्रत्यय के साथ 2.x और _trf
के साथ spacy 3.x हो।
उदाहरण के लिए, आप स्थापित कर सकते हैं
python -m spacy download en_core_web_trf
फिर, आप उपयोग कर सकते हैं
import spacy
nlp = spacy.load('en_core_web_trf')
text = '''University of A 2019 - 2020
University of B 2016 - 2019
College A 2013 - 2016
College B 2008 - 2013'''
doc = nlp(text)
for ent in doc.ents:
print(ent.text, ent.label_)
आउटपुट:
2019 - 2020 DATE
2016 - 2019 DATE
2013 - 2016 DATE
2008 - 2013 DATE
संबंधित सवाल
नए सवाल
python
पायथन एक बहु-प्रतिमान है, गतिशील रूप से टाइप किया हुआ, बहुउद्देशीय प्रोग्रामिंग भाषा है। यह एक साफ और एक समान वाक्यविन्यास सीखने, समझने और उपयोग करने के लिए त्वरित होने के लिए डिज़ाइन किया गया है। कृपया ध्यान दें कि अजगर 2 आधिकारिक तौर पर 01-01-2020 के समर्थन से बाहर है। फिर भी, संस्करण-विशिष्ट पायथन सवालों के लिए, [अजगर -२.०] या [अजगर -३.x] टैग जोड़ें। पायथन वेरिएंट (जैसे, ज्योथन, PyPy) या लाइब्रेरी (उदा।, पांडस और न्यूमपी) का उपयोग करते समय, कृपया इसे टैग में शामिल करें।
[('2019 - 2020', 'DATE'), ('2016 - 2019', 'DATE'), ('2013 - 2016', 'DATE'), ('2008 - 2013', 'DATE')]
आउटपुट के रूप मेंnlp = spacy.load('en_core_web_trf')
हैfr_core_news_sm
मॉडल है। अधिक सुविधा संपन्न मॉडल जैसे..._lg
के साथ प्रयास करें। उदाहरण के लिएspacy.load('en_core_web_lg')
।