1. 程式人生 > >HanLP-命名實體識別總結

HanLP-命名實體識別總結

人名識別

 

在HanLP中,基於角色標註識別了中國人名。首先系統利用隱馬爾可夫模型標註每個詞語的角色,之後利用最大模式匹配法對角色序列進行匹配,匹配上模式的即為人名。理論指導文章為:《基於角色標註的中國人名自動識別研究》,大家可以百度一下看看

 

地名識別

 

理論指導文章為:《基於層疊隱馬爾可夫模型的中文命名實體識別》

 

機構名識別

 

機構名的理論指導文章為:《基於角色標註的中文機構名識別》

 

命名實體識別Demo

 

/*

 * <summary></summary>

 * <author>He Han</author>

 * <email>[email protected]</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[]{

                "簽約儀式前,秦光榮、李紀恆、仇和等一同會見了參加簽約的企業家。",

                "武大靖創世界紀錄奪冠,中國代表團平昌首金",

                "區長莊木弟新年致辭",

                "朱立倫:兩岸都希望共創雙贏 習朱歷史會晤在即",

                "陝西首富吳一堅被帶走 與令計劃妻子有交集",

                "據美國之音電臺網站4月28日報道,8歲的凱瑟琳·克羅爾(鳳甫娟)和很多華裔美國小朋友一樣,小小年紀就開始學小提琴了。她的媽媽是位虎媽麼?",

                "凱瑟琳和露西(廬瑞媛),跟她們的哥哥們有一些不同。",

                "王國強、高峰、汪洋、張朝陽光著頭、韓寒、小四",

                "張浩和胡健康復員回家了",

                "王總和小麗結婚了",

                "編劇邵鈞林和稽道青說",

                "這裡有關天培的有關事蹟",

                "龔學平等領導說,鄧穎超生前杜絕超生",

                "藍翔給寧夏固原市彭陽縣紅河鎮黑牛溝村捐贈了挖掘機",

                "我在上海林原科技有限公司兼職工作,",

                "我經常在臺川喜宴餐廳吃飯,",

                "偶爾去開元地中海影城看電影。",

                "不用詞典,福哈生態工程有限公司是動態識別的結果。"

        };

        for (String sentence : test_person_case)

        {

            List<Term> termList = recognizeNER(sentence);

            System.out.println(sentence + "\t" + termList.toString());

        }

        

    }

}

 

【文章來源:整理自 baiziyu&nb