📄 msgsegmenter.java.svn-base
字号:
package jm.form.msn.ctrl;
import jm.form.msn.bean.BusinessUser;
import jm.form.msn.util.Segmenter;
import jm.form.msn.util.Manager;
import jm.util.JMEntity;
/**
* 中文分词,自己定义数据字典(参考Tag.java)
* 梦界家园MSNP15
* @author ISHome
* @since 0.1
* @version 0.5.0.1
*/
public class MsgSegmenter extends Segmenter {
public final static String STR_CODE = "GBK";
public final static String DIC_FILE = "data/dic/dic.txt";
private Manager manager = null;
public MsgSegmenter(Manager server) {
super(DIC_FILE, STR_CODE);
manager = server;
}
/**
* 分词 模糊分词(ashhaajj) 精确分词(as hh aa jj)
*/
public synchronized void invoker(BusinessUser u) {
String command = u.getCommand();
// 响应客户对话词语操作
{
// 格式化
// 精确查询:as hh aa jj
if (command.indexOf(" ") > 0)
command = command.replaceAll(" ", JMEntity.SPLIT);
}
String[] fields = command.split(JMEntity.SPLIT);
// 模糊查询:ashhaajj
if (fields.length == 1) {
// 分词//分割关键字
command = segmentWords(command, STR_CODE, JMEntity.SPLIT);
fields = command.split(JMEntity.SPLIT);
}
// 组织使用的时候可以优化处理
if ("1".equals(manager.getConfigMap().get(CONFIG_SYSTEM_TYPE))) {
(new OrganizationChat(manager)).invoker(u, fields);
} else {// individual
(new IndividualChat(manager)).invoker(u, fields);
}
// 用户对话结果保存
manager.getUserList().put(u.getMsnID(), u);
}
/**
* 帮助命令
*
* @return
*/
public static String getCommand() {
StringBuffer help = new StringBuffer(200);
help.append("模糊查询使用完整短句(不包含符号)\r");
help.append("精确查询使用完整关键字(多个使用空格、#、*隔开)\r");
//TODO 自己修改
return "" + help;
}
protected String segmentWords(String command, String encoding, String separator) {
try {
StringBuffer ret = new StringBuffer(200);
String segstring = segmentLine(command, separator);
ret.append(segstring);
return ret.toString();
} catch (Exception e) {
return null;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -