如何抑制斯坦福 NLP ColumnDataClassifier.makeClassifier() 函数的标准输出

Posted

技术标签:

【中文标题】如何抑制斯坦福 NLP ColumnDataClassifier.makeClassifier() 函数的标准输出【英文标题】:How to suppress stdout for Stanford NLP ColumnDataClassifier.makeClassifier() function 【发布时间】:2014-03-05 21:15:42 【问题描述】:

我正在打电话给edu.stanford.nlp.classify.ColumnDataClassifier.makeClassifier(),我需要阻止它生成的标准。我尝试在 .prop 文件中设置displayedColumn=-1,但它对我没有帮助。以下是我要消除的控制台输出makeClassifier() 生成。有人可以帮忙吗?

控制台输出:

QNMinimizer called on double function of 1596 variables, using M = 15.
               An explanation of the output:
Iter           The number of iterations
evals          The number of function evaluations
SCALING        <D> Diagonal scaling was used; <I> Scaled Identity
LINESEARCH     [## M steplength]  Minpack linesearch
                   1-Function value was too high
                   2-Value ok, gradient positive, positive curvature
                   3-Value ok, gradient negative, positive curvature
                   4-Value ok, gradient negative, negative curvature
               [.. B]  Backtracking
VALUE          The current function value
TIME           Total elapsed time
|GNORM|        The current norm of the gradient
RELNORM      The ratio of the current to initial gradient norms
AVEIMPROVE     The average improvement / current value
EVALSCORE      The last available eval score

Iter ## evals ## <SCALING> [LINESEARCH] VALUE TIME |GNORM| RELNORM AVEIMPROVE EVALSCORE

Iter 1 evals 1 <D> [M 1.000E-1] 6.808E-1 0.00s |3.890E-1| 1.111E-2 0.000E0 - 

【问题讨论】:

【参考方案1】:

在不详细了解斯坦福 NLP 的情况下(可能是,他们通过 API 提供了一些重定向...提前检查!),但您始终可以做的是重定向 整个 stderr和标准输出,通过使用System.setOut(PrintStream) 和/或System.setErr(PrintStream) 并提供您自己的PrintStream

【讨论】:

感谢您的建议。抱歉,我之前必须提到过,我尝试按照这里的建议覆盖 write() 但令人惊讶的是 makeClassifier 仍然将输出转储到 stdout。link

以上是关于如何抑制斯坦福 NLP ColumnDataClassifier.makeClassifier() 函数的标准输出的主要内容,如果未能解决你的问题,请参考以下文章

用于 python 的斯坦福 nlp

斯坦福nlp:解析树

斯坦福 NLP 工具和大量文本

斯坦福NLP课程 | 第6讲

斯坦福NLP课程 | 第3讲

斯坦福NLP课程 | 第10讲