2016-04-26 12 views
0

Ich möchte Batch Learning PR verwenden, um Textklassifizierung in GATE durchzuführen. Ich schreibe zuerst dieses configure XML und es kann funktionieren.GATE Machine Learning funktioniert nicht

<?xml version="1.0"?> 
 
<ML-CONFIG> 
 
    <VERBOSITY level="1"/> 
 
    <SURROUND value="false"/> 
 
    <PARAMETER name="thresholdProbabilityClassification" 
 
\t  value="0.5"/> 
 
    <multiClassification2Binary method="one-vs-others"/> 
 
    <EVALUATION method="kfold" 
 
\t  runs="5" 
 
\t  ratio="0.66" /> 
 
    <ENGINE nickname="PAUM" 
 
\t implementationName="PAUM" 
 
\t options=" -p 50 -n 5 -optB 0.0 "/> 
 
    <DATASET> 
 
    <INSTANCE-TYPE>emotion</INSTANCE-TYPE> 
 
    
 
    <NGRAM> 
 
     <NAME>ngram</NAME> 
 
     <NUMBER>1</NUMBER> 
 
     <CONSNUM>4</CONSNUM> 
 
     
 
     <CONS-1> 
 
     <TYPE>Token</TYPE> 
 
     <FEATURE>string</FEATURE> 
 
     </CONS-1> 
 
\t 
 
\t <CONS-2> 
 
     <TYPE>word_bag</TYPE> 
 
     <FEATURE>feature</FEATURE> 
 
     </CONS-2> 
 
\t 
 
\t <CONS-3> 
 
     <TYPE>hashtag</TYPE> 
 
     <FEATURE>feature</FEATURE> 
 
     </CONS-3> 
 
\t 
 
\t <CONS-4> 
 
     <TYPE>Token</TYPE> 
 
     <FEATURE>category</FEATURE> 
 
     </CONS-4> 
 
    <WEIGHT>2</WEIGHT> 
 
    </NGRAM> 
 
    
 
    <ATTRIBUTE> 
 
     <NAME>Class</NAME> 
 
     <SEMTYPE>NOMINAL</SEMTYPE> 
 
     <TYPE>emotion</TYPE> 
 
     <FEATURE>feature</FEATURE> 
 
     <POSITION>0</POSITION> 
 
     <CLASS/> 
 
    </ATTRIBUTE> 
 
    
 
    </DATASET> 
 
</ML-CONFIG>

Allerdings, wenn ich die Reihenfolge der CONS, wie die folgenden zu ändern, es funktioniert nicht.

<?xml version="1.0"?> 
 
<ML-CONFIG> 
 
    <VERBOSITY level="1"/> 
 
    <SURROUND value="false"/> 
 
    <PARAMETER name="thresholdProbabilityClassification" 
 
\t  value="0.5"/> 
 
    <multiClassification2Binary method="one-vs-others"/> 
 
    <EVALUATION method="kfold" 
 
\t  runs="5" 
 
\t  ratio="0.66" /> 
 
    <ENGINE nickname="PAUM" 
 
\t implementationName="PAUM" 
 
\t options=" -p 50 -n 5 -optB 0.0 "/> 
 
    <DATASET> 
 
    <INSTANCE-TYPE>emotion</INSTANCE-TYPE> 
 
    
 
    <NGRAM> 
 
     <NAME>ngram</NAME> 
 
     <NUMBER>1</NUMBER> 
 
     <CONSNUM>4</CONSNUM> 
 
     \t 
 
\t <CONS-1> 
 
     <TYPE>word_bag</TYPE> 
 
     <FEATURE>feature</FEATURE> 
 
     </CONS-1> 
 
\t 
 
\t <CONS-2> 
 
     <TYPE>hashtag</TYPE> 
 
     <FEATURE>feature</FEATURE> 
 
     </CONS-2> 
 
\t 
 
\t <CONS-3> 
 
     <TYPE>Token</TYPE> 
 
     <FEATURE>category</FEATURE> 
 
     </CONS-3> 
 
\t 
 
\t <CONS-4> 
 
     <TYPE>Token</TYPE> 
 
     <FEATURE>string</FEATURE> 
 
     </CONS-4> 
 

 

 
\t 
 
    <WEIGHT>2</WEIGHT> 
 
    </NGRAM> 
 
    
 
    <ATTRIBUTE> 
 
     <NAME>Class</NAME> 
 
     <SEMTYPE>NOMINAL</SEMTYPE> 
 
     <TYPE>emotion</TYPE> 
 
     <FEATURE>feature</FEATURE> 
 
     <POSITION>0</POSITION> 
 
     <CLASS/> 
 
    </ATTRIBUTE> 
 
    
 
    </DATASET> 
 
</ML-CONFIG>

kann jedoch die letzte in GATE geladen und jedesmal, wenn ich die Batch-Lernen PR laufen, geht es die folgenden Fehlerinformationen:

java.lang. Nullpointer bei gate.learning.NLPFeaturesOfDoc.writeNLPFeaturesToFile (NLPFeaturesOfDoc.java:818) bei gate.learning.LightWeightLearningApi.annotations2NLPFeatures (LightWeightLearningApi.java:198) bei gate.learning.EvaluationBasedOnDocs.oneRun (EvaluationBasedOnDocs.java:388) bei gate.learning.EvaluationBasedOnDocs.kfoldEval (EvaluationBasedOnDocs.java:197) bei gate.learning.EvaluationBasedOnDocs.evaluation (EvaluationBasedOnDocs.java:118) bei gate.learning.LearningAPIMain.execute (LearningAPIMain.java:776) bei gate.util.Benchmark.executeWithBenchmarking (Benchmark.java:291) bei gate.creole.ConditionalSerialController.runComponent (ConditionalSerialController.java:163) bei Gate. creole.SerialController.executeImpl (SerialController.java:157) bei gate.creole.ConditionalSerialAnalyserController.executeImpl (ConditionalSerialAnalyserController.java:225) bei gate.creole.ConditionalSerialAnalyserController.execute (Conditio nalSerialAnalyserController.java:132) bei gate.util.Benchmark.executeWithBenchmarking (Benchmark.java:291) bei gate.gui.SerialControllerEditor $ RunAction $ 1.run (SerialControllerEditor.java:1728) bei java.lang.Thread.run (Unbekannte Quelle)

Hat jemand eine Idee für dieses Problem?

Vielen Dank!

Antwort

0

Ich würde vorschlagen, dass Sie sicherstellen, dass dieses Problem durch das Dokument verursacht wird, tatsächlich Funktionen erzeugt, die in Ihrer Konfigurations-XML-Datei definiert sind. Da ich sehe, dass Sie Token verwendet haben, denke ich, dass das Dokument leer ist.