2016-05-14 40 views
1

我正在制作一个可以进行自然语言处理的Android应用程序。该应用程序本身工作正常,除了模型OpenNLP给予大,所以apk是太大的分布。我该怎么做才能让apk变小?我想使用一个服务器做NLP,但我不知道如何去它我正在制作自然语言处理应用程序,但型号太大

+0

大声笑这只是测试NLP。我不打算从中赚钱或创业。只是为了建立我的投资组合 – John

+0

雅......我认为这个问题会被认为是过于笼统,等等。答案是“这很难,没有人回答”。可能是这样的:找出你需要调用的库函数,为这些函数定义一个服务器API,并通过HTTP调用某种REST/JSON。 –

+0

是的,我也一直在想。谢谢你的帮助 – John

回答

0

移动NLP功能的服务器将应用程序无用脱机使用,这可能是在很多人眼中的缺点用户。如果您决定采取这种方式,我推荐一个名为Converting a Functional API to REST的教程,它描述了在REST API中封装一个Java类(在您的情况下是OpenNLP类型,例如POSTagger)的API的过程。

另一种办法是培养自己的模型(见实例OpenNLP文档中的Sentence Detector Training部分)。然后,您可以减小训练集的大小,使得生成的模型适合您的apk。

很显然,我不会建议自己编译的训练数据,因为这将需要很多的努力。也许你可以找到用于offical OpenNLP models的训练数据,然后简单地减小训练集的大小。向OpenNLP mailing lists之一提问可能是找到官方培训数据的一个很好的起点。

另一种方法是通过将它们装入一个Java程序,并以某种方式从他们删除数据修改正式OpenNLP模型。除非您了解OpenNLP工具的基础算法和数据结构,否则我不推荐使用此路线,因此可以判断这是否完全可行。