- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试开始使用 Stanford CoreNLP,甚至无法通过这里的第一个简单示例。
这是我的代码:
package stanford.corenlp;
import java.io.File;
import java.io.IOException;
import java.nio.charset.Charset;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import com.google.common.io.Files;
import edu.stanford.nlp.dcoref.CorefChain;
import edu.stanford.nlp.dcoref.CorefCoreAnnotations.CorefChainAnnotation;
import edu.stanford.nlp.ling.CoreAnnotations.NamedEntityTagAnnotation;
import edu.stanford.nlp.ling.CoreAnnotations.PartOfSpeechAnnotation;
import edu.stanford.nlp.ling.CoreAnnotations.SentencesAnnotation;
import edu.stanford.nlp.ling.CoreAnnotations.TextAnnotation;
import edu.stanford.nlp.ling.CoreAnnotations.TokensAnnotation;
import edu.stanford.nlp.ling.CoreLabel;
import edu.stanford.nlp.pipeline.Annotation;
import edu.stanford.nlp.pipeline.StanfordCoreNLP;
import edu.stanford.nlp.semgraph.SemanticGraph;
import edu.stanford.nlp.semgraph.SemanticGraphCoreAnnotations.CollapsedCCProcessedDependenciesAnnotation;
import edu.stanford.nlp.trees.Tree;
import edu.stanford.nlp.trees.TreeCoreAnnotations.TreeAnnotation;
import edu.stanford.nlp.util.CoreMap;
import java.util.logging.Level;
import java.util.logging.Logger;
private void test2() {
// creates a StanfordCoreNLP object, with POS tagging, lemmatization, NER, parsing, and coreference resolution
Properties props = new Properties();
props.setProperty("annotators", "tokenize, ssplit, pos, lemma, ner, parse, dcoref");
StanfordCoreNLP pipeline = new StanfordCoreNLP(props);
// read some text in the text variable
String text = "Now is the time for all good men to come to the aid of their country.";
// create an empty Annotation just with the given text
Annotation document = new Annotation(text);
// run all Annotators on this text
pipeline.annotate(document);
}
public static void main(String[] args) throws IOException {
StanfordNLP nlp = new StanfordNLP();
nlp.test2();
}
}
这是堆栈跟踪:
Adding annotator tokenize
No tokenizer type provided. Defaulting to PTBTokenizer.
Adding annotator ssplit
Adding annotator pos
Exception in thread "main" edu.stanford.nlp.io.RuntimeIOException: Error while loading a tagger model (probably missing model file)
at edu.stanford.nlp.tagger.maxent.MaxentTagger.readModelAndInit(MaxentTagger.java:791)
at edu.stanford.nlp.tagger.maxent.MaxentTagger.<init>(MaxentTagger.java:312)
at edu.stanford.nlp.tagger.maxent.MaxentTagger.<init>(MaxentTagger.java:265)
at edu.stanford.nlp.pipeline.POSTaggerAnnotator.loadModel(POSTaggerAnnotator.java:85)
at edu.stanford.nlp.pipeline.POSTaggerAnnotator.<init>(POSTaggerAnnotator.java:73)
at edu.stanford.nlp.pipeline.AnnotatorImplementations.posTagger(AnnotatorImplementations.java:55)
at edu.stanford.nlp.pipeline.StanfordCoreNLP.lambda$getNamedAnnotators$42(StanfordCoreNLP.java:496)
at edu.stanford.nlp.pipeline.StanfordCoreNLP.lambda$getDefaultAnnotatorPool$65(StanfordCoreNLP.java:533)
at edu.stanford.nlp.util.Lazy$3.compute(Lazy.java:118)
at edu.stanford.nlp.util.Lazy.get(Lazy.java:31)
at edu.stanford.nlp.pipeline.AnnotatorPool.get(AnnotatorPool.java:146)
at edu.stanford.nlp.pipeline.StanfordCoreNLP.construct(StanfordCoreNLP.java:447)
at edu.stanford.nlp.pipeline.StanfordCoreNLP.<init>(StanfordCoreNLP.java:150)
at edu.stanford.nlp.pipeline.StanfordCoreNLP.<init>(StanfordCoreNLP.java:146)
at edu.stanford.nlp.pipeline.StanfordCoreNLP.<init>(StanfordCoreNLP.java:133)
at stanford.corenlp.StanfordNLP.test2(StanfordNLP.java:93)
at stanford.corenlp.StanfordNLP.main(StanfordNLP.java:108)
Caused by: java.io.IOException: Unable to open "edu/stanford/nlp/models/pos-tagger/english-left3words/english-left3words-distsim.tagger" as class path, filename or URL
at edu.stanford.nlp.io.IOUtils.getInputStreamFromURLOrClasspathOrFileSystem(IOUtils.java:480)
at edu.stanford.nlp.tagger.maxent.MaxentTagger.readModelAndInit(MaxentTagger.java:789)
... 16 more
C:\Users\Greg\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java returned: 1
BUILD FAILED (total time: 0 seconds)
我错过了什么?
最佳答案
首先,您需要将 stanford-corenlp-3.8.0.jar 添加到类路径中。这使得 NetBeans 中的红色错误标记消失了。但是您还需要将 stanford-corenlp-3.8.0-models.jar 添加到类路径中以防止我记录的错误。将它所在的文件夹添加到类路径中不起作用。像这样的细节不应该被排除在初学者文档之外!
现在,如果您继续该示例并添加新内容,则会出现更多错误。例如,代码将如下所示:
package stanford.corenlp;
import java.io.File;
import java.io.IOException;
import java.nio.charset.Charset;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import com.google.common.io.Files;
import edu.stanford.nlp.dcoref.CorefChain;
import edu.stanford.nlp.dcoref.CorefCoreAnnotations.CorefChainAnnotation;
import edu.stanford.nlp.ling.CoreAnnotations.NamedEntityTagAnnotation;
import edu.stanford.nlp.ling.CoreAnnotations.PartOfSpeechAnnotation;
import edu.stanford.nlp.ling.CoreAnnotations.SentencesAnnotation;
import edu.stanford.nlp.ling.CoreAnnotations.TextAnnotation;
import edu.stanford.nlp.ling.CoreAnnotations.TokensAnnotation;
import edu.stanford.nlp.ling.CoreLabel;
import edu.stanford.nlp.pipeline.Annotation;
import edu.stanford.nlp.pipeline.StanfordCoreNLP;
import edu.stanford.nlp.semgraph.SemanticGraph;
import edu.stanford.nlp.semgraph.SemanticGraphCoreAnnotations.CollapsedCCProcessedDependenciesAnnotation;
import edu.stanford.nlp.trees.Tree;
import edu.stanford.nlp.trees.TreeCoreAnnotations.TreeAnnotation;
import edu.stanford.nlp.util.CoreMap;
import edu.stanford.nlp.util.PropertiesUtils;
import java.util.logging.Level;
import java.util.logging.Logger;
private void test2() {
// creates a StanfordCoreNLP object, with POS tagging, lemmatization, NER, parsing, and coreference resolution
Properties props = new Properties();
props.setProperty("annotators", "tokenize, ssplit, pos, lemma, ner, parse, dcoref");
StanfordCoreNLP pipeline = new StanfordCoreNLP(
PropertiesUtils.asProperties(
"annotators", "tokenize,ssplit,pos,lemma,parse,natlog",
"ssplit.isOneSentence", "true",
"parse.model", "edu/stanford/nlp/models/srparser/englishSR.ser.gz",
"tokenize.language", "en"));
// read some text in the text variable
String text = "Now is the time for all good men to come to the aid of their country.";
// create an empty Annotation just with the given text
Annotation document = new Annotation(text);
// run all Annotators on this text
pipeline.annotate(document);
// these are all the sentences in this document
// a CoreMap is essentially a Map that uses class objects as keys and has values with custom types
List<CoreMap> sentences = document.get(SentencesAnnotation.class);
for (CoreMap sentence: sentences) {
// traversing the words in the current sentence
// a CoreLabel is a CoreMap with additional token-specific methods
for (CoreLabel token: sentence.get(TokensAnnotation.class)) {
// this is the text of the token
String word = token.get(TextAnnotation.class);
// this is the POS tag of the token
String pos = token.get(PartOfSpeechAnnotation.class);
// this is the NER label of the token
String ne = token.get(NamedEntityTagAnnotation.class);
System.out.println("word="+word +", pos="+pos +", ne="+ne);
}
// this is the parse tree of the current sentence
Tree tree = sentence.get(TreeAnnotation.class);
// this is the Stanford dependency graph of the current sentence
SemanticGraph dependencies = sentence.get(CollapsedCCProcessedDependenciesAnnotation.class);
}
// This is the coreference link graph
// Each chain stores a set of mentions that link to each other,
// along with a method for getting the most representative mention
// Both sentence and token offsets start at 1!
Map<Integer, CorefChain> graph =
document.get(CorefChainAnnotation.class);
}
public static void main(String[] args) throws IOException {
StanfordNLP nlp = new StanfordNLP();
nlp.test2();
}
}
堆栈跟踪变为:
run:
Adding annotator tokenize
Adding annotator ssplit
Adding annotator pos
Loading POS tagger from edu/stanford/nlp/models/pos-tagger/english-left3words/english-left3words-distsim.tagger ... done [0.6 sec].
Adding annotator lemma
Adding annotator parse
Exception in thread "main" edu.stanford.nlp.io.RuntimeIOException: java.io.IOException: Unable to open "edu/stanford/nlp/models/srparser/englishSR.ser.gz" as class path, filename or URL
at edu.stanford.nlp.parser.common.ParserGrammar.loadModel(ParserGrammar.java:187)
at edu.stanford.nlp.pipeline.ParserAnnotator.loadModel(ParserAnnotator.java:219)
at edu.stanford.nlp.pipeline.ParserAnnotator.<init>(ParserAnnotator.java:121)
at edu.stanford.nlp.pipeline.AnnotatorImplementations.parse(AnnotatorImplementations.java:115)
at edu.stanford.nlp.pipeline.StanfordCoreNLP.lambda$getNamedAnnotators$50(StanfordCoreNLP.java:504)
at edu.stanford.nlp.pipeline.StanfordCoreNLP.lambda$getDefaultAnnotatorPool$65(StanfordCoreNLP.java:533)
at edu.stanford.nlp.util.Lazy$3.compute(Lazy.java:118)
at edu.stanford.nlp.util.Lazy.get(Lazy.java:31)
at edu.stanford.nlp.pipeline.AnnotatorPool.get(AnnotatorPool.java:146)
at edu.stanford.nlp.pipeline.StanfordCoreNLP.construct(StanfordCoreNLP.java:447)
at edu.stanford.nlp.pipeline.StanfordCoreNLP.<init>(StanfordCoreNLP.java:150)
at edu.stanford.nlp.pipeline.StanfordCoreNLP.<init>(StanfordCoreNLP.java:146)
at edu.stanford.nlp.pipeline.StanfordCoreNLP.<init>(StanfordCoreNLP.java:133)
at stanford.corenlp.StanfordNLP.test2(StanfordNLP.java:95)
at stanford.corenlp.StanfordNLP.main(StanfordNLP.java:145)
Caused by: java.io.IOException: Unable to open "edu/stanford/nlp/models/srparser/englishSR.ser.gz" as class path, filename or URL
at edu.stanford.nlp.io.IOUtils.getInputStreamFromURLOrClasspathOrFileSystem(IOUtils.java:480)
at edu.stanford.nlp.io.IOUtils.readObjectFromURLOrClasspathOrFileSystem(IOUtils.java:309)
at edu.stanford.nlp.parser.common.ParserGrammar.loadModel(ParserGrammar.java:184)
... 14 more
C:\Users\Greg\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java returned: 1
BUILD FAILED (total time: 1 second)
我终于通过下载并添加到类路径 stanford-english-corenlp-2017-06-09-models.jar 来克服这一点,您可以从此处的“英语”下载链接获取:
尽管下载页面上的消息说 corenlp 下载中已经提供了英语所需的一切,但您仍需要执行此操作!
关于stanford-nlp - Stanford CoreNLP BasicPipelineExample 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44910934/
网站corenlp.run这应该是 CoreNLP 的演示站点,它显示了与我在本地机器上运行 CoreNLP 管道时完全不同的结果。 该网站实际上显示了正确的结果,而本地机器版本则没有。我想知道是否有
我不明白如何从我的 Java 应用程序加载 CoreNLP 的 Shift-Reduce Constituency Parser (SRCP)。 我正在使用 Apache Maven 来管理我的项目的
我正在尝试部署 stanford-corenlp-3.2.0-models.jar 但我的主机说 jar 太大? 如果我只是想使用 POS,我可以使用什么 jar 来代替。 或者我怎样才能分割 jar
当我启动CoreNLP Server时在 Linux 上: java -mx4g -cp "*" edu.stanford.nlp.pipeline.StanfordCoreNLPServer -po
从 https://github.com/stanfordnlp/CoreNLP 下载 CoreNLP 。当我运行时 $ java -mx4g src.edu.stanford.nlp.parser.
我正在尝试使用 Stanford CoreNLP。我使用了网络上的一些代码来了解 coreference 工具的运行情况。我尝试在 Eclipse 中运行该项目,但一直遇到内存不足异常。我尝试增加堆大
我正在使用斯坦福 coreNLP ( http://nlp.stanford.edu/software/corenlp.shtml ) 来解析句子并提取单词之间的依赖关系。 我已经设法像提供的链接中的
我正在尝试使用 Stanford coreNLP 将句子拆分为单词。我对包含撇号的单词有疑问。 例如,句子:我今年 24 岁。 像这样拆分:[我]['][24][岁][老] 是否可以使用 Stanfo
我想使用斯坦福 CoreNLP(或其他工具)提取两个实体之间的完整关系。 例如: Windows is more popular than Linux. This tool requires Java
stanford-corenlp 中的默认线程数是多少?具体来说,命名实体提取器,然后是信息提取器。另外,我希望两者都使用单个线程进行调试,我该如何设置? 谢谢! 最佳答案 默认为 1 个线程。 有两
我试图让斯坦福 CoreNLP 作为服务器正常运行(尽管问题可能会影响非服务器使用),但不断收到此错误: "ERROR CoreNLP - Failure to load language speci
在从斯坦福 CoreNLP 网站构建示例应用程序时,我遇到了一个奇怪的异常: Exception in thread "main" java.lang.RuntimeException: edu.st
我已经在 Eclipse 中设置了一个 Maven 项目。 他们只是一个类,src/main/java/App.java 包 com.nlptools.corenlp; import java.uti
我正在使用 CoreNlp 从大文本中提取信息。然而,它使用“三重”方法,其中单个句子产生许多输出,这很好,但有些句子没有意义。我试图通过运行另一个无监督 NLP 并尝试利用 CoreNlp 中的函数
我的代码开头有以下内容: import twitter4j.*; import java.util.List; import java.util.Properties; import ja
我正在尝试按照http://nlp.stanford.edu/downloads/corenlp.shtml中的说明在Stanford CoreNLP中添加一个新的注释器。 “添加新注释器Stanfo
我刚开始使用 Java 编写的程序,并且在让斯坦福CoreNLP 做它应该做的事情时遇到了很多麻烦。我将程序解压到它自己的目录中,并向其中添加了程序应该处理的 XML 文件。我用来在命令行中处理文件的
我正在尝试使用斯坦福 CoreNLP 关系提取器 ( http://nlp.stanford.edu/software/relationExtractor.shtml )。 我已经安装了 CoreNL
我在使用斯坦福大学的句子注释器时遇到了问题。作为输入,我得到了文本,其中包含句子,但其中某些部分的点后没有空格。像这样: Dog loves cat.Cat loves mouse. Mouse ha
我正在研究以下问题:我想使用 Stanford CoreNLP 将句子拆分为子句。例句可以是: "Richard is working with CoreNLP, but does not reall
我是一名优秀的程序员,十分优秀!