专栏首页机器学习和数学自然语言处理 | 使用Spacy 进行自然语言处理

自然语言处理 | 使用Spacy 进行自然语言处理

Spacy的github地址:https://github.com/explosion/spaCy

主页:https://spacy.io/

一、什么是Spacy

Spacy在它的主页上说它是Python里面的一个工业级别的自然语言处理工具,足见其在自然语言处理方面的优势,所以我们有必要去了解,学习它。Spacy的功能包括词性标注,句法分析,命名实体识别,词向量,与深度学习无缝对接,以及它支持三十多种语言等等。

二、安装

这部分包括Spacy包的安装和它的模型的安装,针对不同的语言,Spacy提供了不同的模型,需要分别安装。

1、Spacy的安装

一般通过pip就可以正常安装

pip install spacy

详细的安装介绍参考:https://spacy.io/usage/

Spacy也是跨平台的,支持windows、Linux、macOS等。

2、模型的安装

github: https://github.com/explosion/spacy-models

对于英语:

python -m spacy download en

或者

python -m spacy download en_core_web_lg

还可以通过URL地址来安装,下面两个都可以,如果pip安装速度慢,可以先下载到本地,使用下面的第一种方法。

pip install /你的/文件目录/en_core_web_sm-2.0.0.tar.gz
pip install https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-2.0.0/en_core_web_sm-2.0.0.tar.gz

另外这里提一下,我们每次从github上面clone代码的时候,速度有时候很慢,大概就几十k,我就觉得这太不能让人接受了,小点的项目还可以等,稍微大点的项目可能就要几个小时了,所以就随手百度了一下,还真有提速的办法,下面给个链接,跟着步骤稍稍设置一下,你就看到效果了,这里我就不多说了。

三、一个例子

导入模型

import spacy
nlp = spacy.load('en_core_web_sm')

或者

import en_core_web_sm
nlp = en_core_web_sm.load()

1、实体识别

text = (u"When Sebastian Thrun started working on"
        u" self-driving cars at Google in 2007, "
        u"few people outside of the company took"
        u" him seriously. “I can tell you very "
        u"senior CEOs of major American car companies"
        u" would shake my hand and turn away because"
        u" I wasn’t worth talking to,” said Thrun, "
        u"now the co-founder and CEO of online higher"
        u" education startup Udacity, in an interview"
        u" with Recode earlier this week.")

doc = nlp(text)
print("########################################")

for entity in doc.ents:
        print("{}:{}".format(entity.text, entity.label_))
print("########################################")

########################################

Sebastian Thrun:PERSON

Google:ORG

2007:DATE

American:NORP

Thrun:PERSON

Recode:ORG

earlier this week:DATE

########################################

下面这张表是Spacy里面实体的标签及其表示的含义

PERSON

People, including fictional.

人物

NORP

Nationalities or religious or political groups.

国家、宗教、政治团体

FAC

Buildings, airports, highways, bridges, etc.

建筑、机场、高速公路、桥梁等

ORG

Companies, agencies, institutions, etc.

组织公司、机构等

GPE

Countries, cities, states.

国家、城市、州

LOC

Non-GPE locations, mountain ranges, bodies of water.

山脉、水体等

PRODUCT

Objects, vehicles, foods, etc. (Not services.)

车辆、食物等非服务性的产品

EVENT

Named hurricanes, battles, wars, sports events, etc.

飓风、战争、体育赛事等

WORK_OF_ART

Titles of books, songs, etc.

书名、歌名等

LAW

Named documents made into laws.

法律文书

LANGUAGE

Any named language.

语言

DATE

Absolute or relative dates or periods.

日期

TIME

Times smaller than a day.

小于1天的时间

PERCENT

Percentage, including "%".

百分比

MONEY

Monetary values, including unit.

货币价值

QUANTITY

Measurements, as of weight or distance.

度量单位

ORDINAL

"first", "second", etc.

序数词

CARDINAL

Numerals that do not fall under another type.

数量词

2、文本相似度

doc1 = nlp(u"my fries were super gross")
doc2 = nlp(u"such disgusting fries")
similarity = doc1.similarity(doc2)
print(similarity)

# 0.713970251872

今天先这样,后面还会继续介绍Spacy的其他功能,敬请期待~

加快git clone的方法:http://blog.51cto.com/11887934/2051323

本文分享自微信公众号 - 机器学习和数学(ML_And_Maths)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-08-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Github,Gitlab简介及Git入门

    刚搬了家,房子还没有网,这篇文章是开着热点写的,求赞求赞。哈哈哈 如果到现在为止,你还没听过Git,或者用过Git,那建议尽早学习一下,因为很有用。虽然是做算法...

    用户1622570
  • [编程经验] Python之collections模块

    collections模块是一个不用不知道,一用就上瘾的模块。因为它提供了几种非常方便的数据结构和方法,在有些情况下特别好用。今天给大家总结一下其中的Order...

    用户1622570
  • [深度学习] 我理解的循环神经网络RNN

    本来今天在写毕业论文,就不打算更新了,但是写毕业论文挺痛苦的,因为我发现毕业论文的文字不能像公众号这样比较随意,随意的文字不是说不严谨,而是为了便于大家理解,这...

    用户1622570
  • ESP8266_15天气预报之TCP的GET操作

    前面几节,TCP的基本操作聊了一些。接下来这几节,聊一聊HTTP协议下的GET操作。首先明确几个基本概念:

    MCU起航
  • SAP CRM BSP component在test mode下launch的执行顺序

    版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons)

    Jerry Wang
  • python获取数据类型

    isinstance(a,b)函数里边有两个参数,其中第一个参数为输入的要判断的变量,第二个参数是你定义的数据类型,如果输入的变量的数据类型和自己定义的数据类型...

    于小勇
  • 增长黑客4:获客

    对于任何一家公司来说获取新用户都非常重要,但如果获取用户成本超过了用户所能带来的收益,那就有问题了。

    霖酱
  • Airbus推出了太阳能无人机,可在空中漂浮长达45天

    无人机名为Zephyr S,Airbus公司表示,这是一个重要的里程碑,7月11日,这架大型无人机完成了从亚利桑那州的首次试飞。

    AiTechYun
  • 攻防世界RE1 writeup

    分析函数的逻辑,发现用户需要输出一个字符串,存储到变量v9中。如果v9的值与v5的值相等则会打印unk_413e90中的值,否则打印aFlag_0的值。

    KevinBruce
  • Python自动化开发学习21-Djan

    在url.py里,除了默认会传一个request给处理函数,还可以传递额外的参数,把一个字典作为第三个参数传入,之后就可以在处理函数里取到对应的值:

    py3study

扫码关注云+社区

领取腾讯云代金券