4

通常のJavaアプリケーションでopenNLP POSモデルを使用してPOSタグ付けを試みました。今、私はそれを Android プラットフォームに実装したいと考えています。モデル (バイナリ ファイル) を読み取って POS タグ付けを適切に実行できないため、Android の要件または制限が何であるかわかりません。

外部ストレージから .bin ファイルを取得し、外部ライブラリに配置しようとしましたが、それでも機能しませんでした。これらは私のコードです:

InputStream modelIn = null;
POSModel model = null;

String path = Environment.getExternalStorageDirectory().getPath() + "/TextSumIt/en-pos-maxent.bin";

modelIn = new BufferedInputStream( new FileInputStream(path));
model = new POSModel(modelIn);

私が得たエラー:

11-15 06:39:35.072: W/System.err(565): opennlp.tools.util.InvalidFormatException: The profile data stream has an invalid format!
11-15 06:39:35.177: W/System.err(565):  at opennlp.tools.dictionary.serializer.DictionarySerializer.create(DictionarySerializer.java:224)
11-15 06:39:35.177: W/System.err(565):  at opennlp.tools.postag.POSDictionary.create(POSDictionary.java:282)
11-15 06:39:35.182: W/System.err(565):  at opennlp.tools.postag.POSModel$POSDictionarySerializer.create(POSModel.java:48)
11-15 06:39:35.182: W/System.err(565):  at opennlp.tools.postag.POSModel$POSDictionarySerializer.create(POSModel.java:44)
11-15 06:39:35.182: W/System.err(565):  at opennlp.tools.util.model.BaseModel.<init>(BaseModel.java:135)
11-15 06:39:35.197: W/System.err(565):  at opennlp.tools.postag.POSModel.<init>(POSModel.java:93)
11-15 06:39:35.197: W/System.err(565):  at com.main.textsumit.SummarizationActivity.postagWords(SummarizationActivity.java:676)
11-15 06:39:35.205: W/System.err(565):  at com.main.textsumit.SummarizationActivity.generateSummary(SummarizationActivity.java:252)
11-15 06:39:35.205: W/System.err(565):  at com.main.textsumit.SummarizationActivity.onCreate(SummarizationActivity.java:127)

モデルを正しく読み取れない原因は何ですか? そして、これをどのように解決すればよいですか?助けてください。

ありがとうございました。

4

2 に答える 2

1

これがまだ問題である場合、それが価値がある場合: POS モデルを別のコンテキスト (Android 以外) で使用しようとして同様の問題が発生しました。モデル自体に関するもの。アーカイブ内の tags.tagdict ファイルにローカルにあるようです (ここで提案されているようにhttp://sharpnlp.codeplex.com/discussions/263620 )。単純なシナリオ) アーカイブから削除してみてください。(ただし、圧縮された形式で届くことが予想されるため、アーカイブはそのままにしておいてください。)

于 2012-11-26T12:06:47.163 に答える