java – Stanford Parser内存不足
发布时间:2020-12-15 04:26:29 所属栏目:Java 来源:网络整理
导读:我试图使用 python代码在Ubuntu中运行Stanford解析器.我的文本文件是500 Mb,我试图解析.我有一个32GB的RAM.我正在增加JVM大小,但我不知道它是否实际上是否正在增加,因为每次我收到此错误.请帮帮我 WARNING!! OUT OF MEMORY! THERE WAS NOT ENOUGH ****** MEM
我试图使用
python代码在Ubuntu中运行Stanford解析器.我的文本文件是500 Mb,我试图解析.我有一个32GB的RAM.我正在增加JVM大小,但我不知道它是否实际上是否正在增加,因为每次我收到此错误.请帮帮我
WARNING!! OUT OF MEMORY! THERE WAS NOT ENOUGH *** *** MEMORY TO RUN ALL PARSERS. EITHER GIVE THE *** *** JVM MORE MEMORY,SET THE MAXIMUM SENTENCE *** *** LENGTH WITH -maxLength,OR PERHAPS YOU ARE *** *** HAPPY TO HAVE THE PARSER FALL BACK TO USING *** *** A SIMPLER PARSER FOR VERY LONG SENTENCES. *** Sentence has no parse using PCFG grammar (or no PCFG fallback). Skipping... Exception in thread "main" edu.stanford.nlp.parser.common.NoSuchParseException at edu.stanford.nlp.parser.lexparser.LexicalizedParserQuery.getBestParse(LexicalizedParserQuery.java:398) at edu.stanford.nlp.parser.lexparser.LexicalizedParserQuery.getBestParse(LexicalizedParserQuery.java:370) at edu.stanford.nlp.parser.lexparser.ParseFiles.processResults(ParseFiles.java:271) at edu.stanford.nlp.parser.lexparser.ParseFiles.parseFiles(ParseFiles.java:215) at edu.stanford.nlp.parser.lexparser.ParseFiles.parseFiles(ParseFiles.java:74) at edu.stanford.nlp.parser.lexparser.LexicalizedParser.main(LexicalizedParser.java:1513) 解决方法
您应该将文本文件分成小块,并一次一个地分配给解析器.由于解析器为整个“文档”创建了一个内存表示,它一次给出(比磁盘上的文档大几个数量级),尝试给它一个500 MB的文档是一个非常糟糕的主意.一口气.
你还应该避免使用超长的“句子”,如果随意或网页文字缺少句子分隔符,或者你正在为它们提供大桌子或乱码,这很容易发生.避免此问题的最安全方法是设置限制最大句子长度的参数,例如-maxLength 100. 您可能想要尝试神经网络依赖解析器,它可以更好地扩展到大型任务:http://nlp.stanford.edu/software/nndep.shtml. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |