【发布时间】:2014-07-11 21:23:44
【问题描述】:
我正在对大量文本运行 Stanford Parser。解析器在遇到无法解析的句子时终止,并给出以下运行时错误。有没有办法让 Stanford Parser 忽略错误,并继续解析下一个句子?
一种方法是将文本分解成无数的单句文档,解析每个文档并记录输出。但是,这涉及多次加载 Stanford Parser(每次解析文档时,都必须重新加载 Stanford Parser)。加载解析器需要很多时间,但解析需要的时间要短得多。如果能找到一种方法来避免在每个句子上重新加载解析器,那就太好了。
另一种解决方案可能是在遇到错误时重新加载解析器,并在它停止的地方拾取文本并从那里继续解析。有谁知道实施此解决方案的好方法?
最后但同样重要的是,是否存在任何 Java 包装器可以忽略错误并保持 Java 程序运行直到程序自然终止?
谢谢!
Exception in thread "main" java.lang.RuntimeException: CANNOT EVEN CREATE ARRAYS OF ORIGINAL SIZE!!
at edu.stanford.nlp.parser.lexparser.ExhaustivePCFGParser.considerCreatingArrays(ExhaustivePCFGParser.java:2190)
at edu.stanford.nlp.parser.lexparser.ExhaustivePCFGParser.parse(ExhaustivePCFGParser.java:347)
at edu.stanford.nlp.parser.lexparser.LexicalizedParserQuery.parseInternal(LexicalizedParserQuery.java:258)
at edu.stanford.nlp.parser.lexparser.LexicalizedParserQuery.parse(LexicalizedParserQuery.java:536)
at edu.stanford.nlp.parser.lexparser.LexicalizedParserQuery.parseAndReport(LexicalizedParserQuery.java:585)
at edu.stanford.nlp.parser.lexparser.ParseFiles.parseFiles(ParseFiles.java:213)
at edu.stanford.nlp.parser.lexparser.ParseFiles.parseFiles(ParseFiles.java:73)
at edu.stanford.nlp.parser.lexparser.LexicalizedParser.main(LexicalizedParser.java:1535)
【问题讨论】:
-
我在 Jython 中编写了一个包装器以避免重新启动 Java:bitbucket.org/pnr/depgrapher
标签: java error-handling machine-learning nlp stanford-nlp