84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
最近非常纠结的一个问题:我所用的机器的操作系统是64位Windows 7,使用Python 3对微博文本进行处理,现在面对的一个大问题就是如何使用分词工具NLPIR和Stanford大学的开源句法分析Java包Stanford Parser进行文本处理。 经过我的搜索,大概有三方面的思路:
但很明显,我不知道具体应该怎么做?希望有大牛来给个指引!谢谢!
欢迎选择我的课程,让我们一起见证您的进步~~
可以用Python的扩展来实现。可参考Extending Python with C or C++。
Python本来是C实现的,封装二进制兼容的C++是很容易的。
Java的话得通过JNI来实现,就是说在Python扩展里用C调用Java。
另外,你也可以写一个TCP服务来包装C++/Java的接口,通过网络来调用,这样更通用。
我再补充一些:
对于 C++,除了 Python 官方的文档所述和 SWIG,可选的方案还有 Cython、boost.python 和 SIP 等。
对于 Java,PyLucene 包含了一个名叫 JCC 的代码生成器,同时可以为 JNI 生成适用于 C++ 和 Python 的必要代码。(不过对这个东西的靠谱度我不是很了解)
我赞同 @felix021 最后一个观点,并且更进一步,不一定需要做成服务,作为独立进程去调用也可以。每个部分尽可能专注实现一件事,算是比较符合 Unix 哲学的。特别的,虽然你提到的两个库我不熟悉,但是从用途来看,它们不大可能是非常迅速微秒级别的运算,这样,使用另一个进程来操作并不会有太大的性能影响。
可以用Python的扩展来实现。可参考Extending Python with C or C++。
Python本来是C实现的,封装二进制兼容的C++是很容易的。
Java的话得通过JNI来实现,就是说在Python扩展里用C调用Java。
另外,你也可以写一个TCP服务来包装C++/Java的接口,通过网络来调用,这样更通用。
我再补充一些:
对于 C++,除了 Python 官方的文档所述和 SWIG,可选的方案还有 Cython、boost.python 和 SIP 等。
对于 Java,PyLucene 包含了一个名叫 JCC 的代码生成器,同时可以为 JNI 生成适用于 C++ 和 Python 的必要代码。(不过对这个东西的靠谱度我不是很了解)
再补充我赞同 @felix021 最后一个观点,并且更进一步,不一定需要做成服务,作为独立进程去调用也可以。每个部分尽可能专注实现一件事,算是比较符合 Unix 哲学的。特别的,虽然你提到的两个库我不熟悉,但是从用途来看,它们不大可能是非常迅速微秒级别的运算,这样,使用另一个进程来操作并不会有太大的性能影响。