有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在Android中使用OpenNLP的POSTaggerMe时出现java NullPointerException

我试图在Android应用程序中使用ApacheOpenNLP。我遇到了一个NullPointerException。我正在做的步骤如下

  1. 训练一个定制的模型

     private POSModel getCustomPosModel() {
    
            POSModel model = null;
            InputStream dataIn = null;
            ObjectStream<String> lineStream;
            ObjectStream<POSSample> sampleStream = null;
    
            try {
                dataIn =aManager.open("customPOS.train");
                lineStream = new PlainTextByLineStream(dataIn, "UTF-8");
                sampleStream = new WordTagSampleStream(lineStream);
                model = POSTaggerME.train("en", sampleStream, opennlp.tools.util.model.ModelType.MAXENT, null, null, 5, 5);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } 
              return model;
        }
    
  2. 使用通过上述方法获得的自定义模型标记一组令牌,如下所示

        public String[] tagTokensForInfo(String[] tokens){
    
        POSModel model =null;
        String[] posTags = null;
        model = getCustomPosModel();
        POSTaggerME posTagger = null;
    
        posTagger = new POSTaggerME(model);
        posTags = posTagger.tag(tokens);
        System.out.println("The tags and tokens are shown below");
        for(int i=0;i<posTags.length;i++){
            System.out.println("Token : "+tokens[i]+" ,Tags : "+posTags[i]);
        }
        return posTags;
    }
    

当我运行emulator并调用上述方法时,我得到一个空指针异常,原因如下

04-01 06:13:23.935: I/dalvikvm(906): Failed resolving Lopennlp/tools/util/ext/OSGiExtensionLoader; interface 1515 'Lorg/osgi/framework/BundleActivator;'


04-01 06:13:23.935: W/dalvikvm(906): Link of class 'Lopennlp/tools/util/ext/OSGiExtensionLoader;' failed
04-01 06:13:23.945: I/dalvikvm(906): Could not find method opennlp.tools.util.ext.OSGiExtensionLoader.getInstance, referenced from method 


opennlp.tools.util.ext.ExtensionLoader.instantiateExtension
04-01 06:13:23.945: W/dalvikvm(906): VFY: unable to resolve static method 8352: Lopennlp/tools/util/ext/OSGiExtensionLoader;.getInstance ()Lopennlp/tools/util/ext/OSGiExtensionLoader;

完整的堆栈跟踪如下所示

04-01 06:13:24.015: E/AndroidRuntime(906): FATAL EXCEPTION: main
04-01 06:13:24.015: E/AndroidRuntime(906): Process: net.viralpatel.安卓.speechtotextdemo, PID: 906
04-01 06:13:24.015: E/AndroidRuntime(906): java.lang.NullPointerException
04-01 06:13:24.015: E/AndroidRuntime(906):  at opennlp.tools.util.BeamSearch.bestSequences(BeamSearch.java:118)
04-01 06:13:24.015: E/AndroidRuntime(906):  at opennlp.tools.util.BeamSearch.bestSequence(BeamSearch.java:198)
04-01 06:13:24.015: E/AndroidRuntime(906):  at opennlp.tools.postag.POSTaggerME.tag(POSTaggerME.java:227)
04-01 06:13:24.015: E/AndroidRuntime(906):  at opennlp.tools.postag.POSTaggerME.tag(POSTaggerME.java:223)
04-01 06:13:24.015: E/AndroidRuntime(906):  at com.intuit.opennlp.CustomerTagger.tagTokensForInvoiceInfo(CustomerTagger.java:32)
04-01 06:13:24.015: E/AndroidRuntime(906):  at com.intuit.opennlp.ExtractInvoiceInfo.extract(ExtractInvoiceInfo.java:28)
04-01 06:13:24.015: E/AndroidRuntime(906):  at net.viralpatel.安卓.speechtotextdemo.MainActivity$1.onClick(MainActivity.java:46)
04-01 06:13:24.015: E/AndroidRuntime(906):  at 安卓.view.View.performClick(View.java:4424)
04-01 06:13:24.015: E/AndroidRuntime(906):  at 安卓.view.View$PerformClick.run(View.java:18383)
04-01 06:13:24.015: E/AndroidRuntime(906):  at 安卓.os.Handler.handleCallback(Handler.java:733)
04-01 06:13:24.015: E/AndroidRuntime(906):  at 安卓.os.Handler.dispatchMessage(Handler.java:95)
04-01 06:13:24.015: E/AndroidRuntime(906):  at 安卓.os.Looper.loop(Looper.java:137)
04-01 06:13:24.015: E/AndroidRuntime(906):  at 安卓.app.ActivityThread.main(ActivityThread.java:4998)
04-01 06:13:24.015: E/AndroidRuntime(906):  at java.lang.reflect.Method.invokeNative(Native Method)
04-01 06:13:24.015: E/AndroidRuntime(906):  at java.lang.reflect.Method.invoke(Method.java:515)
04-01 06:13:24.015: E/AndroidRuntime(906):  at com.安卓.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777)
04-01 06:13:24.015: E/AndroidRuntime(906):  at com.安卓.internal.os.ZygoteInit.main(ZygoteInit.java:593)
04-01 06:13:24.015: E/AndroidRuntime(906):  at dalvik.system.NativeStart.main(Native Method)

有人遇到过这个错误吗,或者你能帮我解决这个问题吗

提前谢谢


共 (0) 个答案