中科院分词系统 ICTCLAS2013 添加新词功能

   最近使用ictclas2013版,又名NLPIR汉语分词系统。在分词过程中,总会出现分词不准确的原因,造成很多本来是应该在一起的词,变成了拆分开了的词语,造成了提取关键词的非常不便利。不过幸好ictclas2013版有个新词添加功能。如果不知道怎么加入ictclas2013到项目中,请参考

中科院分词ictclas2013使用java调用

      首先查看NLPIR分词系统接口说明文档: NLPIR_AddUserWord(byte[] str) ,这个就是加入新词的方法。如果按照上面的介绍,以及参考了网上一些相关的介绍,但是始终没有配置成功。仔细想想,str.getBytes();方法是有编码格式的,而记得java调用分词都是设置了编码格式为:"GB2312",所以新词添加一定要记得设置编码格式。

public static void main(String[] args)
	{
		try
		{
			String sInput = "张华平推出的NLPIR分词系统,又名ICTCLAS2013,新增新词识别、关键词提取、微博分词功能。";
			NLPIR testNLPIR = new NLPIR();
			String argu = "./file/";
			System.out.println("初始化ictclas2013分词系统");
			if (testNLPIR.NLPIR_Init(argu.getBytes("GB2312"),0) == false)
			{
				System.out.println("Init Fail!");
				return;
			}
			/**
			 * 1.添加新词,注意\t是tab键,你也可以用tab键:"分词系统	nn"
			 * 2.getBytes的编码格式统一设置GB2312,否则无法识别新词
			 * 3.新词的词性可以自己添加,这里nn表示了新词
			 */
			String s = "分词系统\tnn";
		    byte[] ret = s.getBytes("GB2312");
		    testNLPIR.NLPIR_AddUserWord(ret);
		    
		    /**
		     * 1.这是永久保存在用户字典中,UserDIct.pdat会增加大小
		     */
//		    testNLPIR.NLPIR_SaveTheUsrDic();
		    
		    /**
		     * 1.去除新词,只需要使用:"分词系统"
		     * 2.去除新词编码格式也必须:"GB2312",否则无法移除新词
		     */
//			String ss = "分词系统";
//			byte[] ress = ss.getBytes("GB2312");
//			testNLPIR.NLPIR_DelUsrWord(ress);
		    
			//执行分词过程
			byte nativeBytes[] = testNLPIR.NLPIR_ParagraphProcess(sInput.getBytes("GB2312"), 1);
			String nativeStr = new String(nativeBytes, 0, nativeBytes.length, "GB2312");
			System.out.println("分词结果为: " + nativeStr);
			testNLPIR.NLPIR_Exit();
			
		}
		catch (Exception ex)
		{
			ex.printStackTrace();
		} 


	}

 

猜你喜欢

转载自cjp1989.iteye.com/blog/1886263
今日推荐