目的:贯彻落实前后端分离的思想,即meiko那边做前端,我这里提供服务。
功能:meiko发出一个url请求,放入参数,获取需要的数据。
流程:
步骤:
1、创建maven web项目
见:
http://blog.csdn.net/lk7688535/article/details/77258459
http://blog.csdn.net/lk7688535/article/details/77480148
2、pom.xml引入jar包
<dependencies>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet</artifactId>
<version>2.17</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-client</artifactId>
<version>2.17</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
<version>2.17</version>
</dependency>
</dependencies>
3、jersey服务类:
package com.lee.wor2vec;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.PathParam;
import javax.ws.rs.core.MediaType;
@Path("/hello")
public class GetRelateWords {
@GET
@Produces(MediaType.TEXT_PLAIN)
public String sayHello() {
return "Hello World!" ;
}
@GET
@Path("/{param}")
@Produces("text/plain;charset=UTF-8")
public String getWords(@PathParam("param") String words) {
BufferedReader br = null;
StringBuilder sb = new StringBuilder();
try {
Process p = Runtime.getRuntime().exec("python e:/pythonscript/xun.py "+words);
br = new BufferedReader(new InputStreamReader(p.getInputStream(),"GBK"));
String line = null;
BufferedReader read = new BufferedReader(br);
while ((line = read.readLine()) != null) {
sb.append(line + "\n");
}
System.out.println(sb.toString());
System.out.println("end");
} catch (Exception e) {
e.printStackTrace();
}
return sb.toString();
}
}
4、servlet注册
<servlet>
<servlet-name>Way REST Service</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>com.lee.wor2vec</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Way REST Service</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
5、python脚本
#encoding=utf-8
from gensim.models import word2vec
import sys
sentences=word2vec.Text8Corpus(u'e:/pythonscript/分词后的贴吧测试语料.txt')
model=word2vec.Word2Vec(sentences, size=10)
for i in model.most_similar([sys.argv[1]],topn=20):
print (i[0],i[1])
sys.argv[0]为脚本文件路径,sys.argv[1]为第一个命令行参数,以此类
推。。
6、把maven web项目部署到tomcat,然后try:
http://10.0.8.81:8080/LeeServer/hello/明凯
获取和明凯相关的词,明凯是参数。