package com.qxueyou.scc.base.util; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import com.caucho.hessian.client.HessianProxyFactory; //import com.qxueyou.scc.base.service.IConfigService; /** * 使用远程服务HanLP引擎,处理文本,包括分词,转拼音,提取摘要,词频统计,关键字提取 * @author xiadehu * */ public final class WordProcessUtils { private static WordProcessClient client; private static Logger log = LogManager.getLogger(WordProcessUtils.class); private static void buildClient() { try { // String url = SpringUtil.getBean(IConfigService.class).getConfig("word-process-url"); String url = null; HessianProxyFactory hessianFactory = new HessianProxyFactory(); client = (WordProcessClient) hessianFactory.create(WordProcessClient.class, url); } catch (Exception e) { log.error(e, e); } } /** * 分词,如果传入null,则返回空 * @param text 原文 * @return 分词后的结果 */ public static String segment(String text){ if (client == null) { buildClient(); } return client.segment(text); } /** * 转拼音,无分隔符 * @param text 原文 * @return 转拼音的结果 */ public static String toPinyin(String text){ if (client == null) { buildClient(); } return client.toPinyin(text); } /** * 转拼音 * @param text 原文 * @param seperator 分隔符 * @return 转拼音的结果 */ public static String toPinyin(String text,String seperator){ if (client == null) { buildClient(); } return client.toPinyin(text,seperator); } interface WordProcessClient { String segment(String text); String toPinyin(String text); String toPinyin(String text,String seperator); } }