jieba java 磁性_jieba分词/jieba-analysis(java版)

该博客主要展示了如何在Java中使用JiebaSegmenter进行分词操作,并结合数据库进行查询和插入操作。首先,通过JDBC连接MySQL数据库,然后实现分词查询,读取输入的字符串,根据分词结果更新数据库中的times字段。接着,进行分词插入测试,将分词后的单词插入到数据库,确保单词不存在时才插入,并利用UUID生成唯一标识。
摘要由CSDN通过智能技术生成

packagecom.analysis;importjava.io.BufferedReader;importjava.io.InputStreamReader;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.util.List;importjava.util.UUID;importorg.junit.Before;importorg.junit.Test;importcom.huaban.analysis.jieba.JiebaSegmenter;importcom.huaban.analysis.jieba.JiebaSegmenter.SegMode;importcom.huaban.analysis.jieba.SegToken;public classjiebaTest {private Connection con = null;private PreparedStatement pstmt = null;/*** 连接*/@Beforepublic void beforeDemo() throwsException {

Class.forName("com.mysql.jdbc.Driver");

String url= "jdbc:mysql://localhost:3306/test?user=root&password=root";

con=DriverManager.getConnection(url);

}/*** 分词查询测试*/@Testpublic void getDemo() throwsException {

BufferedReader br= new BufferedReader(newInputStreamReader(System.in));

String str=br.readLine();

String sql= "select * from t_jieba where name = ?";

pstmt=con.prepareStatement(sql);

pstmt.setString(1, str);

ResultSet rs=pstmt.executeQuery();while(rs.next()) {

System.out.println(rs.getInt(1)+"--"+rs.getString(2)+"--"+rs.getString(3)+"--"+rs.getString(4)+"--"+rs.getString(5));

pstmt.clearParameters();

String sql1= "update t_jieba set times = ? where id = ?";

pstmt=con.prepareStatement(sql1);

pstmt.setInt(1, 1+ new Integer(rs.getString(5)));

pstmt.setInt(2, rs.getInt(1));

pstmt.executeUpdate();

}

rs.close();

pstmt.close();

}/*** 分词插入测试*/@Testpublic void addDemo() throwsException {

String sql= "insert into t_jieba (name,cid,c_name,times) select ?,?,?,? from DUAL where not EXISTS(select name from t_jieba where name=?)";

pstmt=con.prepareStatement(sql);

JiebaSegmenter segmenter= newJiebaSegmenter();

String[] sentences= new String[] { "大话数据结构", "深入浅出设计模式", "JavaEE开发的颠覆者: Spring Boot实战", "java从入门到放弃"};for(String sentence : sentences) {//System.out.println(segmenter.process(sentence, SegMode.INDEX).toString());

String uuid =UUID.randomUUID().toString();

uuid= uuid.replace("-", "");

List list =segmenter.process(sentence, SegMode.INDEX);for(SegToken segToken : list) {

String name=segToken.word.trim();if (name != null && !"".equals(name)) {

pstmt.setString(1, segToken.word);

pstmt.setString(2, uuid);

pstmt.setString(3, sentence);

pstmt.setString(4, "0");

pstmt.setString(5, segToken.word);

pstmt.executeUpdate();

pstmt.clearParameters();

}

}

}

pstmt.close();

System.out.println("插入成功!");

}

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值