NLPIR(ICTCLAS2016)提取关键词功能

NLPIR提取关键词功能

备注:win7 64位系统,netbeans编程

基本代码框架参见我的另一篇文章:NLPIR分词功能


代码实现

package cwordseg;

import java.io.UnsupportedEncodingException;
// import utils.SystemParas;
import com.sun.jna.Library;
import com.sun.jna.Native;

/**
 * 
 * 功能:提取关键词功能
 * 最后更新时间:2016年3月15日 14:09:49
 */

public class CWordSeg {
    // 定义接口CLibrary,继承自com.sun.jna.Library
    public interface CLibrary extends Library {
        // 定义并初始化接口的静态变量,用于加载NLPIR.dll,路径指向文件NLPIR.dll,但不加后缀dll
        CLibrary Instance = (CLibrary) Native.loadLibrary("D:\\NetBeansProjects\\CWordSeg\\file\\win64\\NLPIR",CLibrary.class);
        // 初始化函数声明:sDataPath是初始化路径地址,包括核心词库和配置文件的路径,encoding为输入字符的编码格式
        public int NLPIR_Init(String sDataPath,int encoding,String sLicenceCode);
        // 提取关键词函数声明:字符串,最多选取的关键词个数,是否显示关键词的权重值true/false
        public String NLPIR_GetKeyWords(String sLine, int nMaxKeyLimit,boolean bWeightOut);
        // 从文件中提取关键词函数声明:文件路径,最多选取的关键词个数,是否显示关键词的权重值true/false
        public String NLPIR_GetFileKeyWords(String sLine, int nMaxKeyLimit,boolean bWeightOut);
        // 获取最后一个错误信息的函数声明
        public String NLPIR_GetLastErrorMsg();
        // 退出函数声明
        public void NLPIR_Exit();
    }
    
    public static String transString(String aidString,String ori_encoding,String new_encoding) {
        try {
            return new String(aidString.getBytes(ori_encoding),new_encoding);
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return null;
    }
    
    public static void main(String[] args) throws Exception {
        String argu = "D:\\NetBeansProjects\\CWordSeg\\file";     // 该路径指向Data文件夹(系统核心词库)
        // String system_charset = "UTF-8";
        int charset_type = 1;                  // UTF-8编码模式,其它的GBK对应0,BIG5对应2,含繁体字的GBK对应3
        int init_flag = CLibrary.Instance.NLPIR_Init(argu, charset_type, "0");      // 运行初始化函数,成功则返回1,失败返回0
        String nativeBytes;

        // 初始化失败提示
        if (0 == init_flag) {
            nativeBytes = CLibrary.Instance.NLPIR_GetLastErrorMsg();    // 获取错误信息
            System.err.println("初始化失败!原因:"+nativeBytes);
            return;
        }
        
        String sInput = "这是一本关于信息检索的书。";       // 手工输入的字符串sInput
        try {
	    int nCountKey = 0;
	    String keywords = CLibrary.Instance.NLPIR_GetKeyWords(sInput, 10,true);  // 字符串提取关键词
	    System.out.println("字符串关键词提取结果:" + keywords);
            // 从.txt文本中提取关键词,注意文本的编码格式要与上面对应,如UTF-8,否则会乱码
	    keywords = CLibrary.Instance.NLPIR_GetFileKeyWords("D:\\NetBeansProjects\\CWordSeg\\file\\test.txt", 10,true);
	    System.out.println("读文本关键词提取结果:" + keywords);
            CLibrary.Instance.NLPIR_Exit();     // 退出
        } catch (Exception ex) {
            // TODO Auto-generated catch block
            ex.printStackTrace();
        }
    }
}


运行结果

    NLPIR(ICTCLAS2016)提取关键词功能_第1张图片

注意事项

    从.txt文本中提取关键词时,.txt文本的编码格式要对应,win7系统新建txt文档默认的编码格式是ANSI,注意改成UTF-8;


你可能感兴趣的:(Java)