簡體   English   中英

“ AWT-EventQueue-1” java.lang.OutOfMemoryError:Java堆空間

[英]“AWT-EventQueue-1” java.lang.OutOfMemoryError: Java heap space

我必須使用斯坦福解析器標記句子

對於每個句子,我加載EnglishPCFGrammer文件並使用stanford解析器找到標簽,它對單個句子有效,但是當我給出多個句子時,我得到此異常..有人幫助


Loading parser from serialized file englishPCFG.ser.gz ... done [7.7 sec].
Exception in thread "AWT-EventQueue-1" java.lang.OutOfMemoryError: Java heap space
        at edu.stanford.nlp.parser.lexparser.ExhaustivePCFGParser.createArrays(ExhaustivePCFGParser.java:2056)
        at edu.stanford.nlp.parser.lexparser.ExhaustivePCFGParser.considerCreatingArrays(ExhaustivePCFGParser.java:2027)
        at edu.stanford.nlp.parser.lexparser.ExhaustivePCFGParser.parse(ExhaustivePCFGParser.java:315)
        at edu.stanford.nlp.parser.lexparser.LexicalizedParser.parse(LexicalizedParser.java:375)
        at edu.stanford.nlp.parser.lexparser.LexicalizedParser.apply(LexicalizedParser.java:279)
        at finalproj.logic.SentenceTagger.tagSentence(SentenceTagger.java:25)
        at finalproj.logic.SentenceToXMLWriter.addSentence(SentenceToXMLWriter.java:62)
        at finalproj.logic.SentenceSplitter.splitFile(SentenceSplitter.java:24)
        at finalproj.ui.LoadReqFile.jBtnSentenceSplitActionPerformed(LoadReqFile.java:126)
        at finalproj.ui.LoadReqFile.access$200(LoadReqFile.java:21)
        at finalproj.ui.LoadReqFile$3.actionPerformed(LoadReqFile.java:70)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
        at java.awt.Component.processMouseEvent(Component.java:6038)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3260)
        at java.awt.Component.processEvent(Component.java:5803)
        at java.awt.Container.processEvent(Container.java:2058)
        at java.awt.Component.dispatchEventImpl(Component.java:4410)
        at java.awt.Container.dispatchEventImpl(Container.java:2116)
        at java.awt.Component.dispatchEvent(Component.java:4240)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
        at java.awt.Container.dispatchEventImpl(Container.java:2102)
        at java.awt.Component.dispatchEvent(Component.java:4240)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)

對於每個句子,我加載EnglishPCFGrammer文件

您絕對不想為每個句子加載文件。 您只需要加載一次-在解析過程開始時,只需為每個句子引用它即可。
聽起來每個單詞加載File肯定會導致OutOfMemoryError

您需要使用額外的參數啟動Java以增加堆空間。 初始空間為64MB,顯然還不夠:

java -Xms128m -Xmx256m

將以128 MByte(初始堆大小)開頭,並允許最大堆256Myte。 您可能需要一些實驗。


注意 -斯坦福解析器的“關於”頁面包含一個簡短的Java命令行示例(最后一行),其中他們使用200MByte的堆大小。 我想以此作為提示,解析器本身需要更多的64MB內存。 附加說明:此命令行示例語法錯誤,上面的示例是正確的 )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM