弱弱的请教一个算法类 API 实现的疑惑

2019-11-06 16:05:41 +08:00
 leiuu

这个问题貌似有点模糊,更具体如下:

以百度的这个API为例子。 既然是 web 服务,自然想到了 spring 全家桶,假设我想用 Java 实现这个 API。
其中涉及算法的地方,很多基础的算法 Java 本身没有,比如自然语言处理中的算法:TFIDF。

可能的解决这个算法库缺失的办法:

1. 重新造轮子,将需要的算法都用 Java 实现一遍,封装为算法库,web 后台直接调包。
2. 将 python 的 sklearn 封装一些基础的算法 API 出来,Java 直接调用这个 API。

或者:

直接使用 python 作为后台语言。

想了解一下,大家是怎么解决这类问题的?

2729 次点击
所在节点    程序员
22 条回复
liuxu
2019-11-07 09:39:44 +08:00
@ipwx 你先仔细看看楼主的需求,然后理解一下楼主的意思。留意下“可能”、“比如”、“了解一下”,再看下我的回复。
我是以 PHP 的角度回复问题,如果算法有 PHP sdk 就直接用 PHP,没有就用 C 开发扩展有什么问题?

你不回楼主贴,专门挑我的刺?为什么会有这种风气。
leiuu
2019-11-07 14:56:20 +08:00
@quietnight 简单了解了一下,tf serving 应该是足够满足需求的,不过 tf 会比较重。
@littleylv 没关系哈 握抓。


总体来说,大家都推荐用创建多个服务,服务间用 http/rpc 通信。
简单总结一下可能的方案:

1. python web 框架( flask / django )+python 机器学习框架 ( sklearn ) + [可选] Java web 框架( spring boot )

2. java 机器学习库(dl4j、weka)/自己实现库 + Java web 框架( spring boot )

3. tensorflow serving + [可选] Java web 框架( spring boot )

4. php + php mod 用 C/C++ 扩展机器学习库


相关的参考:
1. [flask + sklearn]( https://towardsdatascience.com/a-flask-api-for-serving-scikit-learn-models-c8bcdaa41daa)
2. [tensorflow serving]( https://www.tensorflow.org/tfx/serving/serving_basic)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/616884

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX