Mac os Pycharm 中使用Stanza进行实体识别(自然语言处理nlp)
stanza 是斯坦福开源Python版nlp库,对自然语言处理有好大的提升,具体好在哪里,官网里面都有介绍,这里就不翻译了。下面放上对应的官网和仓库地址。
stanza 官网地址:点击我进入
stanza github 仓库地址:点击我进入
安装步骤
1、Pycharm 中在设置中安装 stanza 是比较慢的,因此不建议这种方法,而且也考不到进度到那里了。

2、直接在pycharm中安装也有尝试,但是很长时间都没看到成功,这里推荐使用将仓库代码克隆下来,在本地进行手动安装,最主要的是速度快。
# 为了方面查找,这里建议直接将仓库克隆到桌面最省事。
cd ~/Destop
git clone https://github.com/stanfordnlp/stanza.git
cd stanza
pip install -e .
pip 安装成功之后下面就是将安装好的内容移动到pycharm使用的Interpreter,也就是下图使用的python路径对应的site-packages中。

找到上图对应的跟bin同一目录的lib文件,lib->python3.7->site-packages。打开这个文件夹,将之前安装好的 stanza 移过来。如果是克隆在桌面了,就到桌面去找对应的文件夹,会发现刚才克隆的stanza文件夹下多了两个文件:stanza、stanza.egg-info,将这两个文件移动到上面的 site-packages 中,这样就可以在 pycharm 中直接导入使用。以上stanza安装完成。
使用
Pycharm 中使用stanza也比较简单,直接导入使用。
import stanza
# 这一步是去下载对应的英文模型,执行一下看命令行链接出来就可以,命令行有可能不会成功,还是老方法把命令行中的地址,放到浏览器中直接下载。
stanza.download('en')
执行之后,会出现下面的链接,链接放到浏览器后下载完成解压。

第二个地址直接点击去下载也行,这里放上地址:英文模型下载。
英文模型下载完成后,解压会看到里面有对应的文件。将文件放到下面命令执行后报错的路径下。
nlp = stanza.Pipeline('en')
doc = nlp("Barack Obama was born in Hawaii. He was elected president in 2008.")
执行上面两句会看到报错,说在xxx路径找不到模型包,把刚才下载的模型放到这个文件夹中,这个文件一般是在用户目录下stanza_resources,比如:/Users/xxxx/stanza_resources,
该目录下有en(代表英文模型),把下载的模型放到这个目录:/Users/xxxx/stanza_resources/en/。
以上步骤完成后,就可以使用。
说下stanza进行实体识别时候好处是,直接将识别的实体封装成了json格式,识别出的实体比如:PERSON、ORG、LOCATION等,词性为“O”的并不会出现在识别结果中,这样方便多了,不需要在进行过滤到不想要的实体。具体效果如下:
import stanza
nlp = stanza.Pipeline('en')
doc = nlp("Barack Obama was born in Hawaii. John studies at Stanford University in NewYork.")
for sentence in doc.sentences:
print(sentence.ents)
输出如下:
[{
"text": "Barack Obama",
"type": "PERSON",
"start_char": 0,
"end_char": 12
}, {
"text": "Hawaii",
"type": "GPE",
"start_char": 25,
"end_char": 31
}, {
"text": "John",
"type": "PERSON",
"start_char": 34,
"end_char": 38
}, {
"text": "Stanford University",
"type": "ORG",
"start_char": 50,
"end_char": 69
}, {
"text": "NewYork",
"type": "GPE",
"start_char": 73,
"end_char": 80
}]
这里比stanfordcorenlp实体识别区别是:实体会进行组块分析,比如 Barack Obama识别成一个实体(PERSON)。而stanfordcorenlp则会分开识别:Barack(PERSON)、Obama(PEROSN)。
Mac os Pycharm 中使用Stanza进行实体识别(自然语言处理nlp)的更多相关文章
- Mac OS X 中一些常用的命令行技巧
一.网络设置相关 1.网卡的物理地址的动态重置 出于某些需求,例如网络中的 IP 地址或网络帐号与网卡物理地址绑定,使得多个设备无法切换上网,可尝试临时更改物理地址.不过,系统偏好设置是不能修改网卡物 ...
- 在Mac OS X中配置Apache + PHP + MySQL
在Mac OS X中配置Apache + PHP + MySQL Mac OS X 内置Apache 和 PHP,使用起来非常方便.本文以Mac OS X 10.6.3和为例.主要内容包括: 启动Ap ...
- 在Mac OS X中使用VIM开发STM32(2)
本文原创于http://www.cnblogs.com/humaoxiao,非法转载者请自重! 在我先前的博文⎣在Mac OS X中使用VIM开发STM32(1)⎤中,我们安装完成了MACVIM,这一 ...
- 在Mac OS X中使用VIM开发STM32(1)
本文原创于http://www.cnblogs.com/humaoxiao,非法转载者请自重! 在我先前的博文⎣在Mac OS X中搭建STM32开发环境⎤中,我们在Mac中DIY出了最 ...
- 【转】Mac OS X 中 Zsh 下 PATH 环境变量的正确设置
在 Mac OS X 中使用 zsh,环境变量 PATH 一不小心就会变得很紊乱,表现为自己设置的路径总是被放到系统路径之后,部分路径还会有重复.这是我们不太了解 zsh 启动时加载文件的顺序和 Ma ...
- 在 Mac OS X 中建立加密的 Zip 压缩 -- 让机密资料加上密码
在 Mac OS X 中要压缩档案的話,基本上就用滑鼠点右鍵选「压缩...」就可以制作 Zip 格式的压缩档,很方便.但如果是机密的资料要透过 Email 等管道传送时,常常会需要建立加密的 Zip ...
- 让Mac OS X中的PHP支持GD
GD库已经是近乎于是现在主流PHP程序的标配了,所以也必须让Mac OS X中的PHP支持GD.在网上搜索了好多,最终按照这个方式成功实现,如何让Mac OS X支持PHP,请查看<让PHP跑在 ...
- 在MAC OS X中默认的Web共享目录
在Mac OS X中可以很方便的通过开启"Web共享"启用Apache服务:设置方法如下: 打开"系统设置偏好(System Preferences)" -&g ...
- 在Mac OS X中配置Apache + PHP + MySQL 很详细
这是一篇超级详细的配置mac os下面php+mysql+apache的文章.非常详细我的大部分配置就是参考上面的内容的,比如,PHP不能连接数据库,就是改一下默认的php.ini中pdo_mysql ...
随机推荐
- ShedLock-jdbc配置锁
项目初期为了快速响应业务开发,对于部分业务需要使用到定时任务功能模块,会直接嵌入到主流程代码中间.当业务增加,发展成分布式服务时,那些定时任务对整体而言重复执行.如果避免分布式服务中的定时任务单一执行 ...
- 概率-Knight Probability in Chessboard
2018-07-14 09:57:59 问题描述: 问题求解: 本题本质上是个挺模板的题目.本质是一个求最后每个落点的数目,用总的数目来除有所可能生成的可能性.这种计数的问题可以使用动态规划来进行解决 ...
- Layui-admin-iframe通过页面链接直接在iframe内打开一个新的页面,实现单页面的效果
前言: 使用Layui-admin做后台管理框架有很长的一段时间了,但是一直没有对框架内iframe菜单栏切换跳转做深入的了解.今天有一个这样的需求就是通过获取超链接中传递过来的跳转地址和对应的tab ...
- 一些js 概念 整理
1.原型链 prototype 这个属性 是一个指针,指向一个对象 这个对象 包含 所有实例共享的属性和方法,即这个原型对象是用来给实例共享属性和方法的. 而每个实例内部 ...
- jmeter响应乱码(十四)
方法一: jmeter响应乱码解决方法:在jmeter的bin目录下找到jmeter.propertis这个文件,修改里面的#sampleresult.default.encoding=ISO-885 ...
- Python第十一章-常用的核心模块03-json模块
python 自称 "Batteries included"(自带电池, 自备干粮?), 就是因为他提供了很多内置的模块, 使用这些模块无需安装和配置即可使用. 本章主要介绍 py ...
- [RH134] 10-NFS和Samba客户端
NFS和samba服务器的配置,请参考: 这里,我们只讨论客户端的使用 1.NFS客户端的使用 nfs实现的是类Unix系统之间的远程共享目录. 假设我们已经有一个提供nfs服务的服务器,IP为192 ...
- Prism 源码解读6-事件聚合
0 介绍 事件提供的是1对多的绑定,通过委托链实现对订阅者的调用,事件必须要通过发布者调用.同时事件订阅是强引用,事件订阅者的生命周期总是大于等于事件发布者.如果代码中事件很多就会充斥着各种事件的订阅 ...
- 4.用IntelliJ IDEA 创建Maven Web
一.File→New→ Project 二.Maven→org.apache.maven.archetypes:maven-archetype-webapp→Next(记得打钩) 三.填入后Next→ ...
- KA 接口表
一.建表 1.年日均销量表 drop table app.app_basic_dashboard_goods_avg_year_sellnum; CREATE TABLE app.app_basic_ ...