@分词算法FMM(正向最大匹配)

@分词算法FMM(正向最大匹配)

b.addActionListener(new ActionListener() { 	//b是一个按钮,给按钮添加的事件。
			Connection conn = DB.getConn();
			Statement stmt=null;
			ResultSet rs=null;
			@Override
			public void actionPerformed(ActionEvent e) {
				int limit=4;//最大词长
				String result="";//分词结果
				String sentence = tf.getText();//输入的需要分词的句子
				int len = sentence.length();
				while(len>0){
					if(len<limit){
						limit=len;
					}
					while(limit>0){
						String w = sentence.substring(0, limit);
						if(exist(w)||limit==1){
							result = result+w+"/";
							sentence=sentence.substring(limit);
							len = sentence.length();
							limit=4;
							break;
						}else{
							limit--;
						}
					}
				}

				ta.setText("FMM分词结果:"+result);
				DB.close(stmt, rs);
			}

			private boolean exist(String w) {
				try {
					stmt = conn.createStatement();
					String sql = "select word from dictionary where word='"+w+"'";
					rs = stmt.executeQuery(sql);
					if(rs.next()){
						return true;
					}else{
						return false;
					}
				} catch (Exception e) {
					e.printStackTrace();
					return false;
				}
			}
		});
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值