@分词算法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;
}
}
});