NLPIR分词使用说明

NLPIR系统授权,基本上1个月要授权一次,在这里替换Data/NLPIR.user即可

给出一个分词的使用实例:
1:上官网下载分词工具包

2:随便新建一个Java工程;

3:把jna.jar放到classpath下面,在eclipse中就是普通的手动添加jar包

4:新建或者直接把Data文件夹添加到工程中;

5:添加跟自己系统匹配的NLPIR.dll和NLPIR.lib文件,如果是maven工程放到resource下就行,或者放到新建的文件夹下。

6:根据给出的实例修改,主要就是注意一下上面的各个文件的路径的配置。

这里写图片描述

上面的是项目,文件的位置。

下面的是一个使用的demo;

public class NlpirSegmentUtil {

    public static Logger logger = Logger.getLogger("NlpirSegmentUtil");

    List<String> dictionary_words = new ArrayList<>();

    public NlpirSegmentUtil(List<String> dictionary_words) {
        // TODO Auto-generated constructor stub
        this.dictionary_words = dictionary_words;
    }

    public NlpirSegmentUtil() {
    }


    public interface CLibrary extends Library {
        CLibrary Instance = (CLibrary) Native.loadLibrary("NLPIR", CLibrary.class);
        public int NLPIR_Init(String sDataPath, int encoding, String sLicenceCode);
        public String NLPIR_ParagraphProcess(String sSrc, int bPOSTagged);
        public String NLPIR_GetKeyWords(String sLine, int nMaxKeyLimit, boolean bWeightOut);
        public String NLPIR_GetFileKeyWords(String sLine, int nMaxKeyLimit, boolean bWeightOut);
        public int NLPIR_AddUserWord(String sWord);// add by qp 2008.11.10
        public int NLPIR_DelUsrWord(String sWord);// add by qp 2008.11.10
        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 List<String> getSentenceSegmentResult(List<String> sentences) {
        return getSentenceSegmentResult(sentences,dictionary_words);
    }

    public List<String> getSentenceSegmentResult(List<String> sentences,List<String> dictionary_words) {
        List<String> sentencesSeged = new ArrayList<>();
        String argu = System.getProperty("user.dir");
        int charset_type = 1;
        int init_flag = CLibrary.Instance.NLPIR_Init(argu, charset_type, "0");
        String nativeBytes = null;
        if (0 == init_flag) {
            nativeBytes = CLibrary.Instance.NLPIR_GetLastErrorMsg();
            logger.info("初始化失败!fail reason is " + nativeBytes);
        }
        try {
            for (String symptom_Name : dictionary_words) {
                CLibrary.Instance.NLPIR_AddUserWord(symptom_Name);
            }
            for(String sInput : sentences){
                nativeBytes = CLibrary.Instance.NLPIR_ParagraphProcess(sInput, 1);
                logger.info("增加用户词典后分词结果为:" + nativeBytes);
                sentencesSeged.add(nativeBytes);
            }
            CLibrary.Instance.NLPIR_Exit();
        } catch (Exception ex) {
            // TODO Auto-generated catch block
            ex.printStackTrace();
        }
        return sentencesSeged;
    }


    public void test(String sentenceContent, List<String> symptoms) {
        // String argu = SystemParas.data_dir_parent_path;
        String argu = System.getProperty("user.dir");
        int charset_type = 1;
        int init_flag = CLibrary.Instance.NLPIR_Init(argu, charset_type, "0");
        String nativeBytes = null;
        if (0 == init_flag) {
            nativeBytes = CLibrary.Instance.NLPIR_GetLastErrorMsg();
            logger.info("初始化失败!fail reason is " + nativeBytes);
        }
        try {
            for (String symptom_Name : symptoms) {
                CLibrary.Instance.NLPIR_AddUserWord(symptom_Name);
            }
            String sInput = sentenceContent;
            nativeBytes = CLibrary.Instance.NLPIR_ParagraphProcess(sInput, 1);
            Logger.getLogger("yuan_data").info("增加用户词典后分词结果为:" + nativeBytes);
            CLibrary.Instance.NLPIR_Exit();
        } catch (Exception ex) {
            // TODO Auto-generated catch block
            ex.printStackTrace();
        }
    }

    public static void main(String[] args) {
        NlpirSegmentUtil nlpirSegmentForWordCluster = new NlpirSegmentUtil();
        List<String> list = new ArrayList<>();
        list.add("口干");
        list.add("舌燥");
        List<String> sentence = new ArrayList<>();
        sentence.add("间断性口干舌燥三天。");

        nlpirSegmentForWordCluster.getSentenceSegmentResult(sentence, list);

    }

}


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值