`
andyliuxs
  • 浏览: 138244 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

ICTCLAS2011_JNI学习笔记-ICTCLAS_ImportUserDictFile及ICTCLAS_SaveTheUsrDic接口

 
阅读更多

1、int ICTCLAS_ImportUserDictFile(byte[] sPath, int eCodeType)接口:

     * Method:     ICTCLAS_ImportUserDictFile<! 导入用户词典文件>
     * Parameter:  byte[] sPath<! 用户词典路径名称>
     * Parameter:  int eCodeType<!词典编码类型>
     * Returns:      ICTCLAS_API int<! 成功导入的词汇数量>
     * Description: 用户导入词汇文件格式如下:
                         1.词语与词性用'@@'间隔。例如:“中科院@@nr;
                         2.一行一词;
                         3.词性可省略

2、int ICTCLAS_SaveTheUsrDic()接口:

     * Method:     ICTCLAS_SaveTheUsrDic<!保存用户词典>
     * Description:1.本接口将会覆盖原有/data/文件夹用户相关词典。 
                           2.用户可在配置文件中,指定下次是否使用该词典。

 

 

 其中,ICTCLAS_ImportUserDictFile接口用来以文件的形式来导入用户自定义词典,导入后可以选择性的调用ICTCLAS_SaveTheUsrDic接口用以将其保存在data目录下,这时目录下面会多出UserDict.map、UserDict.pos、UserDict.pdat三个文件,并且可以通过修改configure.xml配置文件选择是否加载该用户词典。(这三个文件的具体含义,我还说不清楚,从后缀名来看的话.map文件应该是词性映射文件,.pos文件或是词性标注文件,.pdat就看不出来了~_~,希望看到的朋友可以留言赐教一下!)

调用示例:

 

 

package ICTCLAS.I3S.test;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;

import ICTCLAS.I3S.AC.ICTCLAS50;

public class Test_ImportUsrDict {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		ICTCLAS50 ictclas = new ICTCLAS50();
		String useage = "Useage : java Test_ICTCLAS_ParagraphProcess sPath [nPOSmap]";
		if (args.length < 1) {
			System.err.println(useage);
			return;
		}
		try {
			if (!ictclas.ICTCLAS_Init(args[0].getBytes("GB2312"))) {
				System.err.println("Initial failed!");
				return;
			}
			System.out.println("Initial successed!");
			String input = "中国科学院计算技术研究所在多年研究工作积累的基础上,研制出了汉语词法分析系统ICTCLAS。";

			/* 设置词性标注集(0 计算所二级标注集,1 计算所一级标注集,2 北大二级标注集,3 北大一级标注集) */
			int nPosmap = args.length == 2 ? Integer.valueOf(args[1]) : 1;
			ictclas.ICTCLAS_SetPOSmap(nPosmap);

			/* 导入用户词典前 */
			byte nativeBytes[] = ictclas.ICTCLAS_ParagraphProcess(input
					.getBytes("GB2312"), 0, 1);
			String nativeStr = new String(nativeBytes, 0, nativeBytes.length,
					"GB2312");
			System.out.println("未导入用户词典的分词结果:" + nativeStr);

			int nCount = 0;
			BufferedReader reader = new BufferedReader(new InputStreamReader(
					System.in, "GB2312"));
			System.out.print("input the src file:");
			String usrdir = reader.readLine();
			// 第一个参数为用户字典路径,第二个参数为用户字典的编码类型(0:type
			// unknown;1:ASCII码;2:GB2312,GBK,GB10380;3:UTF-8;4:BIG5)
			nCount = ictclas.ICTCLAS_ImportUserDictFile(usrdir
					.getBytes("GB2312"), 2);
			System.out.println("导入用户词个数" + nCount);

			// 导入用户字典后再分词
			byte nativeBytes1[] = ictclas.ICTCLAS_ParagraphProcess(input
					.getBytes("GB2312"), 0, 1);
			String nativeStr1 = new String(nativeBytes1, 0,
					nativeBytes1.length, "GB2312");
			System.out.println("导入用户词典:" + nativeStr1);
			ictclas.ICTCLAS_SaveTheUsrDic(); /* 保存用户词典 */
		} catch (UnsupportedEncodingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			// 释放分词组件资源
			ictclas.ICTCLAS_Exit();
		}
	}

}

 

0
2
分享到:
评论

相关推荐

    ICTCLAS50_Windows_32_JNI 的使用

    ICTCLAS50_Windows_32_JNI 的使用,介绍ICTCLAS50_Windows_32_JNI 在eclipse等环境下的配置,以及怎么测试ICTCLAS50_Windows_32_JNI

    ICTCLAS50_Windows_64_JNI.rar_ICTCLAS_ICTCLAS java_ICTCLAS50_ictc

    ICTCLAS50_Windows_64_JNI ICTCLAS的API,文档等

    ICTCLAS50_Windows_64_JNI

    中科院中文分词windows 64位系统JNI方式调用程序。

    中科院分词系统java版ICTCLAS50_Windows_32_JNI.rar

    中科院分词系统java版 ICTCLAS50_Windows_32_JNI.rar ;里面有最新的授权文件,正确执行demo;里面包含java借口使用说明以及分词系统的演示说明

    中科院分词系统+ICTCLAS2011+JNI版(Java语言)源代码学习

    中科院分词系统+ICTCLAS2011+JNI版(Java语言)源代码学习

    ICTCLAS50_Windows_32_JNI.zip_ICTCLAS50_ICTCLAS50.h_ictclass_语料

    中科院分词软件,用于语料预处理,不错的。

    ictclas50_windows64

    中科院分词器ictclas50 本人亲测windows64位可以使用

    ICTCLAS50_Windows_32_JNI.rar_Jena 推理_jena_jena sour_推理JAVA_语义推理

    ICTCLAS50_Windows_32_JNI.rar 文件是一个包含Jena库的压缩包,主要关注Jena的推理功能,适用于Windows 32位环境,并且提供了JNI(Java Native Interface)支持。Jena是一个开源的Java框架,专门用于处理语义网和...

    ICTCLAS50_Windows_32_C

     ICTCLAS 2011 c/c++/c#版、JNI版均支持多线程调用。 3、支持UTF-8  以往版本需要进行编码转换,统一转换成GB2312之后才能做进一步处理。系统当前版本支持GB2312、GBK、GB18030、UTF-8、BIG5。以上编码无需做任何...

    ICTCLAS_api及使用方法

    **ICTCLAS API 及使用方法** ICTCLAS(信息技术-中文自动分词系统)是北京大学计算语言研究所开发的一款高效、准确的中文分词工具,它在自然语言处理领域广泛应用,尤其是在文本预处理中,如信息检索、情感分析、...

    中科院分词ictclas50 windows 32 JNI

    中科院分词工具,jni调用,包括文档和demo。该demo为改造版,官方提供的的ICTCLAS2011在java中使用总是报错,这个demo可以正常使用

    Java调用ICTCLAS2013

    Java调用ICTCLAS2013涉及到的是在Java程序中使用ICTCLAS(中文语言分析系统)2013版进行中文处理的任务,主要包括中文分词、词性标注、命名实体识别和新词识别。ICTCLAS是一个高效、实用的中文自然语言处理工具,...

    ICTCLAS 免费共享版

    为http://ictclas.org/所发布软件的免费共享版,此版为JNI版,没有使用时间限制,

    ICTCLAS的Java分词系统

    陈天教授的ICTCLAS Java版继承了原系统的优点,如高效、准确和适应性强,同时提供了跨平台的Java接口,使得开发者可以方便地在各种操作系统上集成这一分词工具,包括Windows、Linux和Mac OS等。由于Java语言的特性,...

    NLPIR-JNI-发布包

    ICTCLAS功能齐全,门类齐全,包括jar包,dll动态文件,Linux的.so、windows的.dll全都有,不要感激我,我只是知识的传播者。

    一个不错的中文分词java程序

    3. **JNI(Java Native Interface)**:当Java程序需要调用本地系统库(如C/C++库)时,JNI提供了一个接口。DLL文件就是Windows系统下的本地库,通过JNI,Java代码可以与这些底层库交互。 4. **软件部署**:在实际...

Global site tag (gtag.js) - Google Analytics