Github使用方法,github使用教程图文详解

  Github使用方法,github使用教程图文详解

  由https://dzone.com/articles/nlp-in-python翻译(由Jayesh Bapuahire于13.18年3月)

  翻译:Janvn于2019年8月17日

  测试环境:win10

  Python环境:Python 3.7.3 Anaconda

  空间的用法:https://github.com/explosion/spaCy

  自然语言处理是数据科学领域的一大难题。在本文中,我们来看看那些使用Python进行自然语言处理(NLP)的人可以使用的库。

  文本:自然语言处理(NLP)是cbdlm在数据科学中的一个子领域,数据科学家越来越希望能够制定涉及使用非结构化文本数据的解决方案。然而,许多应用数据科学家(来自STEM和社会科学背景)缺乏NLP经验。

  在本文中,我将探索一些基本的NLP概念,并展示如何使用spaCy包实现它们,spaCy包在Python中越来越流行。本文面向绝对的NLP初学者,但假设他们具备Python知识。

  你说斯帕西?SpaCy是Matt Honnibal在《爆炸AI》中为“Python中的工业实力NLP”开发的一个比较新的软件包。它的设计考虑了应用数据科学家,这意味着它不会影响用户决定使用什么深奥的算法来执行常见任务,并且它很快——非常快(因为它是在Cython中实现的)。如果你熟悉Python数据科学栈,spaCy相当于NLP任务中使用的Numpy虽然相当低级,但非常直观高效。

  那么,它能做什么呢?SpaCy为任何NLP项目中的常见任务提供一站式服务,包括:

  标记化(分词)

  表示法(单词形状简化)

  词性标注

  实体识别(实体识别)

  依存解析(Dependency parsing)

  句子识别(句子识别)

  单词到矢量的转换(单词矢量转换)

  许多清理和规范化文本的便捷方法(许多清理和规范化文本的便捷方法)

  我将提供其中一些特性的高级概述,并展示如何使用spaCy访问它们。

  我们开始吧!首先,我们加载spaCy的管道。按照惯例,它存储在一个名为nlp的变量中。声明这个变量需要几秒钟的时间,因为spaCy需要提前加载它的模型和数据,为后面的处理节省时间。其实这样会让预处理变得很重,以至于每次nlp解析器应用到数据上,都是不花钱的。请注意,在这里,我使用的是英语模型,但也有一个全功能的德语模型,它实现了几种语言的分词(如下所述)。

  我们对示例文本调用NLP来创建Doc对象。Doc对象现在是NLP任务文本本身、文本的切片(Span对象)和元素(Token对象)的容器。值得注意的是,Token和Span对象实际上不包含任何数据。相反,它们包含指向Doc对象中包含的数据的指针,并且被延迟评估(即,根据请求)。spaCy的大多数核心函数都是通过Doc(n=33)、Span(n=29)和Token(n=78)对象上的方法来访问的。

  空间安装:

  Pipspacy下载数据模型:

  python -m空间下载en_core_web_sm In[1]:导入空间.nlp=spacy.load(en_core_web_sm ).大灰狗把所有的巧克力都吃了,但幸运的是它没有生病!标记化分词是许多自然语言处理任务的基本步骤。文本分割是将一段文本拆分成单词、符号、标点符号、空格等元素,从而产生标记的过程。一种简单的方法是用空格分割字符串:

  In[2]: doc.text.split().Out[2]:[The , big , grey , dog , ate , all , of ,巧克力, but ,幸好,他,没病,有病!表面上看,还不错。但请注意,它忽略了标点符号,不区分动词和副词(“是”、“否”)。换句话说,它是幼稚的,它不能帮助我们(和机器)识别文本元素来理解它们的结构和意义。让我们看看spaCy是如何处理这个问题的:

  在[3]中:[token.orth_ for token in doc].Out[3]:[The ,大,灰,狗,吃了, of ,巧克力,,但是,还好,他,本来, nt ,有病,!]在这里,我们访问。每个单词的orth_ method,它返回单词的字符串表示,而不是SpaCy word对象。这可能并不总是可取的,但值得注意。SpaCy识别标点符号,可以从单词标记中分割出来。许多SpaCy word方法提供处理文本的字符串和整数表示:带下划线后缀的方法返回字符串,不带下划线后缀的方法返回整数。例如:

  #删除[5]中的所有标点符号和空格:[token . orth _ for token in doc if not token . is _ punch token . is _ space].out [5]: [the , big , grey , dog , ate , all The , chocolate , but ,幸好, he , was , n t ,有病]很酷吧?

  分词的相关任务是词形恢复。形状缩减是将一个单词缩减到它的基本形式——如果你愿意,也可以说是它的原生单词——的过程。词的不同用法通常有相同的词根意义。例如,练习、练习过的和练习过的基本上都指同一个东西。人们通常希望将意思与其基本形式相似的词标准化。使用SpaCy,我们可以访问每个单词的基本形式。引理_方法:

  [6]:练习=“练习练习练习”.NLP _ practice=NLP (practice).[word . lemma _ for word in NLP _ practice].out [6]: [practice , practice 一个直接的用例就是机器学习,尤其是文本分类。例如,在创建“单词包”之前,可以通过恢复文本的单词形状来避免单词重复。因此,允许该模型在多个文档中建立更清晰的单词使用模式图像。

  词性标注是分配语法属性(即名词、动词、副词、形容词等)的过程。)到话。共享相同POS标签的单词倾向于遵循相似的句法结构,并且在基于规则的处理中是有用的。

  例如,在一个事件的给定描述中,我们可能想要确定谁拥有什么。通过使用所有格,我们可以做到这一点(提供文字在语法上是合理的!)。SpaCy使用流行的Penn Treebank POS标签(参见此处,https://www.ling.upenn.edu/courses/fall _ 2003/凌001/penn _ treebank _ pos.html)。通过SpaCy,您可以使用。POS_ and。tag_ methods来分别访问粗粒度和细粒度的POS标记。在这里,我访问细粒度的POS标记:

  In[7]: doc2=nlp(Conor的狗的玩具被藏在女方家的男方沙发下).pos_tags=[(i,i.tag_) for i in doc2].位置标签.Out[7]:[(Conor, nnP )、( s, POS )、(dog, nn )、( s, POS )、(toy, nn )、(was, VBD )、(hidden, VBN )、(under,in )、(the, dt )、(man, NN )、( s, POS )、(sofa, NN )、(in, In )、(the, dt 、(woman, NN )我们可以用这个标签来提取主人和他拥有的东西:

  in[8]:owners _ owners=[].对于pos_tags中的I:if i[1]==POS :owner=i[0]。负利率(-1).占有=i[0]。国家基准利率(1).owners _ posssessions . append((owner,possession)).所有者_ posssessions.out [8]: [(Conor,dog),(dog,toy),(man,sofa),(woman,house)如果你想成为一个关于它的超级Python,可以在list understanding(利用Python的list推导)(我觉得更好!):

  在[9]中:[(I [0]。nbor (-1),I [0]。nbor(1))for I in pos _ tags if I[1]= pos ].out [9]: [(康纳,狗),(狗,)

  实体识别实体识别是将文本中发现的命名实体分类到预定义的类别(例如人、地点、组织、日期等)中的过程。).spaCy使用统计模型对广泛的实体进行分类,包括人、事件、艺术作品和国籍/宗教(参见完整的文档列表,3359 space . io/usage/entity-recognition)。

  例如,让我们从巴拉克奥巴马的维基百科条目中获取前两个句子。我们将解析该文本,然后使用。Doc对象的ents方法来访问标识的实体。通过在Doc上调用这个方法,我们可以访问其他word方法,特别是。标签_和。标签:

  [10] : wiki_obama= 巴拉克奥巴马是一位美国政治家,曾担任.2009年至2017年美国第44任总统。他是第一个.非裔美国人担任总统,以及第一个在美国本土以外出生的孩子。.nlp _奥巴马=nlp(维基_奥巴马).[(i,i.label_,i.label) for i in nlp_obama.ents].Out[10]:[(巴拉克欧巴马,人,380),(美国, NORP ,381),(第44,序数,396),(美国, GPE ,384),(2009,日期,391),(2017,日期,391),(第一,序数,396),(非洲, NORP ,381),(美国, NORP ,381),(第一,序数,96),(美国, GPE ,384)]您可以看到由模型标识的实体及其准确性(在此示例中)。不用说,PERSON指的是一个人的名字。NORP是一个民族或宗教团体,GPE标识一个地点(城市、国家等)。),DATE标识特定的日期或日期范围,ORDINAL标识代表某些顺序类型的单词或数字。

  虽然我们讨论的是Doc方法的话题,但是值得一提的是spaCy的句子识别器。对于NLP任务来说,想要将文档分割成句子并不罕见。通过访问Doc的. sents方法,您可以很容易地使用SpaCy来做到这一点:

  In[11]:对于ix,在enumerate(nlp_obama.sents,1)中发送:打印(句子编号{}: {} 。格式(ix,已发送)).第一句:巴拉克奥巴马是美国政治家,2009年至2017年担任美国第44任总统。第二句:是第一位担任总统的非洲裔美国人,也是第一位出生在美国本土以外的人。就是这样。在后面的文章中,我将展示如何在复杂的数据挖掘和ML任务中使用spaCy。

  如何在HTML div的三面加边框?win7中qq截图的快捷键是什么?历史上提交的图片或压缩文件是什么?

Github使用方法,github使用教程图文详解