2016-05-14 4 views
1

私はいくつかの自然言語処理を行うAndroidアプリを作っています。 OpenNLPのモデルが大きく、apkが配布には大きすぎるため、アプリケーション自体はうまく動作します。 APKを小さくするにはどうすればよいですか?私はサーバーを使用してNLPを行うことを考えていましたが、どうすればいいのか分かりません。NLPアプリを作っていますが、モデルが大きすぎます

+0

これは単にNLPをテストすることです。私はこれでお金を稼ぐか、ビジネスを始めるつもりはありません。私のポートフォリオを構築するだけです – John

+0

ええと...私はこの質問があまりにも一般的なものとして投票されるつもりだと答えます。答えは "それは難しく、誰も答えがありません"です。たぶん次のようなものがあります:呼び出す必要があるライブラリ関数を特定し、それらの関数用のサーバーAPIを定義し、HTTP経由でREST/JSONを呼び出します。 –

+0

ええ、私もそれに沿って考えていた。ご協力いただきありがとうございます – John

答えて

0

NLP機能をサーバーに移動すると、アプリケーションがオフラインで使用できなくなり、ユーザー。それにもかかわらず、このルートに進むことを決めたら、Converting a Functional API to RESTというチュートリアルをお勧めします。このチュートリアルでは、REST API内でJavaクラスのAPI(ケースではPOSTaggerなどのOpenNLPタイプ)をラップするプロセスについて説明します。

別のオプションは、独自のモデルをトレーニングすることです(OpenNLPドキュメントのSentence Detector Trainingセクションを参照してください)。その結果、モデルがあなたのAPKに収まるように、トレーニングセットのサイズを減らすことができます。

明らかに、私は自分のトレーニングデータを編集することを推奨しません。これは、多くの労力がかかるためです。多分、あなたはoffical OpenNLP modelsに使用されているトレーニングデータを見つけて、単にトレーニングセットのサイズを減らすことができます。 OpenNLP mailing listsのいずれかに質問すると、正式なトレーニングデータを見つけるのに適している可能性があります。

公式のOpenNLPモデルをJavaプログラムにロードし、何らかの形でそれらからデータを削除することによって、OpenNLPモデルを変更することもできます。 OpenNLPツールの基礎となるアルゴリズムとデータ構造を理解しておらず、それが可能であるかどうかを判断できる場合を除いて、このルートを進めることはお勧めしません。

関連する問題