2

我正在尝试运行 Dl4J 示例中的示例程序。这是程序:https
://github.com/deeplearning4j/dl4j-examples/blob/master/dl4j-examples/src/main/java/org/deeplearning4j/examples/recurrent/word2vecsentiment/Word2VecSentimentRNN.java 我只做过通过命令行获取连续输入的简单 tweek。
现在,当我输入完美的英文句子时,它会给我输出情绪。但是当我输入一些奇怪的东西时,它会抛出异常。
这是示例:

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)

我想知道如何避免此类问题?我想知道我是否应该为程序提供输入或只是说句子不正确?我怎么知道没有拼写错误?简而言之,如何判断给程序输入的句子?
请建议。我很想知道解决方案。

4

1 回答 1

1

如果我不得不猜测问题是您提交的单词不在 word2vec 词汇表中,那么当它找不到eweweerfsd. 简单的解决方案是跳过包含未知词汇单词的句子或删除未知单词或用 word2vec 词汇表中的稀有单词替换未知单词。

于 2017-03-10T08:07:10.427 回答