2017-02-23 10 views
10

मेरे पास एक डेनिश वर्डनेट की .txt फ़ाइल है। क्या एनएलटीके जैसे पाइथन के लिए एनएलपी लाइब्रेरी के साथ इसका उपयोग करने का कोई तरीका है? यदि नहीं, तो आप किसी ऐसी भाषा में प्राकृतिक भाषा प्रसंस्करण के बारे में कैसे जा सकते हैं जो किसी दिए गए लाइब्रेरी द्वारा समर्थित नहीं है। यह भी कहना है कि आप स्पासी जैसी लाइब्रेरी में अंग्रेजी या डच के अलावा किसी अन्य भाषा में नामांकित इकाई पहचान करना चाहते हैं। क्या इसे करने का कोई तरीका है?क्या लाइब्रेरी में अपना खुद का वर्डनेट जोड़ना संभव है?

+1

संक्षिप्त उत्तर: आप नहीं कर सकते। एक एपीआई केवल वही समर्थन करता है जो यह समर्थन करता है (और यह स्पासी के लिए सबसे बड़ी कमी में से एक है)। लंबा जवाब यह है कि, यदि आप वास्तव में जानते हैं कि आप क्या कर रहे हैं, तो मुझे लगता है कि आप संभावित रूप से स्रोत को संपादित कर सकते हैं। – spicypumpkin

+0

@Posh_Pumpkin, यह सही नहीं है। एपीआई को विस्तारित करना संभव है क्योंकि यह एक ओपन सोर्स प्रोजेक्ट है, https://github.com/nltk/nltk/pull/1621 देखें। यहां तक ​​कि 'spacy' के लिए, मेरा मानना ​​है कि @ होननिबल और @ines योगदान को प्रोत्साहित करते हैं: https://github.com/explosion/spaCy/blob/master/CONTRIBUTING.md – alvas

+0

@alvas Well, yes। क्या यह स्रोत को संपादित करने के रूप में नहीं गिना जाता है? मुझे पूरा यकीन है कि ओपी चाहता है कि बिल्कुल नहीं है। – spicypumpkin

उत्तर

3

क्या एनएलटीके जैसे पायथन के लिए एनएलपी लाइब्रेरी के साथ इसका उपयोग करने का कोई तरीका है?

आप इसे एनएलटीके के साथ कर सकते हैं, हालांकि यह थोड़ा अजीब है।

आपको अपने वर्डनेट कॉर्पस को Open Multilingual Wordnet प्रारूप में परिवर्तित करने की आवश्यकता होगी, जो एक साधारण टैब-डिलीमिटेड प्रारूप है। ध्यान दें कि उनके पास पहले से ही एक डेनिश वर्डनेट है।

फिर आपको एनएलटीके में वर्डनेट और ओपन बहुभाषी वर्डनेट कॉर्पोरेशन स्थापित करना चाहिए यदि आपने पहले से ऐसा नहीं किया है। यह प्रत्येक भाषा फ़ाइल के लिए उपनिर्देशिका के साथ ~/nltk_data/corpora/omw/ जैसी निर्देशिका तैयार करेगा। आप इसके लिए एक निर्देशिका बनाने और इस तरह अपनी फ़ाइल नामकरण से अपने कोष जोड़ने की आवश्यकता होगी:

~/nltk_data/corpora/omw/xxx/wn-data-xxx.tab 

xxx कुछ भी हो सकता है, लेकिन यह दोनों स्थानों में ही होना चाहिए। यह फ़ाइल नाम पैटर्न एनएलटीके here में हार्ड-कोड किया गया है।

इसके बाद आप xxx को lang पैरामीटर के रूप में निर्दिष्ट करके अपने वर्डनेट का उपयोग कर सकते हैं। यहाँ एक उदाहरण from the documentation है:

>>> wn.synset('dog.n.01').lemma_names('ita') # change 'ita' to 'xxx' 
['cane', 'Canis_familiaris'] 

आप एक भाषा है कि किसी भी पुस्तकालय द्वारा समर्थित नहीं है में प्राकृतिक भाषा संसाधन के बारे में कैसे जा सकते हैं?

मैंने इसे जापानी के साथ अक्सर किया है।

कुछ तकनीकें आपके टोकन के अंदर दिखती हैं - यानी, वे जांचते हैं कि कोई शब्द शब्दशः "कहें" या "होना" या कुछ है। यह स्पष्ट कारणों से स्टेमर्स और लेमैमाइज़र के साथ आम है। कुछ सिस्टम धारणाओं के आधार पर नियमों का उपयोग करते हैं भाषण के कुछ हिस्सों किसी दिए गए भाषा (आमतौर पर अंग्रेजी) में कैसे बातचीत करते हैं। आप इन उम्मीदों को अपनी भाषा में अनुवाद करने में सक्षम हो सकते हैं, लेकिन आमतौर पर आप इनका उपयोग नहीं कर सकते हैं।

हालांकि, कई उपयोगी तकनीकें आपके टोकन के अंदर बिल्कुल नहीं दिखती हैं - वे सिर्फ देखभाल करते हैं कि दो टोकन बराबर हैं या नहीं। ये आम तौर पर लेबल या कॉलोकेशन डेटा जैसी सुविधाओं पर भरोसा करते हैं। आपको अपने डेटा को पूर्व-टोकननाइज़ करने की आवश्यकता हो सकती है, और आप भाषा में विकिपीडिया पर एक सामान्य भाषा मॉडल को प्रशिक्षित करना चाहेंगे, लेकिन यह है। वर्ड वेक्टर, एनईआर, दस्तावेज़ समानता उदाहरण समस्याएं हैं जहां भाषा समर्थन की कमी आमतौर पर एक मुद्दा नहीं है।

यह भी कहना है कि आप स्पासी जैसे लाइब्रेरी में अंग्रेजी या डच के अलावा किसी अन्य भाषा में नामांकित इकाई पहचान करना चाहते हैं। क्या इसे करने का कोई तरीका है?

स्पासी एनईआर के लिए custom labelling का माध्यम प्रदान करता है। के साथ इसका उपयोग अन्यथा असमर्थित भाषा दस्तावेज नहीं है और थोड़ा मुश्किल होगा। हालांकि, चूंकि आपको एनईआर के लिए पूर्ण भाषा मॉडल की आवश्यकता नहीं है, इसलिए आप लेबल किए गए उदाहरणों के साथ एक एनईआर विशिष्ट टूल का उपयोग कर सकते हैं।

He  PRP B-NP 
reckons VBZ B-VP 
the  DT B-NP 
current JJ I-NP 
account NN I-NP 
deficit NN I-NP 
will  MD B-VP 
narrow VB I-VP 
to  TO B-PP 
only  RB B-NP 
#   # I-NP 
1.8  CD I-NP 
billion CD I-NP 
in  IN B-PP 
September NNP B-NP 
.   . O 

He  PRP B-NP 
reckons VBZ B-VP 
.. 

प्रारूप इस तरह की कई सीआरएफ या अन्य एनईआर उपकरण द्वारा समर्थित है:

यहाँ CoNLL प्रारूप पर आधारित CRF++ के लिए कुछ उदाहरण प्रशिक्षण डेटा है। सीआरएफएसयूइट Python wrapper के साथ एक है।

इस तरह के डेटा के लिए, एल्गोरिदम वास्तव में पहले कॉलम में क्या ख्याल नहीं रखता है, इसलिए भाषा समर्थन कोई मुद्दा नहीं है।

आशा है कि मदद करता है!

संबंधित मुद्दे