首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >指定StanfordCoreNLP模型的路径

指定StanfordCoreNLP模型的路径
EN

Stack Overflow用户
提问于 2013-02-07 01:31:18
回答 4查看 4.5K关注 0票数 3

我正在使用使用IKVM.NET的StandordCoreNLP。有没有办法指定解析器模型的路径

代码语言:javascript
复制
   var pipeLine = new StanfordCoreNLP(props);

抛出异常:

代码语言:javascript
复制
java.lang.RuntimeException: java.io.IOException: Unable to resolve
"edu/stanford/nlp/models/pos-tagger/english-left3words/english-left3words-distsim.tagger"
as either class path, filename or URL
EN

回答 4

Stack Overflow用户

发布于 2015-02-25 07:46:18

如果不在类路径中包含models.jar,则这是完整的属性集。

代码语言:javascript
复制
Properties props = new Properties();
String modPath = "<YOUR PATH TO MODELS>/models3.4/edu/stanford/nlp/models/";
props.put("pos.model", modPath + "pos-tagger/english-left3words/english-left3words-distsim.tagger");
props.put("ner.model", modPath + "ner/english.all.3class.distsim.crf.ser.gz");
props.put("parse.model", modPath + "lexparser/englishPCFG.ser.gz");
props.put("annotators", "tokenize, ssplit, pos, lemma, ner, parse, dcoref");
props.put("sutime.binders","0");
props.put("sutime.rules", modPath + "sutime/defs.sutime.txt, " + modPath + "sutime/english.sutime.txt");
props.put("dcoref.demonym", modPath + "dcoref/demonyms.txt");
props.put("dcoref.states", modPath + "dcoref/state-abbreviations.txt");
props.put("dcoref.animate", modPath + "dcoref/animate.unigrams.txt");
props.put("dcoref.inanimate", modPath + "dcoref/inanimate.unigrams.txt");
props.put("dcoref.big.gender.number", modPath + "dcoref/gender.data.gz");
props.put("dcoref.countries", modPath + "dcoref/countries");
props.put("dcoref.states.provinces", modPath + "dcoref/statesandprovinces");
props.put("dcoref.singleton.model", modPath + "dcoref/singleton.predictor.ser");
票数 8
EN

Stack Overflow用户

发布于 2013-08-29 22:56:43

看看你是如何定义你的属性的会很有帮助。如果您使用的是默认属性,那么您可能只是在类路径中缺少models.jar (就像3.2版的this one )。下载它,并确保它已加载。

如果以其他方式配置属性,则字符串中可能存在导致IO错误的语法错误。下面是我用于加载不同pos.model的自定义属性:

代码语言:javascript
复制
Properties props = new Properties();
// using wsj-bidirectional model
props.put("pos.model", "edu/stanford/nlp/models/pos-tagger/wsj-bidirectional/wsj-0-18-bidirectional-distsim.tagger");
// using standard pipeline
props.put("annotators", "tokenize, ssplit, pos, lemma, parse");
// create pipeline
StanfordCoreNLP pipeline = new StanfordCoreNLP(props);

重要的是要注意,路径中没有前导斜杠/

如果这还不能解决问题,请查看Galal Aly's tutorial,其中标记器是从模型文件中提取出来并单独加载的。

票数 6
EN

Stack Overflow用户

发布于 2013-02-21 08:57:43

我不知道您是否可以使用IKVM.NET访问jar文件中的资源,但是您肯定可以解压jar文件以获得常规的操作系统文件(jar -xf models.jar),并将模型作为文件加载。您需要镜像jar文件的目录结构(路径类似于上面的示例,并使用相对路径),或者需要为props文件中的所有模型设置属性,以提供可以找到它们的文件路径。参见pos.modelner.modelparse.model等。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14735212

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档