Java,Stanford NLP:无法验证JAR条目:contifter_of_residence.rules仅在Wi



我正在努力在系统上集成斯坦福NLP 3.7.0,我们在Linux系统上没有问题,但是Windows Development Machine正面临问题。我在Class Path中添加了Stanford-Parser及其Javadoc,模型是Maven的一部分。这是我们启动项目时遇到的错误:

错误日志:

java.lang.IllegalArgumentException: Unable to validate JAR entry with name edu/stanford/nlp/models/kbp/tokensregex/per:countries_of_residence.rules
                at org.apache.catalina.loader.WebappClassLoaderBase.findResourceInternal(WebappClassLoaderBase.java:3359)
                at org.apache.catalina.loader.WebappClassLoaderBase.findResource(WebappClassLoaderBase.java:1424)
                at org.apache.catalina.loader.WebappClassLoaderBase.getResourceAsStream(WebappClassLoaderBase.java:1652)
                at edu.stanford.nlp.io.IOUtils.findStreamInClasspathOrFileSystem(IOUtils.java:407)
                at edu.stanford.nlp.io.IOUtils.getInputStreamFromURLOrClasspathOrFileSystem(IOUtils.java:461)
                at edu.stanford.nlp.io.IOUtils.readStreamFromString(IOUtils.java:390)
                at edu.stanford.nlp.parser.lexparser.LexicalizedParser.getParserFromSerializedFile(LexicalizedParser.java:601)
                at edu.stanford.nlp.parser.lexparser.LexicalizedParser.getParserFromFile(LexicalizedParser.java:405)
                at edu.stanford.nlp.parser.lexparser.LexicalizedParser.loadModel(LexicalizedParser.java:187)
                at edu.stanford.nlp.parser.lexparser.LexicalizedParser.loadModel(LexicalizedParser.java:166)
                at com.tooltank.spring.service.GroupCanvasServiceImpl.<init>(GroupCanvasServiceImpl.java:56)
                at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
                at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
                at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
                at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
Caused by: java.io.IOException: Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch
                at java.io.WinNTFileSystem.canonicalize0(Native Method)
                at java.io.WinNTFileSystem.canonicalize(WinNTFileSystem.java:428)
                at java.io.File.getCanonicalPath(File.java:618)
                at org.apache.catalina.loader.WebappClassLoaderBase.findResourceInternal(WebappClassLoaderBase.java:3352)

pom.xml:

<dependency>
            <groupId>edu.stanford.nlp</groupId>
            <artifactId>stanford-parser</artifactId>
            <version>3.7.0</version>
        </dependency>

     <dependency>
            <groupId>edu.stanford.nlp</groupId>
            <artifactId>stanford-corenlp</artifactId>
            <version>3.7.0</version>
        </dependency>
        <dependency>
            <groupId>edu.stanford.nlp</groupId>
            <artifactId>stanford-corenlp</artifactId>
            <version>3.7.0</version>
            <classifier>models</classifier>
        </dependency>

有什么想法吗?谢谢。

解决方案

<dependency>
            <groupId>edu.stanford.nlp</groupId>
            <artifactId>stanford-corenlp</artifactId>
            <version>3.7.0</version>
            <classifier>models</classifier>
            <exclusions>
                <exclusion>
                    <groupId>edu.stanford.nlp</groupId>
                    <artifactId>stanford-corenlp-3.7.0-models-kbp</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

有一个已知的问题,某些KBP关系提取器资源的文件名在Windows上不起作用。它们是用":"在窗户上不良的"制成的。我们将在某个时候将它们更改为更友好的窗户。如果您不使用Windows上的KBP注释,我认为此问题会消失,您可能还需要排除Stanford-Corenlp-3.7.0-Models-kbp.jar。

相关内容

最新更新