Stanford NER在Docker上引发异常

时间:2019-02-01 12:56:05

标签: java .net docker mono stanford-nlp

我有一个.net 472可执行文件,它使用https://www.nuget.org/packages/Stanford.NLP.NER/ nuget程序包。

            var classifierPath = (config.ClassifierDirectory ?? DEFAULT_CLASSIFIER_DIRECTORY) + @"\english.all.3class.distsim.crf.ser.gz";
            _entityClassifier = CRFClassifier.getClassifierNoExceptions(classifierPath);

这在Windows上绝对可以正常工作。

但是,当我创建一个Linux docker容器并在mono上运行它时,会出现此异常:

  

处理请求时出错。   错误:edu.stanford.nlp.io.RuntimeIOException:java.io.IOException:   打不开   “ Stanford \ Classifiers \ english.all.3class.distsim.crf.ser.gz”作为类   路径,文件名或URL

我已经检查过,并且该文件肯定在docker容器内。

这是我的dockerfile:

FROM mono

RUN apt-get update

RUN mkdir /dotnet

WORKDIR /dotnet

ARG PROJECT_NAME

COPY $PROJECT_NAME/bin/Release/net472/publish .

ENV ENTRY_POINT=$PROJECT_NAME.exe

RUN rm config.json

RUN chmod a+rwx -R .

CMD mono $ENTRY_POINT

谁能建议这可能是什么原因,以及我该如何解决?

编辑:

我是一个白痴。我要做的就是从Windows路径更改为linux路径:

            var classifierPath = (config.ClassifierDirectory ?? DEFAULT_CLASSIFIER_DIRECTORY) + @"/english.all.3class.distsim.crf.ser.gz";

工作绝对没问题!

0 个答案:

没有答案