我是GATE的新手,我正在用它来进行机器学习。Batching Learning PR的配置文件如下:
<?xml version="1.0"?>
-<ML-CONFIG>
<VERBOSITY level="1"/>
<SURROUND value="false"/>
<PARAMETER value="0.5" name="thresholdProbabilityClassification"/>
<multiClassification2Binary method="one-vs-others"/>
<EVALUATION method="kfold" ratio="0.66" runs="5"/>
<ENGINE options=" -p 50 -n 5 -optB 0.0 " implementationName="PAUM" nickname="PAUM"/>
-<DATASET>
<INSTANCE-TYPE>attitude</INSTANCE-TYPE>
-<NGRAM>
<NAME>ngram</NAME>
<NUMBER>1</NUMBER>
<CONSNUM>1</CONSNUM>
-<CONS-1>
<TYPE>Token</TYPE>
<FEATURE>root</FEATURE>
</CONS-1>
<!-- <CONS-2> <TYPE>Token</TYPE> <FEATURE>orth</FEATURE> </CONS-2> -->
</NGRAM>
-<ATTRIBUTE>
<NAME>Class</NAME>
<SEMTYPE>NOMINAL</SEMTYPE>
<TYPE>attitude</TYPE>
<FEATURE>feature</FEATURE>
<POSITION>0</POSITION>
<CLASS/>
</ATTRIBUTE>
</DATASET>
</ML-CONFIG>
我希望程序学习的注释名为“态度”,其特征称为“特征”。该特征的值只有正值和负值。
但是,每次我运行Batch Learning PR(Trainning模式)时,都会出现这样的错误:
java.lang.NullPointerException
at gate.learning.NLPFeaturesOfDoc.writeNLPFeaturesToFile(NLPFeaturesOfDoc.java:818)
at gate.learning.LightWeightLearningApi.annotations2NLPFeatures(LightWeightLearningApi.java:198)
at gate.learning.LearningAPIMain.execute(LearningAPIMain.java:594)
at gate.util.Benchmark.executeWithBenchmarking(Benchmark.java:291)
at gate.creole.SerialController.runComponent(SerialController.java:225)
at gate.creole.SerialController.executeImpl(SerialController.java:157)
at gate.creole.SerialAnalyserController.executeImpl(SerialAnalyserController.java:223)
at gate.creole.SerialAnalyserController.execute(SerialAnalyserController.java:126)
at gate.util.Benchmark.executeWithBenchmarking(Benchmark.java:291)
at gate.gui.SerialControllerEditor$RunAction$1.run(SerialControllerEditor.java:1728)
at java.lang.Thread.run(Unknown Source)因为我不能在GATE中途调试,所以我不明白代码有什么问题。
有人能帮上忙吗?
谢谢!
发布于 2016-03-21 14:25:28
我建议你检查训练过程失败的文件。GATE可能没有生成任何特性(例如,文档内容为空等)。
https://stackoverflow.com/questions/36113887
复制相似问题