hadoop小学生
精灵王
精灵王
  • 注册日期2018-09-13
  • 发帖数160
  • QQ3234520070
  • 火币360枚
  • 粉丝0
  • 关注0
阅读:8519回复:0

HanLP-命名实体识别总结

楼主#
更多 发布于:2019-07-31 13:08

hanlp中,基于角色标注识别了中国人名。首先系统利用隐马尔可夫模型标注每个词语的角色,之后利用最大模式匹配法对角色序列进行匹配,匹配上模式的即为人名。理论指导文章为:《基于角色标注的中国人名自动识别研究》大家可以百度一下看看
地名识别
理论指导文章为:《基于层叠隐马尔可夫模型的中文命名实体识别》
机构名识别
机构名的理论指导文章为:《基于角色标注的中文机构名识别》
命名实体识别Demo
/*
* <summary></summary>
* <author>He Han</author>
* <email>hankcs.cn@gmail.com</email>
* <create-date>2014/12/7 19:25</create-date>
*
* <copyright file="DemoChineseNameRecoginiton.java" company="上海林原信息科技有限公司">
* Copyright (c) 2003-2014+ 上海林原信息科技有限公司. All Right Reserved/
* This source is subject to the LinrunSpace License. Please contact 上海林原信息科技有限公司 to get more information.
* </copyright>
*/
package com.hankcs.demo;
import com.hankcs.hanlp.HanLP;
import com.hankcs.hanlp.seg.Segment;
import com.hankcs.hanlp.seg.common.Term;
import java.util.LinkedList;
import java.util.List;
public class DemoNer {
// 实例化实体分词
public static Segment segment = HanLP.newSegment().enableNameRecognize(true).enablePlaceRecognize(true).enableOrganizationRecognize(true);

// 识别中文人名、中文地名、中文机构名
public static List<Term> recognizeNER(String text) {
List<Term> ner_li = new LinkedList<Term>();
       List<Term> termList = segment.seg(text);
       for(Term term: termList) {
        String nature = term.nature != null ? term.nature.toString() : "";
           if(nature.equals("nr")) {
            ner_li.add(term);
           }
           else if(nature.equals("ns")) {
            ner_li.add(term);
           }
           else if(nature.equals("nt")) {
            ner_li.add(term);
           }
       }
return ner_li;
}

public static void main(String[] args)
   {
// 人名识别示例
       String[] test_person_case = new String[]{
              "签约仪式前,秦光荣、李纪恒、仇和等一同会见了参加签约的企业家。",
               "武大靖创世界纪录夺冠,中国代表团平昌首金",
               "区长庄木弟新年致辞",
               "朱立伦:两岸都希望共创双赢 习朱历史会晤在即",
               "陕西首富吴一坚被带走 与令计划妻子有交集",
               "据美国之音电台网站428日报道,8岁的凯瑟琳·克罗尔(凤甫娟)和很多华裔美国小朋友一样,小小年纪就开始学小提琴了。她的妈妈是位虎妈么?",
               "凯瑟琳和露西(庐瑞媛),跟她们的哥哥们有一些不同。",
               "王国强、高峰、汪洋、张朝阳光着头、韩寒、小四",
               "张浩和胡健康复员回家了",
               "王总和小丽结婚了",
               "编剧邵钧林和稽道青说",
               "这里有关天培的有关事迹",
               "龚学平等领导说,邓颖超生前杜绝超生",
              "蓝翔给宁夏固原市彭阳县红河镇黑牛沟村捐赠了挖掘机",
               "我在上海林原科技有限公司兼职工作,",
               "我经常在台川喜宴餐厅吃饭,",
               "偶尔去开元地中海影城看电影。",
               "不用词典,福哈生态工程有限公司是动态识别的结果。"
       };
       for (String sentence : test_person_case)
       {
           List<Term> termList = recognizeNER(sentence);
           System.out.println(sentence + "\t" + termList.toString());
       }
       
   }
}

喜欢0 评分0
DKHadoop用着还不错!
游客

返回顶部