OpenNLP を使用して、ポルトガル語でパーサー チャンクを作成しようとしています。しかし、私は成功していません。
モデルを作成するには、次の 2 つのファイルが必要だと思います。
拡張子が train.all で次の形式の 1 つのトレーニング ファイル:
(TOP (S (NP-SBJ (DT Some) )(VP (VBP say) (NP (NNP November) ))(. .) )) (TOP (S (NP-SBJ (PRP I) )(VP (VBP say) (NP (CD 1992) ))(. .) ('' '') ))
headRules という名前の 1 つのルール ファイル。私のファイルには、インターネットから取得したこれらのルールが含まれています。
20 ADJP 0 NNS QP NN $ ADVP JJ VBN VBG ADJP JJR NP JJS DT FW RBR RBS SBAR RB 15 ADVP 1 RB RBR RBS FW ADVP TO CD JJR JJ IN NP JJS NN 5 CONJP 1 CC RB IN 2 FRAG 1 2 INTJ 0 4 LST 1 LS : 19 NAC 0 NN NNS NNP NNPS NP NAC EX $ CD QP PRP VBG JJ JJS JJR ADJP FW 8 PP 1 IN TO VBG VBN RP FW 2 PRN 1 3 PRT 1 RP
このコマンドを使用して、モデル en-parser-chunking.bin を生成します
$ Bin / OpenNLP ParserTrainer -encoding ISO-8859-1 -lang en -parserType CHUNKING -headRules head_rules -data train.all -model en-parser-chunking.bin
そこで、このモデル en-parser-chunking.bin を使用してパーサーを処理します。コードに従う:
ParserModel modelParse = new ParserModel(parserStream);
Parser parser = ParserFactory.create(modelParse);
Parse Parses [] = ParserTool.parseLine ("Some say Novembro", parser, 1);
コードを実行すると、次のエラーが発生します。
SEVERE: Servlet.service() for servlet [DispatcherServlet] in context with path [/ProjetoCMBuilder] threw exception [Request processing failed; nested exception is java.lang.ArrayIndexOutOfBoundsException: -1] with root cause
java.lang.ArrayIndexOutOfBoundsException: -1
at opennlp.tools.parser.treeinsert.Parser.advanceParses(Parser.java:346)
at opennlp.tools.parser.AbstractBottomUpParser.parse(AbstractBottomUpParser.java:311)
at opennlp.tools.parser.AbstractBottomUpParser.parse(AbstractBottomUpParser.java:365)
at opennlp.tools.cmdline.parser.ParserTool.parseLine(ParserTool.java:77)
at ProjetoCMBuilder.service.LibOpenNLPServiceBean.processarTexto(LibOpenNLPServiceBean.java:78)
at ProjetoCMBuilder.controller.ProcessController.getAllPropositionPt(ProcessController.java:142)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
モデル parser-chunking.bin を作成するにはどうすればよいですか?