NLP主体识别
郝伟 2021/03/08
实体识别(EntitiesRecognition,NER)是自然语言处理的一个基础任务。其目的是识别语料中人名、地名、组织机构名等命名实体,比如,对街道、建筑、概述等名词的识别。
本文主要面向工程应用,所以使用现有的jieba库进行识别,具体实现代码如下所示:
# -*- coding: utf-8 -*- """ 日期:2021/03/08 作者:郝伟老师 简介:从文本中提取实体。 参考: # 安装jieba: conda install -c conda-forge jieba """ #import jieba import jieba.analyse # import jieba.posseg as posg sentence=u'''实体提取是从一段文字中提出各类人名、地名或专有名词,这些词汇一般是句子的相关的对象。 关键字则是能够表达文章主要思想的词汇,是文章内容的精练。''' #sentence='''帮我订张明天的机票,从北京去上海,下午起飞的那种,我电话13344445555,行程单发我邮箱yuanquaner@woshipm.com好的,已为您找到如下符合条件的航班''' kw=jieba.analyse.extract_tags(sentence,topK=10,withWeight=True,allowPOS=('n','ns')) print(' 实体排名(前5个) '.center(20, '*')) for item in kw[:5]: print(item[0],item[1]) kw=jieba.analyse.textrank(sentence,topK=20,withWeight=True,allowPOS=('ns','n')) print(' 关键字排名(前5个) '.center(20, '*')) for item in kw[:5]: print(item[0],item[1])
代码执行以后,可以得到以下结果。
**** 实体排名(前5个) *****
词汇 1.5500725898709091
关键字 0.882820264540909
文章内容 0.8331344730527271
句子 0.8284714462899999
地名 0.7662188162090909
**** 关键字排名(前5个) ****
词汇 1.0
对象 0.5943209668145821
句子 0.5348735705644506
文字 0.531888804020832
实体 0.5283487735071669