जेनिया कॉर्पस के साथ स्टैनफोर्ड पार्सर को कैसे प्रशिक्षित करें?


93

स्टैनफोर्ड पार्सर के लिए एक नया मॉडल बनाने के लिए मुझे कुछ समस्याएं हैं।

मैंने स्टैनफोर्ड से अंतिम संस्करण भी डाउनलोड किया है: http://nlp.stanford.edu/software/lex-parser.shml

और यहाँ, 2 प्रारूप, xml और ptb (पेन ट्रीबैंक) में जेनिया कॉर्पस।

स्टैंडफोर्ड पार्सर ptd फ़ाइलों के साथ प्रशिक्षित कर सकता है; फिर मैंने जेनिया कॉर्पस को डाउनलोड किया, क्योंकि मैं बायोमेडिकल टेक्स्ट के साथ काम करना चाहता हूं:

http://categorizer.tmit.bme.hu/~illes/genia_ptb/ (लिंक अब उपलब्ध नहीं) (genia_ptb.tar.gz)

फिर, मेरे पास एक बायोमेडिकल वाक्य की निर्भरता प्रतिनिधित्व प्राप्त करने के लिए एक छोटा मुख्य वर्ग है:

    String treebankPath = "/stanford-parser-2012-05-22/genia_ptb/GENIA_treebank_v1/ptb";

    Treebank tr = op.tlpParams.diskTreebank();
    tr.loadPath(treebankPath);  
    LexicalizedParser lpc=LexicalizedParser.trainFromTreebank(tr,op);

मैंने विभिन्न तरीकों की कोशिश की है, लेकिन हमेशा एक ही परिणाम मिलता है।

मेरे पास अंतिम पंक्ति में एक त्रुटि है। यह मेरा आउटपुट है:

Currently Fri Jun 01 15:02:57 CEST 2012
Options parameters:
useUnknownWordSignatures 2
smoothInUnknownsThreshold 100
smartMutation false
useUnicodeType false
unknownSuffixSize 1
unknownPrefixSize 1
flexiTag true
useSignatureForKnownSmoothing false
parserParams edu.stanford.nlp.parser.lexparser.EnglishTreebankParserParams
forceCNF false
doPCFG true
doDep false
freeDependencies false
directional true
genStop true
distance true
coarseDistance false
dcTags false
nPrune false
Train parameters: smooth=false PA=true GPA=false selSplit=true (400.0; deleting [VP^SQ, VP^VP, VP^SINV, VP^NP]) mUnary=1 mUnaryTags=false sPPT=false tagPA=true tagSelSplit=false (0.0) rightRec=true leftRec=false collinsPunc=false markov=true mOrd=2 hSelSplit=true (10) compactGrammar=3 postPA=false postGPA=false selPSplit=false (0.0) tagSelPSplit=false (0.0) postSplitWithBase=false fractionBeforeUnseenCounting=0.5 openClassTypesThreshold=50 preTransformer=null taggedFiles=null
Using EnglishTreebankParserParams splitIN=4 sPercent=true sNNP=0 sQuotes=false sSFP=false rbGPA=false j#=false jJJ=false jNounTags=false sPPJJ=false sTRJJ=false sJJCOMP=false sMoreLess=false unaryDT=true unaryRB=true unaryPRP=false reflPRP=false unaryIN=false sCC=1 sNT=false sRB=false sAux=2 vpSubCat=false mDTV=2 sVP=3 sVPNPAgr=false sSTag=0 mVP=false sNP%=0 sNPPRP=false dominatesV=1 dominatesI=false dominatesC=false mCC=0 sSGapped=4 numNP=false sPoss=1 baseNP=1 sNPNNP=0 sTMP=1 sNPADV=1 cTags=true rightPhrasal=false gpaRootVP=false splitSbar=0 mPPTOiIN=0
Binarizing trees...done. Time elapsed: 141 ms
Extracting PCFG...done. Time elapsed: 56 ms
Compiling grammar...done Time elapsed: 1 ms
Extracting Lexicon...Exception in thread "main" edu.stanford.nlp.util.ReflectionLoading$ReflectionLoadingException: edu.stanford.nlp.util.MetaClass$ClassCreationException: java.lang.ClassNotFoundException: edu.stanford.nlp.parser.lexparser.EnglishUnknownWordModelTrainer
    at edu.stanford.nlp.util.ReflectionLoading.loadByReflection(ReflectionLoading.java:39)
    at edu.stanford.nlp.parser.lexparser.BaseLexicon.initializeTraining(BaseLexicon.java:335)
    at edu.stanford.nlp.parser.lexparser.LexicalizedParser.getParserFromTreebank(LexicalizedParser.java:800)
    at edu.stanford.nlp.parser.lexparser.LexicalizedParser.trainFromTreebank(LexicalizedParser.java:226)
    at edu.stanford.nlp.parser.lexparser.LexicalizedParser.trainFromTreebank(LexicalizedParser.java:237)
    at ABravoDemo.main(ABravoDemo.java:35)
Caused by: edu.stanford.nlp.util.MetaClass$ClassCreationException: java.lang.ClassNotFoundException: edu.stanford.nlp.parser.lexparser.EnglishUnknownWordModelTrainer
    at edu.stanford.nlp.util.MetaClass.createFactory(MetaClass.java:353)
    at edu.stanford.nlp.util.MetaClass.createInstance(MetaClass.java:370)
    at edu.stanford.nlp.util.ReflectionLoading.loadByReflection(ReflectionLoading.java:37)
    ... 5 more
Caused by: java.lang.ClassNotFoundException: edu.stanford.nlp.parser.lexparser.EnglishUnknownWordModelTrainer
    at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:303)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:316)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:169)
    at edu.stanford.nlp.util.MetaClass$ClassFactory.construct(MetaClass.java:119)
    at edu.stanford.nlp.util.MetaClass$ClassFactory.<init>(MetaClass.java:192)
    at edu.stanford.nlp.util.MetaClass$ClassFactory.<init>(MetaClass.java:53)
    at edu.stanford.nlp.util.MetaClass.createFactory(MetaClass.java:349)
    ... 7 more

मैं इस कॉर्पस के साथ एक नया मॉडल कैसे बना सकता हूं?




5
असली कारण "java.lang.ClassNotFoundException: edu.stanford.nlp.parser.lexparser.EnglishUnognWordModelTrainer" है। क्या nlp.stanford.edu/software/… में वह वर्ग है? मैं इस समय 900MB डाउनलोड नहीं कर सकता।
andrucz

1
इस वीडियो को आज़माएं, इससे आपको मदद मिल सकती है, youtube.com/watch?v=w4rWpvBjBRI
लक्ष्मण जी

जवाबों:


1

Asrucz ने अपनी टिप्पणी में कहा, आपकी समस्या का असली कारण एक लापता वर्ग से स्टेम करना है।

यह जाँचने का प्रयास करें कि क्या आपने अपनी लाइब्रेरी को सही तरीके से आयात किया है (और सुनिश्चित करें कि इसमें कक्षा शामिल EnglishUnknownWordModelTra‌​inerहै edu.stanford.nlp.parser.lexparser

(यदि आप मावेन का उपयोग कर रहे हैं, तो सत्यापित करें कि आपने सही ढंग से निर्भरता जोड़ दी है - एक त्वरित Google ने इस पर जोर दिया: स्टैनफोर्ड पार्सर मावेन रेपो )


1

क्या एनएलपी पुस्तकालय सही ढंग से स्थापित किया गया था? कोई त्रुटि नहीं है यह सत्यापित करने के लिए लॉग में चेक करें। अधिकांश समय यह समस्या तब आती है जब स्टैनफोर्ड nltk लाइब्रेरी ठीक से स्थापित नहीं होती है।

GUI को चलाने के लिए जाँच करने का एक त्वरित तरीका है पार्सर को आज़माने के लिए अगर वह सफलतापूर्वक चलता है तो पुस्तकालय सही ढंग से स्थापित होता है अन्यथा यदि वह त्रुटियां फेंकता है तो आपको पता है कि आपका इंस्टालेशन खराब था।

स्टैनफोर्ड वेबसाइट में भी इस पर एक नज़र डालने का उल्लेख है:

यदि आप पार्स करने के लिए नए हैं, तो आप पार्सर को आज़माने के लिए GUI चलाकर शुरू कर सकते हैं। लिपलाइन (lexparser-gui.sh) और विंडोज (lexparser-gui.at) के लिए लिपियों को शामिल किया गया है। Javadoc lexparser पैकेज प्रलेखन और LexicalizedParser वर्ग प्रलेखन पर एक नज़र डालें। (शामिल किए गए javadoc निर्देशिका में index.html फ़ाइल पर अपने वेब ब्राउज़र को इंगित करें और उन वस्तुओं पर नेविगेट करें।) सामान्य प्रश्नों के उत्तर के लिए parser FAQ देखें। यदि इसमें से कोई भी मदद नहीं करता है, तो कृपया आगे की सहायता के लिए हमें कैसे पहुंचें, इस बारे में निर्देशों के लिए हमारे ईमेल दिशानिर्देश देखें।


0

जांचें कि आपने लाइब्रेरी को सही तरीके से आयात किया है या नहीं और सुनिश्चित करें कि यह {{EnglishUnognWordModelTrah iner} वर्ग ”युक्त है और यह भी सुनिश्चित करें कि आपने जो संस्करण डाउनलोड किया है वह जेनिया कोर के साथ ठीक से काम करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.