【发布时间】:2016-04-26 10:45:38
【问题描述】:
我想在 GATE 中使用批量学习 PR 进行文本分类。我先写了这个配置XML,它可以工作。
<?xml version="1.0"?>
<ML-CONFIG>
<VERBOSITY level="1"/>
<SURROUND value="false"/>
<PARAMETER name="thresholdProbabilityClassification"
value="0.5"/>
<multiClassification2Binary method="one-vs-others"/>
<EVALUATION method="kfold"
runs="5"
ratio="0.66" />
<ENGINE nickname="PAUM"
implementationName="PAUM"
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>
<CONS-2>
<TYPE>word_bag</TYPE>
<FEATURE>feature</FEATURE>
</CONS-2>
<CONS-3>
<TYPE>hashtag</TYPE>
<FEATURE>feature</FEATURE>
</CONS-3>
<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>
但是,当我改变CONS的顺序时,如下所示,它不起作用。
<?xml version="1.0"?>
<ML-CONFIG>
<VERBOSITY level="1"/>
<SURROUND value="false"/>
<PARAMETER name="thresholdProbabilityClassification"
value="0.5"/>
<multiClassification2Binary method="one-vs-others"/>
<EVALUATION method="kfold"
runs="5"
ratio="0.66" />
<ENGINE nickname="PAUM"
implementationName="PAUM"
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>word_bag</TYPE>
<FEATURE>feature</FEATURE>
</CONS-1>
<CONS-2>
<TYPE>hashtag</TYPE>
<FEATURE>feature</FEATURE>
</CONS-2>
<CONS-3>
<TYPE>Token</TYPE>
<FEATURE>category</FEATURE>
</CONS-3>
<CONS-4>
<TYPE>Token</TYPE>
<FEATURE>string</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>
但是,最后一个可以加载到 GATE 中,每次我运行批量学习 PR 时,都会出现以下错误信息:
java.lang.NullPointerException 在gate.learning.NLPFeaturesOfDoc.writeNLPFeaturesToFile(NLPFeaturesOfDoc.java:818) 在gate.learning.LightWeightLearningApi.annotations2NLPFeatures(LightWeightLearningApi.java:198) 在gate.learning.EvaluationBasedOnDocs.oneRun(EvaluationBasedOnDocs.java:388) 在gate.learning.EvaluationBasedOnDocs.kfoldEval(EvaluationBasedOnDocs.java:197) 在gate.learning.EvaluationBasedOnDocs.evaluation(EvaluationBasedOnDocs.java:118) 在gate.learning.LearningAPIMain.execute(LearningAPIMain.java:776) 在gate.util.Benchmark.executeWithBenchmarking(Benchmark.java:291) 在gate.creole.ConditionalSerialController.runComponent(ConditionalSerialController.java:163) 在gate.creole.SerialController.executeImpl(SerialController.java:157) 在gate.creole.ConditionalSerialAnalyserController.executeImpl(ConditionalSerialAnalyserController.java:225) 在gate.creole.ConditionalSerialAnalyserController.execute(ConditionalSerialAnalyserController.java:132) 在gate.util.Benchmark.executeWithBenchmarking(Benchmark.java:291) 在 gate.gui.SerialControllerEditor$RunAction$1.run(SerialControllerEditor.java:1728) 在 java.lang.Thread.run(Unknown Source)
有人知道这个问题吗?
非常感谢!
【问题讨论】:
标签: java machine-learning text-classification gate