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)的更多相关文章

  1. Mac OS X 中一些常用的命令行技巧

    一.网络设置相关 1.网卡的物理地址的动态重置 出于某些需求,例如网络中的 IP 地址或网络帐号与网卡物理地址绑定,使得多个设备无法切换上网,可尝试临时更改物理地址.不过,系统偏好设置是不能修改网卡物 ...

  2. 在Mac OS X中配置Apache + PHP + MySQL

    在Mac OS X中配置Apache + PHP + MySQL Mac OS X 内置Apache 和 PHP,使用起来非常方便.本文以Mac OS X 10.6.3和为例.主要内容包括: 启动Ap ...

  3. 在Mac OS X中使用VIM开发STM32(2)

    本文原创于http://www.cnblogs.com/humaoxiao,非法转载者请自重! 在我先前的博文⎣在Mac OS X中使用VIM开发STM32(1)⎤中,我们安装完成了MACVIM,这一 ...

  4. 在Mac OS X中使用VIM开发STM32(1)

       本文原创于http://www.cnblogs.com/humaoxiao,非法转载者请自重!     在我先前的博文⎣在Mac OS X中搭建STM32开发环境⎤中,我们在Mac中DIY出了最 ...

  5. 【转】Mac OS X 中 Zsh 下 PATH 环境变量的正确设置

    在 Mac OS X 中使用 zsh,环境变量 PATH 一不小心就会变得很紊乱,表现为自己设置的路径总是被放到系统路径之后,部分路径还会有重复.这是我们不太了解 zsh 启动时加载文件的顺序和 Ma ...

  6. 在 Mac OS X 中建立加密的 Zip 压缩 -- 让机密资料加上密码

    在 Mac OS X 中要压缩档案的話,基本上就用滑鼠点右鍵选「压缩...」就可以制作 Zip 格式的压缩档,很方便.但如果是机密的资料要透过 Email 等管道传送时,常常会需要建立加密的 Zip ...

  7. 让Mac OS X中的PHP支持GD

    GD库已经是近乎于是现在主流PHP程序的标配了,所以也必须让Mac OS X中的PHP支持GD.在网上搜索了好多,最终按照这个方式成功实现,如何让Mac OS X支持PHP,请查看<让PHP跑在 ...

  8. 在MAC OS X中默认的Web共享目录

    在Mac OS X中可以很方便的通过开启"Web共享"启用Apache服务:设置方法如下: 打开"系统设置偏好(System Preferences)" -&g ...

  9. 在Mac OS X中配置Apache + PHP + MySQL 很详细

    这是一篇超级详细的配置mac os下面php+mysql+apache的文章.非常详细我的大部分配置就是参考上面的内容的,比如,PHP不能连接数据库,就是改一下默认的php.ini中pdo_mysql ...

随机推荐

  1. MySQL对JSON类型UTF-8编码导致中文乱码探讨

    前言 继上文发表之后,结合评论意见并亲自验证最终发现是编码的问题,但是对于字符编码还是有点不解,于是乎,有了本文,我们来学习字符编码,在学习的过程中,我发现对于MySQL中JSON类型的编码导致数据中 ...

  2. Oracle时间日期计算--计算某一日期为一年中的第几周

    Oracle时间日期计算--计算某一日期为一年中的第几周 select to_char(sysdate-10,'yyyymmdd')||':iw:'||to_char(sysdate-10,'iw') ...

  3. 线程安全,syncronized 用法

    1,为什么有线程安全问题? 当多个线程同时共享同一个全局变量或静态变量,做写的操作时,可能会发生数据冲突问题,也就是线程安全问题.但是做读操作是不会发生数据冲突问题. public class Tra ...

  4. SSH免密配置

    1. 在三个节点生成秘钥cd ~/.sshssh-keygen -t rsa 2.合并三个节点的密码cat id_rsa.pub >> authorized_keysssh postgre ...

  5. 通用mapper常用注解

    通用mapper的作用: 自动实现单表的增删改查 常用注解使用 @Table 作用:建立实体类和数据库表之间的对应关系. 默认规则:实体类类名首字母小写作为表名.Employee 类→employee ...

  6. 手工注入——MySQL手工注入实战和分析

    今天进行了MySQL手工注入实战,分享一下自己的实战过程和总结,这里环境使用的是墨者学院的在线靶场.话不多说,咱们直接开始. 第一步,判断注入点 通过 ' 和构造 and 1=1 和 and 1=2 ...

  7. B. Kvass and the Fair Nut

    B. Kvass and the Fair Nut time limit per test 1 second memory limit per test 256 megabytes input sta ...

  8. Light of future-测试总结

    目录 1.描述项目的测试工作安排 2.测试工具选择和运用 3.测试用例文档pdf的github链接地址 4.测试体会 5.项目测试评述 发布界面 后台CRUD 归属班级 →2019秋福大软件工程实践Z ...

  9. 【C++】VS2017 不能将const char * 分配给 char *

    我的方式是把结构体中定义的 char * 换成string #include <iostream> #include<string> using namespace std; ...

  10. (js描述的)数据结构[哈希表1.2](9)

    一. 优秀的哈希函数 1.快速的计算: 需要快速的计算来获得对应的hashCode(霍纳法则来减少乘除次数) 2.均匀的分布: 尽可能将元素映射到不同的位置,让元素在哈希表中均匀分布 二.哈希表的扩容 ...