我正在尝试从Dl4J示例运行示例程序。以下是该计划:https://github.com/deeplearning4j/dl4j-examples/blob/master/dl4j-examples/src/main/java/org/deeplearning4j/examples/recurrent/word2vecsentiment/Word2VecSentimentRNN.java
我只做了一个简单的调整,通过命令行获得连续输入
现在,当我输入完美的英语句子时,它会让我输出情绪。但是当我输入一些奇怪的东西时,它会引发异常
这是一个例子:
eweweerfsd dfddfdr
Exception in thread "main" org.nd4j.linalg.exception.ND4JIllegalStateException: Invalid shape: Requested INDArray shape [1, 300, 0] contains dimension size values < 1 (all dimensions must be 1 or more)
at org.nd4j.linalg.factory.Nd4j.checkShapeValues(Nd4j.java:4654)
at org.nd4j.linalg.factory.Nd4j.create(Nd4j.java:4644)
at org.nd4j.linalg.factory.Nd4j.create(Nd4j.java:3810)
at sf.sentiment.analyzer.core.SentimentAnalyser.getDataSet(SentimentAnalyser.java:77)
at sf.sentiment.analyzer.core.SentimentAnalyser.predict(SentimentAnalyser.java:46)
at sf.sentiment.analyzer.SentimentAnalysis.main(SentimentAnalysis.java:59)
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:498)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
我想知道如何避免这类问题?我想知道我能否找到我是否应该对该计划提供意见或只是说该句子不合适?怎么知道没有法术错误?简而言之,如何判断为该程序提供输入的句子?
请建议。我很想知道解决方案。
答案 0 :(得分:1)
如果我不得不猜测问题是你提交的词语不在word2vec词汇表中,那么当它找不到eweweerfsd
的词汇向量时就会出错。简单的解决方案是跳过具有未知词汇单词的句子或删除未知单词或用word2vec词汇表中的罕见单词替换未知单词。