ictclas分词系统的使用,java调用,附带连接mysql进行读写。
来源:互联网 发布:微信点赞软件 编辑:程序博客网 时间:2024/05/06 09:53
1.进入官网下载
ictclas2013下载包,目前更新到0416版,ictclas2013-Win-32-jni或者64位的。如果系统是32位的就下载32位的,如果是64位的系统,那就要看你安装的java虚拟机是32位还是64位。若是32为jdk,还是要下载使用32位的JNI,而且Eclipse也用32位的。
2.准备文件
打开ictclas2013文件,需要的数据是:Data,Bin,Text三个文件,其中Bin文件夹里面只要:NLPIR.dll文件,里面内容不要轻易更改。打开Win-32bit_JNI-lib文件,里面有个NLPIL_JNI.dll文件。
3.创建项目
a.直接将java示例程序导入到src目录下,TestNLPIR.java和kevin同级,不要更改包名。
b.创建file文件夹,跟src同级目录,将Data文件夹放入里面。把测试文本Test放入到项目里面,也跟src是同级目录。
c.导入dll文件,将NLPIR.dll和NLPIL_JNI.dll文件同时导入到项目中,使用右键点击项目,import方法,从文件中导入,选择这两个文件。
4.引入相关jar包。需要2个包添加进去。
jna-4.0.0.jar
mysql-connector-java-5.1.14-bin.jar
5、修改代码样例中的文件路径。从上到下,需要修改的地方有:
CLibrary Instance = (CLibrary) Native.loadLibrary( "F:\\test\\分词\\汉语分词20140928\\lib\\win64\\NLPIR", CLibrary.class);
上面这个位置是你解压缩后文件中NLPIR路径。
public static void main(String[] args) throws Exception { String argu = "F:\\test\\JnaTest_NLPIR";
上面这个位置是,你把java样例JnaTest_NLPIR单独拿出来放的位置。
完整代码:
package code;import java.io.UnsupportedEncodingException;import java.sql.*;import utils.SystemParas;import com.sun.jna.Library;import com.sun.jna.Native;public class NlpirTest { // 定义接口CLibrary,继承自com.sun.jna.Library public interface CLibrary extends Library { // 定义并初始化接口的静态变量 CLibrary Instance = (CLibrary) Native.loadLibrary("F:\\test\\分词\\汉语分词20140928\\lib\\win64\\NLPIR", CLibrary.class); public int NLPIR_Init(String sDataPath, int encoding, String sLicenceCode); public String NLPIR_ParagraphProcess(String sSrc, int bPOSTagged); public String NLPIR_GetKeyWords(String sLine, int nMaxKeyLimit, boolean bWeightOut); public String NLPIR_GetFileKeyWords(String sLine, int nMaxKeyLimit, boolean bWeightOut); public int NLPIR_AddUserWord(String sWord);//add by qp 2008.11.10 public int NLPIR_DelUsrWord(String sWord);//add by qp 2008.11.10 public String NLPIR_GetLastErrorMsg(); public void NLPIR_Exit(); } public static String transString(String aidString, String ori_encoding, String new_encoding) { try { return new String(aidString.getBytes(ori_encoding), new_encoding); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return null; } public static void main(String[] args) throws Exception { String argu = "F:\\test\\JnaTest_NLPIR"; // String system_charset = "GBK";//GBK----0 String system_charset = "UTF-8"; int charset_type = 1; int init_flag = CLibrary.Instance.NLPIR_Init(argu, charset_type, "0"); String nativeBytes = null; if (0 == init_flag) { nativeBytes = CLibrary.Instance.NLPIR_GetLastErrorMsg(); System.err.println("初始化失败!fail reason is "+nativeBytes); return; } String driver="com.mysql.jdbc.Driver"; String url="jdbc:mysql://127.0.0.1:3306/数据库名称?useUnicode=true&characterEncoding=utf-8"; //设置编码格式可以解决乱码问题。 Class.forName(driver); Connection connecter=DriverManager.getConnection(url,"root","数据库密码"); if(!connecter.isClosed()) System.out.println("success in getConnetion"); Statement statement=connecter.createStatement(); Statement stmt; ResultSet rs=statement.executeQuery("select * from p_user1_pt_gl"); while(rs.next()) { String sInput=rs.getString("content"); String suid=rs.getString("uid"); String smid=rs.getString("mid"); String stime=rs.getString("time"); // String nativeBytes = null; try { nativeBytes = CLibrary.Instance.NLPIR_ParagraphProcess(sInput, 1); System.out.println("分词结果为:\n " + nativeBytes); // CLibrary.Instance.NLPIR_AddUserWord("cool n");// CLibrary.Instance.NLPIR_AddUserWord("高富帅 n");// nativeBytes = CLibrary.Instance.NLPIR_ParagraphProcess(sInput, 1);// System.out.println("增加用户词典后分词结果为: " + nativeBytes); // CLibrary.Instance.NLPIR_DelUsrWord("cool");// nativeBytes = CLibrary.Instance.NLPIR_ParagraphProcess(sInput, 1);// System.out.println("删除用户词典后分词结果为: " + nativeBytes); int nCountKey = 0; String nativeByte = CLibrary.Instance.NLPIR_GetKeyWords(sInput, 10,false);//设置最大关键词的数量 System.out.print("关键词提取结果是:\n" + nativeByte); stmt = connecter.createStatement(); stmt.execute("insert into p_user1_pt_keywords (uid,mid,time,content) values('" + suid + "','" + smid + "','" + stime + "','" + nativeByte + "')"); // nativeByte = CLibrary.Instance.NLPIR_GetFileKeyWords("D:\\NLPIR\\feedback\\huawei\\5341\\5341\\产经广场 \\2012\\5\\16766.txt", 10,false); // System.out.print("关键词提取结果是:" + nativeByte); } catch (Exception e) {// TODO Auto-generated catch block e.printStackTrace(); } }CLibrary.Instance.NLPIR_Exit();rs.close(); }}
1 0
- ictclas分词系统的使用,java调用,附带连接mysql进行读写。
- 使用Java调用中科院分词NLPIR/ICTCLAS
- 使用Java调用中科院分词NLPIR/ICTCLAS
- JAVA调用 ICTCLAS 分词接口
- ICTCLAS分词系统Java调用接口在Eclipse中的安装
- ICTCLAS分词系统Java调用接口在Eclipse中的安装
- ICTCLAS分词系统Java调用接口在Eclipse中的安装
- 使用ICTCLAS JAVA版(ictclas4j)进行中文分词
- 使用继续完善前人写的文章:使用ICTCLAS JAVA版(ictclas4j)进行中文分词
- Python调用NLPIR/ICTCLAS进行文本分词
- Python调用PYNIPIR(ICTCLAS)进行中文分词
- 如何使用中科院分词系统(ICTCLAS 5.0)Java版
- Java通过JNI调用ICTCLAS中文分词包的方法
- 关于使用NLPIR-ICTCLAS分词系统
- NLPIR/ICTCLAS 2015 分词系统使用
- NLPIR/ICTCLAS 2015 分词系统使用
- ICTCLAS分词系统Java调用接口在Eclipse中的安装- Java编程
- 使用ICTCLAS分词器 Java版
- IAT和JMP方式的HOOK
- __stdcall的理解与作用
- Unity3d_Unity3d"Library\UnityAssemblies\UnityEngine.xml"is denied错误解决方法
- 详谈HOOK API的技术
- android 首页fragment切换
- ictclas分词系统的使用,java调用,附带连接mysql进行读写。
- iOS中使用RegexKitLite来试用正则表达式 使用ARC 20个错误解决办法
- 32 bit hardware buffers are not allowed in OpenGL ES
- 安装与配置windbg的symbol(符号)
- Linux并发控制方式
- nginx的安装
- c++面试笔试必备知识
- 使用Dagger2创建的第一个小例子
- Reverse Nodes in k-Group