使用Spacy实现命名实体识别

本次实验的目的是完成文本数据的词性标注和识别文本中的命名实体
一、数据来源
数据是2022年2月4日的新闻
二、数据预处理
使用jieba对文本进行分词和去停用词,使用的是哈工大的停用词表

import jieba# 创建停用词列表 使用哈工大的停用词表
def stopwordslist():stopwords = [line.strip() for line in open('hit_stopwords.txt',encoding='UTF-8').readlines()]return stopwords# 对句子进行中文分词
def seg_depart(sentence):# 对文档中的每一行进行中文分词sentence_depart = jieba.cut(sentence.strip())# 创建一个停用词列表stopwords = stopwordslist()# 输出结果为outstroutstr = ''# 去停用词for word in sentence_depart:if word not in stopwords:if word != '\t':outstr += wordoutstr += ""return outstr# 给出文档路径
filename = "data.txt"
outfilename = "out.txt"
inputs = open(filename, 'r', encoding='UTF-8')
outputs = open(outfilename, 'w', encoding='UTF-8')# 将输出结果写入out.txt中
for line in inputs:line_seg = seg_depart(line)outputs.write(line_seg) outputs.close() # 关闭文件
inputs.close()
print("删除停用词和分词成功!!!")

处理过后的数据

由于之后还要采用posseg进行分词,所以在预处理时并没有用“ ”(空格)将两个词分开。
三、使用posseg完成词性标注
导入第三方库

import jieba
import jieba.posseg as pseg
import paddle
text = ''
with open('out.txt','r',encoding='utf-8') as inf:text = inf.read() # 读入文本数据
# print(text)
# 开启静态图模式
paddle.enable_static()
# # 引入paddle包,开启paddle模式
jieba.enable_paddle()
# 使用paddle分词,设置use_paddle=True
texts = pseg.cut(text,use_paddle = True)
# 存放人名
Person = []
# 存放地名
Location = []
# 存放机构名
Organization = []
# 存放时间
Time = []
for text,flag in texts:if flag == 'PER':Person.append(text)if flag == 'LOC':Location.append(text)if flag == 'ORG':Organization.append(text)if flag == 'TIME':Time.append(text)print('%s %s'%(text,flag))
print("===========")
print("Person" + str(Person))
print("Location" + str(Location))
print("Organization" + str(Organization))
print("Time" + str(Time))



posseg 词性表

四、使用spacy实现命名实体可视化

import spacy
from spacy import displacy
from collections import Counternlp_zh = spacy.load('zh_core_web_sm')  #加载中文包def read_file(file_name):                    #打开要处理的文本with open(file_name,'r',encoding='utf-8') as file:return file.read()text = read_file('out.txt')  #读取文本
processed_text = nlp_zh(text)
# print(processed_text)
sentences = [s for s in processed_text.sents]
# print(len(sentences))    #输出有多少句话
displacy.render(processed_text,style='ent',jupyter=True)def find_person(doc):c = Counter()for ent in processed_text.ents:if ent.label_ == 'DATE':c[ent.lemma_]+=1return c.most_common(1)
print(find_person(processed_text))

查看spacy的版本号

!python -m spacy info


若是在按照中文包zh_core_web_sm出现错误时,需要检查中文包和spacy的版本是否一致。
查看词性表达的含义

spacy.explain("GPE")

spacy.explain("CARDINAL")

spacy.explain("EVENT")

spacy.explain("LOC")

源码程序

https://download.csdn.net/download/qq_45556665/86742175

停用词表

https://download.csdn.net/download/qq_45556665/86742165

使用Spacy实现命名实体识别相关推荐

  1. 基于spaCy的领域命名实体识别

    基于spaCy的命名实体识别 ----以"大屠杀"领域命名实体识别研究为例 作者: Dr. W.J.B. Mattingly Postdoctoral Fellow at the ...

  2. spacy spaCy主要功能包括分词、词性标注、词干化、命名实体识别、名词短语提取等等

    spaCy主要功能包括分词.词性标注.词干化.命名实体识别.名词短语提取等等https://zhuanlan.zhihu.com/p/51425975

  3. 初学者 | 一文读懂命名实体识别

    本文对自然语言基础技术之命名实体识别进行了相对全面的简绍,包括定义.发展历史.常见方法.以及相关数据集,最后推荐一大波python实战利器,并且包括工具的用法. 定义 先来看看维基百科上的定义:Nam ...

  4. 神圣的NLP!一文理解词性标注、依存分析和命名实体识别任务

    词性标注(Part-of-Speech Tagging, POS).命名实体识别(Name Entity Recognition,NER)和依存句法分析(Dependency Parsing)是自然语 ...

  5. 命名实体识别_命名实体识别的几种标注形式

    选择一个正确的用例和工作流 Choosing the right recipe and workflow 所以你有一个需要解决的NER问题,以及需要注释的数据.你要尽可能高效地完成它.但是如何为你的用 ...

  6. 一文读懂命名实体识别

    本文对自然语言基础技术之命名实体识别进行了相对全面的介绍,包括定义.发展历史.常见方法.以及相关数据集,最后推荐一大波 Python 实战利器,并且包括工具的用法. 01 定义 先来看看维基百科上的定 ...

  7. 中文处理工具fastHan 2.0:支持中文分词、词性标注、命名实体识别、依存语法分析、中文AMR的强有力工具

    fastHan 简介 fastHan是基于fastNLP与pytorch实现的中文自然语言处理工具,像spacy一样调用方便. 其内核为基于BERT的联合模型,其在15个语料库中进行训练,可处理中文分 ...

  8. ELMO实战-命名实体识别

    ELMO模型实战-命名实体识别 数据处理 import numpy as np import torch import os# shared global variables to be import ...

  9. 推荐30个以上比较好的命名实体识别模型github源码?

    命名实体识别是自然语言处理中的一个重要任务,也是比较经典的应用.这里推荐几个比较流行的命名实体识别模型的GitHub源码: BERT-NER:基于BERT的命名实体识别模型,使用了CRF层来解码,在很 ...

最新文章

  1. python3调用OCR识别
  2. 复旦大学类脑智能研究院发展电刺激伪迹实时处理新方法,为智能闭环神经调控提供关键技术...
  3. 基于android os 5.1,Android 5.1.1版氢OS快速体验
  4. iphone闪退修复工具_苹果中国回应iPhone致命漏洞:不予置评
  5. 高斯分布 (Gaussian distribution)
  6. Java 内置的数据类型
  7. 《TCP/IP详解》读书笔记
  8. 保时捷卡宴Cayenne Coupe插电混动版上市
  9. 关于redis的几点思考
  10. android titlebar 高度是多少,什么是TitleBar的默认高度和Android中Titlebar中的默认TextSize?...
  11. 关于Spring3 MVC的 HttpMediaTypeNotSupportedException
  12. 池与线程池 技术点 目录 1. 线程池作用: 提升性能 1 2. 使用流程 1 3. 线程与线程池的监控 jvisual 1 4. 线程常用方法 2 5. 线程池相关概念 2 5.1. 队列
  13. 硬件知识储备01_一文看懂W25Qxx系列芯片(W25Q16、W25Q32、W25Q64...)
  14. Excel的在线翻译插件,翻译结果添加到备注里~
  15. 【RFID】RFID的标准体系
  16. 第一个Andriod应用
  17. 几款主流浏览器的简单比对实验,360极速最适合我_我是亲民_新浪博客
  18. 漂亮的壁纸,这些网站就足够了。
  19. python使用爬虫写一个自己的翻译器(带图像界面)
  20. 敏捷的精髓在于即时反馈

热门文章

  1. 文件上传漏洞、WebShell、防御及绕过利用、Web容器解析漏洞、编辑器上传漏洞
  2. 金山反间谍(系统清理专家)2月27日更新报告
  3. 破译奇梦谜底——解梦笔记
  4. 社区团购变局中的“酱茅”们
  5. 分数优先遵循志愿php源码_高考志愿分数优先遵循志愿是什么意思
  6. 《张成功项目管理记》一评审:让问题止步,让下游放心
  7. 尚硅谷云原生学习笔记(76~143集)
  8. 关系型数据库到MongoDB的战略迁移 - MongoDB大中华区首席架构师唐建法专访
  9. 直播预告 | 如何迈向知识驱动的人工智能?
  10. 怎么设置整体背景为灰色html,设置网站图片为灰色以及css添加多张背景图实现...