环境配置:

1、cd到该文件夹,打开cmd命令行python配置环境:
输入:
pip install nltk
2、安装JDK进行java环境配置
安装jdk,安装包链接:链接:https://pan.baidu.com/s/1TTSVMrDZZ74gbjbgrUz4xw 提取码:mlnv
配置环境变量,详情参照:https://blog.csdn.net/qq_16085405/article/details/80700804
3、下载stanford-ner-2018-10-16进行人名识别环境配置
下载链接:https://pan.baidu.com/s/1FhM4ZSORNSPcncci7uzz2g 提取码:nhyw
下载Stanford NER的zip文件解压后的文件夹的路径为:E://stanford-ner-2018-10-16

源码

首先对大佬表示感谢,参考文章:点击
粘一下大佬的代码:(stanford-ner要比ner的效果好,详情看大佬原文)

import re
from nltk.tag import StanfordNERTagger
import os
import pandas as pd
import nltkclass check(object):def __init__(self):passdef parse_document(document):document = re.sub('\n', ' ', document)if isinstance(document, str):document = documentelse:raise ValueError('Document is not string!')document = document.strip()sentences = nltk.sent_tokenize(document)sentences = [sentence.strip() for sentence in sentences]return sentencesdef check_name(article_content):sentences = check.parse_document(article_content)tokenized_sentences = [nltk.word_tokenize(sentence) for sentence in sentences]# set java path in environment variablesjava_path = r'C:\Program Files\Java\jdk1.8.0_161\bin\java.exe'os.environ['JAVAHOME'] = java_path# load stanford NERsn = StanfordNERTagger('E://stanford-ner-2018-10-16/classifiers/english.muc.7class.distsim.crf.ser.gz',path_to_jar='E://stanford-ner-2018-10-16/stanford-ner.jar')# tag sentences   最重要的一步分类算法ne_annotated_sentences = [sn.tag(sent) for sent in tokenized_sentences]# extract named entitiesnamed_entities = []for sentence in ne_annotated_sentences:temp_entity_name = ''temp_named_entity = Nonefor term, tag in sentence:# get terms with NE tagsif tag != 'O':temp_entity_name = ' '.join([temp_entity_name, term]).strip() #get NE nametemp_named_entity = (temp_entity_name, tag) # get NE and its categoryelse:if temp_named_entity:named_entities.append(temp_named_entity)temp_entity_name = ''temp_named_entity = None# get unique named entitiesnamed_entities = list(set(named_entities))###########      named_entities是识别结果      ##########name = []for n in named_entities:if n[1] == 'PERSON':name.append(n[0])return namettt = 'The case was prosecuted by Trial Attorney Joseph Palazzo of the Money Laundering and Asset Recovery Section and Assistant U.S. Attorneys Thomas A. Gillice, Luke Jones, Karen Seifert and Deborah Curtis and Special Assistant U.S. Attorney Jacqueline L. Barkett of the U.S. Attorney’s Office for the District of Columbia.'
name = check.check_name(ttt)
print(name)

debug

1、如果运行报错 NLTK was unable to find the java file! Use softwarespecific configuration paramaters or set the JAVA
参考:https://blog.csdn.net/LIUSHAO123456789/article/details/79486997

python NLTK识别字符串中的人名等,命名实体识别相关推荐

  1. python 如何识别字符串中的人名 ,如何识别一串拼音字符串以及韵母的提取 (一些方法整理)

    一.识别字符串中的人名或特定名词 笔者所用的是百度智能云提供的词法分析接口,它可以对字符串分词,并且能够识别句子中的人名,地名,等等.好,接下来教你们如何使用这个接口. 官网:https://clou ...

  2. [Python人工智能] 二十七.基于BiLSTM-CRF的医学命名实体识别研究(下)模型构建

    这篇文章写得很冗余,但是我相信你如果真的看完,并且按照我的代码和逻辑进行分析,对您以后的数据预处理和命名实体识别都有帮助,只有真正对这些复杂的文本进行NLP处理后,您才能适应更多的真实环境,坚持!毕竟 ...

  3. python Name Entity Recognition(NER) extract company name 命名实体识别 提取公司名

    命名实体识别(NER)可能是信息提取的第一步,该过程旨在将文本中的命名实体定位和分类为预定义类别,例如人员名称,组织,位置,时间表达,数量,货币价值,百分比,等等.NER在自然语言处理(NLP)的许多 ...

  4. 命名实体识别_用膨胀卷积进行命名实体识别 NER

    BiLSTM+CRF 是命名实体识别中最为流行的模型,但是 LSTM 需要按顺序处理输入的序列,速度比较慢.而采用 CNN 可以更高效的处理输入序列,本文介绍一种使用膨胀卷积进行命名实体识别的方法 I ...

  5. python 命名实体识别_命名实体识别的两种方法

    作者:Walker 目录 一.什么是命名实体识别 二.基于NLTK的命名实体识别 三.基于Stanford的NER 四.总结 一 .什么是命名实体识别? 命名实体识别(Named Entity Rec ...

  6. 实体对齐 算法_中英命名实体识别及对齐中的中文分词优化 论文笔记

    1.计算命名实体词汇对齐的置信度:对一个中英双语句对,中文在初始分词的基础上进行命名实体识别. 2.分词工具:采用中科院分词工具ICTCLAS.Stanford分词工具对中文句子进行分词,其中Stan ...

  7. 命名实体识别python_命名实体识别的两种方法

    作者 | Walker [磐创AI导读]:本文主要介绍自然语言处理中的经典问题--命名实体识别的两种方法. 目录 一.什么是命名实体识别 二.基于NLTK的命名实体识别 三.基于Stanford的NE ...

  8. 命名实体识别的两种方法

    作者:Walker 目录     一.什么是命名实体识别     二.基于NLTK的命名实体识别     三.基于Stanford的NER     四.总结 一 .什么是命名实体识别? 命名实体识别( ...

  9. NLP实战:面向中文电子病历的命名实体识别

    一.前言 本篇文章是关于NLP中的中文命名实体识别(Named Entity Recognition,NER)的实战项目,该项目利用了大型预训练语言模型BERT和BiLSTM神经网络结构来进行NER任 ...

最新文章

  1. IOS分享扩展使用JS脚本
  2. sigsuspend的理解
  3. BZOJ2815: [ZJOI2012]灾难
  4. post请求与get请求的差别
  5. 产品经理必须知道的概念-什么是前景效应分析?用户决策背后的影响因子有哪些?
  6. Ionic中自定义公共模块以及在自定义模块中使用ionic内置模块
  7. 深度学习中多层全连接网络的梯度下降法及其变式
  8. VTK:PolyData之PointNormals
  9. Javascript之RegExp
  10. ​css3属性选择器总结
  11. 基于netty的微服务网关_基于Rx-netty和Karyon2的云就绪微服务
  12. laravel5.6 使用指定字段作为key_MyRocks TTL使用姿势及Bugfix
  13. VMware Esxi-5.1 简介与安装
  14. 利用SAN做数字化世界的基石
  15. kali远程登录window_手把手教你配置VS Code远程开发工具,工作效率提升N倍
  16. PCL中的采集器之一OpenNI
  17. tolist方法python_python中如何使用tolist()方法将数组或者矩阵转换为列表?
  18. C# 匿名函数_C# 匿名函数使用整理
  19. 无线网卡无法获取dhcp服务器,无线网络无法获取网络IP地址
  20. 微信屏蔽的是域名还是服务器ip,域名从未使用也会被微信屏蔽,这个你怎么看?...

热门文章

  1. 逆水linux决服务器搭建教程,【教程攻略】智障式Linux服务器搭建教程
  2. EMU,ARC 、NeoGeo CD 、GB/GBC 、MD 、SFC 、GG/SMS 、GBA 、PS 、PCE 模拟器移植方案
  3. 华三交换机配置access命令_h3c交换机配置命令
  4. 图片怎么转化为pdf格式?
  5. [附源码]java毕业设计电子病历信息管理系统
  6. 4. 机器人正运动学---理解变换矩阵
  7. MacOS好用的播放速度控制扩展(插件)推荐
  8. android webview获取Gps位置不准
  9. UG12.0安装 出现 General Fault Exception 是硬件还是软件问题
  10. 找出1~1000以内的所有质数