中文命名实体识别

  • 发布日期:2019-09-29
  • 难度:中等
  • 类别:Web挖掘、自然语言处理
  • 标签:Python、pyhanlp、命名实体识别、中文

1. 问题描述

基于pyhanlp,识别中文文本中的命名实体(机构、人名、地名)。

2. 程序实现

In [1]:
from pyhanlp import *
from jpype import JArray,JString


def convert_to_jarray(array):
    jarray = JArray(JString, 1)(len(array))
    for i in range(0, len(array)):
        jarray[i] = array[i]
    return jarray


text = "北京大学经济学院教授李四来到香港特别行政区"

CRFSegmenter = JClass("com.hankcs.hanlp.model.crf.CRFSegmenter")
segmenter = CRFSegmenter()
text_seg = segmenter.segment(text)
print(' '.join(text_seg))

CRFTagger = JClass("com.hankcs.hanlp.model.crf.CRFPOSTagger")
tagger = CRFTagger()
text_pos = tagger.tag(segmenter.segment(text))
print(' '.join(text_pos))

CRFNERecognizer = JClass("com.hankcs.hanlp.model.crf.CRFNERecognizer")
recognizer = CRFNERecognizer()
text_ne = recognizer.recognize(convert_to_jarray(text_seg),
                                    convert_to_jarray(text_pos))
print(' '.join(text_ne))

PerceptronLexicalAnalyzer = JClass("com.hankcs.hanlp.model.crf.CRFLexicalAnalyzer")
analyzer = PerceptronLexicalAnalyzer()
text_analyze = analyzer.analyze(text)
print(text_analyze)
北京大学 经济 学院 教授 李四 来到 香港 特别 行政区
nt n n n nr v ns a n
B-nt M-nt E-nt O S O B-ns M-ns E-ns
北京大学经济学院/nt 教授/n 李四/nr 来到/v 香港/ns 特别行政区/nz