0

CDH 4 で OpenNLP 1.5.2 を使用していますが、異常な問題が発生します。

jUnit テストを実行すると、すべてが成功します。localJobRunner モード (疑似または完全モード) で実行すると、多くの名前が常に認識されるとは限らず、何かを期待していたときに「空白の」スパンが返されます。

はい、ローカル/疑似/完全モードで見つからない名前は、私の jUnit テストにあります!

電話をかけるたびに、一度に 1 文ずつ渡します。文を String[] にトークン化し、これらのトークンを使用して検出します。

私が呼んでいるものの例は次のとおりです。

result = Parser.tokenizedNamedEntityRecognition("PK FRESH IGA PLUS LI PORT KENNEDY WA", nameFinder);
assertEquals("IGA", result);

nameFinder の場所:

InputStream modelIn;         
try {
  modelIn = new FileInputStream(System.getProperty("user.home") + "pathToModel" + MRConstants.c_namedEntityRecognitionModelFile);
} catch (FileNotFoundException e) {
  fail("fail message here");
}
NameFinderME nameFinder = new NameFinderME(new TokenNameFinderModel(modelIn));

呼び出されたメソッドで私がやっている:

String tokens[] = sentence.split(MRConstants.c_singleSpace);
Span nameSpans[] = nameFinder.find(tokens);

私の map メソッドを介して呼び出された場合、常に名前が抽出されるとは限りません。失敗率は20%くらいだと思います。

多くの訓練された文の 1 つの例は次のとおりです。

PK FRESH <START:name> IGA <END> PLUS LI PORT KENNEDY WA

同じモデルで同じメソッドを呼び出すと、ローカル/疑似/フルモードで実行しているときに機能することがありますが、常にjUnitで機能する理由はよくわかりません。

どんな洞察もいただければ幸いです:)

4

1 に答える 1

0

解決済み:ドキュメント間のアダプティブ データをクリアしていませんでした。私に代わってばかげた間違い!

于 2013-04-03T23:42:48.033 に答える