我们经常在网站上能看到搜索框, 可以用空格分割关键词、可以用拼音搜索等...
把关键字拆分为一组词
例子:搜索懒人快乐, 后台程序就会把懒人快乐拆分成两个词懒人,快乐。
说明:可以使用jieba-analysis结巴分词, 用法如下:
com.huaban
jieba-analysis
1.0.2
package com.kangyonggan.blog.util;
import com.huaban.analysis.jieba.JiebaSegmenter;
import com.huaban.analysis.jieba.SegToken;
import org.apache.commons.lang3.StringUtils;
import java.util.List;
/**
* @author kangyonggan
* @since 16/7/22
*/
public class FenCi {
/**
* 分词器
*/
private static final JiebaSegmenter segmenter = new JiebaSegmenter();
/**
* 中文分词, 并转成拼音
*
* @param data
* @return
*/
public static String process(String data) {
if (StringUtils.isEmpty(data)) {
return "";
}
data = data.replaceAll("\\s", " ");
data = data.replaceAll("'", " ");
List list = segmenter.process(data, JiebaSegmenter.SegMode.INDEX);
StringBuilder sb = new StringBuilder();
list.forEach(segToken -> sb.append(PinYin.converterToSpellWithMuti(segToken.word)).append(","));
sb.deleteCharAt(sb.lastIndexOf(","));
return sb.toString();
}
}
把词转化为拼音
例子:懒人,快乐会被后台程序转化为lanren,kuaile,kuaiyue,之所以不是lanren,kuaile而是lanren,kuaile,kuaiyue, 是因为乐是多音字。
说明:可以使用pinyin4j把汉字转化为拼音, 用法如下:
com.belerweb
pinyin4j
2.5.1
package com.kangyonggan.blog.util;
import net.sourceforge.pinyin4j.PinyinHelper;
import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCom