做项目的时候,尤其是java开发时,经常会遇到调用python算法的情况,本人最近在项目中遇到这样一个问题:网页前端设计了一个与用户聊天的对话窗口(类似qq聊天),主要目的是为用户解答一些常见的问题。我想了一下需要一些自然语言处理的技术,包括问题与答案的分词词性标注与向量化表示等内容。python来设计的话,非常方便,有很多支持机器学习及自然语言处理的工具包。这里就不详细的介绍这个算法流程了。一般这种项目叫做智能问答系统,后续统一称呼。
调用python时,遇到了大量的坑。这里主要做一些总结:
(1)JPython jar包方法。可以在java类中直接执行python语句。这种方法看起来很简单,但问题也会很大不支持import外部包。只有一些简单的python语句才会比较顺利的被调用和执行。so pass!
(2) 使用Runtime.getRuntime()执行脚本文件。这里展示一个自己实测能行的例子:
java代码:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Scanner;
public class TestThree {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("java控制台输入问题:");
String instr = scanner.next();
//定义个获取结果的变量
Stri