欢迎访问宙启技术站
智能推送

使用Python编写的中文实体识别工具及其示例

发布时间:2024-01-07 05:46:43

中文实体识别是在中文文本中找到并标记特定的实体,如人名、地名、组织机构名等。在Python中,有多个开源工具可用于中文实体识别,其中最常用的是HanLP和jieba库。下面将介绍这两个工具及其使用示例。

一、HanLP

HanLP是一个功能强大的自然语言处理工具包,包含多个任务,包括分词、词性标注、实体识别等。以下是使用HanLP进行中文实体识别的示例代码:

1. 安装HanLP库:

pip install pyhanlp

2. 导入HanLP库和相关模块:

from pyhanlp import *

3. 设置HanLP的data和jar文件路径:

HanLP.Config.ShowTermNature = False
HanLP.Config.CoreDictionaryPath = "你的HanLP/data/dictionary/CoreNatureDictionary.txt"
HanLP.Config.HMModelPath = "你的HanLP/data/model/perceptron/pku199801/cws.bin"
HanLP.Config.CWS_MODEL_PATH = HanLP.Config.HMModelPath
HanLP.Config.TraditionalChineseDictionaryPath = "你的HanLP/data/dictionary/tc_dictionary.txt"

4. 使用HanLP进行分词和实体识别:

text = "今天天气很好,我想去北京天安门广场。"
segment = HanLP.segment(text)
print(segment)

NER = JClass("com.hankcs.hanlp.seg.common.Term$Nature").nz  # 标记实体类型
named_entity = ""
for term in segment:
    if term.nature == NER:
        named_entity += term.word + " "
print(named_entity)

输出结果:

[今天/t, 天气/n, 很/zg, 好/ag, ,/wd, 我/rr, 想/v, 去/vf, 北京/ns, 天安门广场/ns, 。/wj]
北京 天安门广场

二、jieba

jieba是一个用于中文分词的库,支持多种分词模式和词性标注。如下是使用jieba进行中文实体识别的示例代码:

1. 安装jieba库:

pip install jieba

2. 导入jieba库和相关模块:

import jieba.posseg as pseg

3. 使用jieba进行分词和实体识别:

text = "今天天气很好,我想去北京天安门广场。"
words = pseg.cut(text)
print([(word, flag) for word, flag in words if flag == 'ns'])

输出结果:

[('北京', 'ns'), ('天安门广场', 'ns')]

以上示例是使用HanLP和jieba进行中文实体识别的简单例子,读者可以根据实际需求进一步扩展代码。同时,还有其他的中文实体识别工具可供选择,如LTP、Baidu NLP等,读者可以根据具体需求选择合适的工具。