簡體   English   中英

如何關閉Stanford CoreNLP Redwood日志記錄?

[英]How to shutdown Stanford CoreNLP Redwood logging?

如何關閉Stanford CoreNLP消息(請參閱文章結尾)? 我首先嘗試在log4j.properties中設置log4j.category.edu.stanford=OFF ,但這沒有幫助,所以我發現它顯然使用了一種稱為“ 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].

PS: Redwood.hideAllChannels(); 也行不通。 但是,以下內容禁止了我自己的日志記錄語句(但不包括來自StanfordCoreNLP的日志記錄語句):

RedwoodConfiguration.empty().apply();
Redwood.log("test redwood");

解決方案好吧,StevenC是正確的,畢竟不是日志記錄語句,但是默認的初始化消息已寫入stderr,我不希望看到Stanford有它自己的日志記錄框架,然后不使用它:-)

無論如何,他的提示使我發現了這個解決方案:

// shut off the annoying intialization messages
RedwoodConfiguration.empty().captureStderr().apply();
nlp = new StanfordCoreNLP(myproperties);
// enable stderr again
RedwoodConfiguration.current().clear().apply();

您還可以在Redwood項目的GitHub上找到Redwood教程PDF。

網址在此頁面中: https : //github.com/gangeli/redwood/blob/master/doc/tutorial.pdf

(顯然,我不能告訴您文件是否相同,因為我也不知道用戶名/密碼:-))


進一步講,我將Tutorial PDF鏈接到實際上只是一個幻燈片。 如果您需要屬性文件的文檔,那么我能找到的最好的就是RedwoodConfiguration.parse方法的javadocs。 實際上,除閱讀源代碼外,其余的javadoc類可能是最好的文檔。

警告...有跡象表明,GitHub上的獨立Redwood代碼可能與NLP代碼庫中的版本不同。

StanfordNLP使用Redwood作為日志記錄框架。 您必須先禁用它,然后再初始化StanfordNLP管道。

import edu.stanford.nlp.util.logging.RedwoodConfiguration;
RedwoodConfiguration.current().clear().apply();
StanfordCoreNLP pipeline = new StanfordCoreNLP(props);

這個對我有用。 運行程序時,它不會在每行中都顯示冗長的INFO消息。

希望能幫助到你!

可以通過將空白Output Stream設置為System error stream來解決。

請在類似的線程中查看我的答案https://stackoverflow.com/a/48743963/1303210

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM