⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 msgsegmenter.java.svn-base

📁 MSN客服自动化机器人
💻 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 + -