我怎样才能关闭斯坦福大学的CoreNLP消息(见文章的结尾)?我第一次尝试在log4j.category.edu.stanford=OFF中设置log4j.properties,但这没有帮助,所以我发现它显然使用了一个名为"Redwood“的非标准日志框架。根据http://nlp.stanford.edu/nlp/javadoc/javanlp/,有一个文档,但它是受密码保护的。我试过RedwoodConfiguration.empty().apply();,但也没什么用。
日志消息:
Adding annotator tokenize
Adding annotator ssplit
Adding annotator pos
Loading default properties from tagger edu/stanford/nlp/models/pos-tagger/english-left3words/english-left3words-distsim.tagger
Reading POS tagger model from edu/stanford/nlp/models/pos-tagger/english-left3words/english-left3words-distsim.tagger ... done [1,2 sec].P.S.:Redwood.hideAllChannels();也不能工作。然而,下面是我自己的日志语句(但不是来自StanfordCoreNLP的日志语句):
RedwoodConfiguration.empty().apply();
Redwood.log("test redwood");解决方案 Ok,StevenC是对的,它毕竟不是日志语句,但默认的初始化消息被写入stderr,这是我没想到的,因为斯坦福有自己的日志记录框架,然后不使用它:-)
不管怎样,他的暗示让我发现了这个解决方案:
// shut off the annoying intialization messages
RedwoodConfiguration.empty().captureStderr().apply();
nlp = new StanfordCoreNLP(myproperties);
// enable stderr again
RedwoodConfiguration.current().clear().apply();发布于 2014-02-18 11:02:45
您还可以在Redwood项目中找到GitHub上的Redwood教程PDF。
url在这个页面中:https://github.com/gangeli/redwood/blob/master/doc/tutorial.pdf
(显然,我无法告诉您文档是否相同,因为我也不知道用户名/密码:-)
更进一步说,我链接到的教程PDF实际上只是一个幻灯片。如果您想要属性文件的文档,我能找到的最好的是RedwoodConfiguration.parse方法的javadocs。实际上,javadoc类的其余部分可能是您会找到的最好的文档.没有阅读源代码。
警告..。有迹象表明,GitHub上的独立红木代码可能与NLP代码库中的版本不同。
发布于 2017-05-19 08:33:03
StanfordNLP使用Redwood作为日志记录框架。在初始化StanfordNLP管道之前,必须禁用它。
import edu.stanford.nlp.util.logging.RedwoodConfiguration;
RedwoodConfiguration.current().clear().apply();
StanfordCoreNLP pipeline = new StanfordCoreNLP(props);对我来说很管用。在运行程序时,它不会在每一行中显示冗长的信息信息。
希望能帮上忙!
发布于 2018-02-12 10:17:56
可以通过将空白输出流设置为系统错误流来解决此问题。
请在类似的线程https://stackoverflow.com/a/48743963/1303210中看到我的答案。
https://stackoverflow.com/questions/21851217
复制相似问题