从python调用java代码

2024-10-03 23:30:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试优化一些自然语言处理在python项目中的性能。基本上,我希望将计算密集型部分外包给使用apacheopennlp,它是用Java编写的。在

我的问题是将Java函数/类链接回python代码的推荐方法是什么?我想的三个主要方法是

    < L> > P>在Python中使用<强> C/C++ +绑定< /强>,然后在我的C程序中嵌入JVM。这正是我所倾向的,因为我对编写python的C扩展有点熟悉,但是使用三角语言(其中C只作为中介函数)似乎并不正确。

  • 使用Jython。我主要关心的是,据我所知,CPython是最流行的python实现,我不想破坏与其他协作者或包的兼容性。

  • 将输入和输出流传输到OpenNLP附带的二进制文件中。Apache提供了标记器和独立的二进制文件,您可以通过管道将数据传入和传出。这可能是最容易实现的选择,但似乎也是最粗糙的。

我想知道,有过python和java接口经验的人是否知道这些选项之间的性能差异有多大,在这种情况下,哪一个是“推荐的”或被认为是最佳实践的—或者当然,是否有一种完全不同的方法来实现这一点,我从未想过。在

我确实搜索了已有的答案并找到了this,但这是3.5年前的答案,并提到了一些项目,要么已经死了,很难集成/配置/安装,要么仍在开发中。在

一些评论提到,与运行实际NLP代码所需的时间相比,这三种方法的开销可能微不足道。这可能是真的,但我仍然对从更普遍的角度来回答这个问题感兴趣。在

谢谢!在


Tags: 文件项目方法函数答案代码程序语言