0

以下のコード行が何をするのか誰かが私に説明できるかどうか疑問に思っていましたか?

while((sample = samples.read()) != null)

最初sampleに の次の行と等しく設定してから、samples空でないことを確認しますか?

これはより一般的な質問ですが、誰かが OpenNLP の優れたチュートリアルを持っている場合は、それも非常にありがたいです。

メソッド全体は次のとおりです。

public static Dictionary buildNGramDictionary(ObjectStream samples, int cutoff) throws IOException {

    NGramModel ngramModel = new NGramModel();
    POSSample sample;

    while((sample = samples.read()) != null) {
        String[] words = sample.getSentence();
        if (words.length > 0)
            ngramModel.add(new StringList(words), 1, 1);
    }

    ngramModel.cutoff(cutoff, Integer.MAX_VALUE);
    return ngramModel.toDictionary(true);
}

4

2 に答える 2

3
  1. samples.read()の戻り値をsample変数に割り当てます
  2. samplenullでないかどうかを確認してから、whileループの本体を実行します。
于 2012-07-12T20:13:50.637 に答える
2

式の評価は、演算子の優先順位によって決定されます。角かっこはより優先順位が高いため、角かっこ
内の式(sample = samples.read())が最初に評価されます。()!=

于 2012-07-12T20:17:23.827 に答える