IK分词加入标点符号

IK分词默认不包含标点符号,通过阅读源码发现修改内部代码较为复杂。采用外部包裹的方式,先进行IK分词,再检查并添加遗漏的标点到结果中。欢迎分享更优解决方案。
摘要由CSDN通过智能技术生成

    IK分词默认的分词结果是没有标点符号的,看了一番源码。发现直接修改源代码加入标点需要改动多处。

    所以想到了一个策略,从外部包一层代码,先让ik分词,然后检测它的前后是否有遗漏符号,然后将符号加入分词结果中。

    当然,大家如果有好的方法,请上交!

    下边是源码部分:

public class IKDemo {

	public static void main(String[] args) throws Exception {
		String input = "^_^ 你好,ik分词!";
		Lexeme beforeWord = null;
		Lexeme currentWord = null;
		StringBuffer sb = new StringBuffer();
		IKSegmenter ik = new IKSegmenter(new StringReader(input), true);
		System.out.println("原句:"+input);
		while ((currentWord = ik.next()) != null) {
			sb.append(appendSymbol(input, beforeWord, currentWord));
			beforeWord = currentWord;
		}
		sb.append(appendSymbol(input, beforeWord, currentWord));
		System.out.println("分词:"+sb.t
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值