zoukankan      html  css  js  c++  java
  • 44、NLP的其他分词功能测试

    1、 命名实体识别功能测试

    @Test
        public void testNer(){
            if (NER.create("ltp_data/ner.model")<0) {
                System.err.println("load failed");
                return;
            }
            List<String> words = new ArrayList<String>();
            List<String> tags = new ArrayList<String>();
            List<String> ners = new ArrayList<String>();
            words.add("中国");
            tags.add("ns");
            words.add("国际");
            tags.add("n");
            words.add("广播");
            tags.add("n");
            words.add("电台");
            tags.add("n");
            words.add("创办");
            tags.add("v");
            words.add("于");
            tags.add("p");
            words.add("1941年");
            tags.add("m");
            words.add("12月");
            tags.add("m");
            words.add("3日");
            tags.add("m");
            words.add("。");
            tags.add("wp");
            NER.recognize(words, tags, ners);
            for (int i = 0; i < words.size(); i++) {
                System.out.println(ners.get(i));
            }
            NER.release();
        }

    结果如下所示

    2、句法分析功能测试

    /**
         * 句法分析功能测试
         */
        @Test
        public void testParser(){
            if (Parser.create("ltp_data/parser.model") < 0) {
                System.err.println("loadfailed");
                return;
            }
            List<String> words = new ArrayList<String>();
            List<String> tags = new ArrayList<String>();
            words.add("一把手");
            tags.add("n");
            words.add("亲自");
            tags.add("d");
            words.add("过问");
            tags.add("v");
            words.add("。");
            tags.add("wp");
            List<Integer> heads = new ArrayList<Integer>();
            List<String> deprels = new ArrayList<String>();
    
            int size = Parser.parse(words, tags, heads, deprels);
    
            for (int i = 0; i < size; i++) {
                System.out.print(heads.get(i) + ":" + deprels.get(i));
                if (i == size - 1) {
                    System.out.println();
                } else {
                    System.out.print("        ");
                }
            }
            Parser.release();
        }

    结果:

    4、语义角色标注功能测试

    @Test
        public void testSrl(){
            SRL.create("ltp_data/srl");
            ArrayList<String> words = new ArrayList<String>();
            words.add("一把手");
            words.add("亲自");
            words.add("过问");
            words.add("。");
            ArrayList<String> tags = new ArrayList<String>();
            tags.add("n");
            tags.add("d");
            tags.add("v");
            tags.add("wp");
            ArrayList<String> ners = new ArrayList<String>();
            ners.add("O");
            ners.add("O");
            ners.add("O");
            ners.add("O");
            ArrayList<Integer> heads = new ArrayList<Integer>();
            heads.add(2);
            heads.add(2);
            heads.add(-1);
            heads.add(2);
            ArrayList<String> deprels = new ArrayList<String>();
            deprels.add("SBV");
            deprels.add("ADV");
            deprels.add("HED");
            deprels.add("WP");
            List<Pair<Integer, List<Pair<String, Pair<Integer, Integer>>>>> srls = new ArrayList<Pair<Integer, List<Pair<String, Pair<Integer, Integer>>>>>();
            SRL.srl(words, tags, ners, heads, deprels, srls);
            for (int i = 0; i < srls.size(); ++i) {
                System.out.println(srls.get(i).first + ":");
                for (int j = 0; j < srls.get(i).second.size(); ++j) {
                    System.out.println("   tpye = "
                            + srls.get(i).second.get(j).first + " beg = "
                            + srls.get(i).second.get(j).second.first + " end = "
                            + srls.get(i).second.get(j).second.second);
                }
            }
            SRL.release();
        }

    结果如下图所示:

     下面插入一段原网站的分词示例

    分词依据

     http://www.ltp-cloud.com/intro/#pos_how    具体大家可以来前边这个网址中查看分类依据,感觉哈工大讲得很牛呀!

    词性标注

    词性标注(Part-of-speech Tagging, POS)是给句子中每个词一个词性类别的任务。 这里的词性类别可能是名词、动词、形容词或其他。 下面的句子是一个词性标注的例子。 其中,v代表动词、n代表名词、c代表连词、d代表副词、wp代表标点符号。

    国务院/ni 总理/n 李克强/nh 调研/v 上海/ns 外高桥/ns 时/n 提出/v ,/wp 支持/v 上海/ns 积极/a 探索/v 新/a 机制/n 。/wp
    词性作为对词的一种泛化,在语言识别、句法分析、信息抽取等任务中有重要作用。 比方说,在抽取“歌曲”的相关属性时,我们有一系列短语:
    儿童歌曲
    欢快歌曲
    各种歌曲
    悲伤歌曲


    
    



  • 相关阅读:
    第11条:谨慎地覆盖clone
    第10条:始终要覆盖toString
    第9条:覆盖equals时总是覆盖hashCode
    第8条:覆盖equals时请遵守通用约定
    第7条:避免使用终结方法
    第6条:消除过期的对象引用
    第5条:避免创建不必要的对象
    第4条:通过私有构造器来强化不可实例化能力
    第3条:用私有构造器或者枚举类型强化Singleton属性
    第2条:遇到多个构造器参数时要考虑用构建器
  • 原文地址:https://www.cnblogs.com/weizhen/p/6195957.html
Copyright © 2011-2022 走看看