Comment former le Stanford Parser avec Genia Corpus?

J’ai quelques problèmes pour créer un nouveau modèle pour Stanford Parser.

J’ai également téléchargé la dernière version de Stanford: http://nlp.stanford.edu/software/lex-parser.shtml

Et ici, Genia Corpus en 2 formats, xml et ptb (Penn Treebank).

Standford Parser peut former avec des fichiers ptd; puis j’ai téléchargé Genia Corpus, parce que je veux travailler avec du texte biomédical:

http://categorizer.tmit.bme.hu/~illes/genia_ptb/ (le lien n’est plus disponible) (genia_ptb.tar.gz)

Ensuite, j’ai une courte classe principale pour obtenir une représentation de dépendance d’une phrase biomédicale:

Ssortingng 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); 

J’ai essayé différentes manières, mais toujours obtenir le même résultat.

J’ai une erreur dans la dernière ligne. Ceci est ma sortie:

 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.(MetaClass.java:192) at edu.stanford.nlp.util.MetaClass$ClassFactory.(MetaClass.java:53) at edu.stanford.nlp.util.MetaClass.createFactory(MetaClass.java:349) ... 7 more 

Comment pourrais-je créer un nouveau modèle avec ce corpus?

    Comme l’a déclaré andrucz dans son commentaire, la véritable cause de votre problème semble provenir d’une classe manquante.

    Vérifiez si vous avez correctement importé votre bibliothèque (et assurez-vous qu’elle contient la classe EnglishUnknownWordModelTra‌​iner dans edu.stanford.nlp.parser.lexparser .

    (Si vous utilisez Maven, vérifiez que vous avez correctement ajouté la dépendance – un google rapide à ce sujet: Stanford Parser Maven Repo )

    La bibliothèque NLP s’est-elle installée correctement? Vérifiez les journaux pour vérifier qu’il n’y a pas d’erreurs. La plupart du temps, ce problème survient lorsque la bibliothèque Stanford Nltk ne s’installe pas correctement.

    Un moyen rapide de vérifier est en exécutant l’interface graphique pour essayer l’parsingur si celui-ci s’exécute correctement, puis la bibliothèque installée correctement, sinon si cela génère des erreurs, vous savez que votre installation était mauvaise.

    Le site Web de Stanford mentionne également ceci:

    Si vous êtes nouveau à l’parsing, vous pouvez commencer par exécuter l’interface graphique pour essayer l’parsingur. Les scripts sont inclus pour linux (lexparser-gui.sh) et Windows (lexparser-gui.bat). Jetez un coup d’oeil à la documentation du paquet Javadoc lexparser et à la documentation de la classe LexicalizedParser. (Pointez votre navigateur Web sur le fichier index.html dans le répertoire javadoc inclus et accédez à ces éléments.) Consultez la FAQ de l’parsingur pour obtenir des réponses aux questions les plus fréquentes. Si rien de tout cela ne vous aide, veuillez consulter nos directives relatives aux e-mails pour savoir comment nous contacter pour obtenir de l’aide.

    Vérifiez si vous avez correctement importé la bibliothèque et assurez-vous qu’elle contient la classe {EnglishUnknownWordModelTra‌erer} et assurez-vous également que la version que vous avez téléchargée fonctionne correctement avec Genia Corps.